mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 16:29:56 +00:00
AUTH-2588 add DoH to service mode
This commit is contained in:
74
overwatch/manager_test.go
Normal file
74
overwatch/manager_test.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package overwatch
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
type mockService struct {
|
||||
serviceName string
|
||||
serviceType string
|
||||
runError error
|
||||
}
|
||||
|
||||
func (s *mockService) Name() string {
|
||||
return s.serviceName
|
||||
}
|
||||
|
||||
func (s *mockService) Type() string {
|
||||
return s.serviceType
|
||||
}
|
||||
|
||||
func (s *mockService) Hash() string {
|
||||
h := md5.New()
|
||||
io.WriteString(h, s.serviceName)
|
||||
io.WriteString(h, s.serviceType)
|
||||
return fmt.Sprintf("%x", h.Sum(nil))
|
||||
}
|
||||
|
||||
func (s *mockService) Shutdown() {
|
||||
}
|
||||
|
||||
func (s *mockService) Run() error {
|
||||
return s.runError
|
||||
}
|
||||
|
||||
func TestManagerAddAndRemove(t *testing.T) {
|
||||
m := NewAppManager(nil)
|
||||
|
||||
first := &mockService{serviceName: "first", serviceType: "mock"}
|
||||
second := &mockService{serviceName: "second", serviceType: "mock"}
|
||||
m.Add(first)
|
||||
m.Add(second)
|
||||
assert.Len(t, m.Services(), 2, "expected 2 services in the list")
|
||||
|
||||
m.Remove(first.Name())
|
||||
services := m.Services()
|
||||
assert.Len(t, services, 1, "expected 1 service in the list")
|
||||
assert.Equal(t, second.Hash(), services[0].Hash(), "hashes should match. Wrong service was removed")
|
||||
}
|
||||
|
||||
func TestManagerDuplicate(t *testing.T) {
|
||||
m := NewAppManager(nil)
|
||||
|
||||
first := &mockService{serviceName: "first", serviceType: "mock"}
|
||||
m.Add(first)
|
||||
m.Add(first)
|
||||
assert.Len(t, m.Services(), 1, "expected 1 service in the list")
|
||||
}
|
||||
|
||||
func TestManagerErrorChannel(t *testing.T) {
|
||||
errChan := make(chan error)
|
||||
m := NewAppManager(errChan)
|
||||
|
||||
err := errors.New("test error")
|
||||
first := &mockService{serviceName: "first", serviceType: "mock", runError: err}
|
||||
m.Add(first)
|
||||
respErr := <-errChan
|
||||
assert.Equal(t, err, respErr, "errors don't match")
|
||||
}
|
Reference in New Issue
Block a user