boulder/grpc/balancer_test.go

40 lines
1001 B
Go

package grpc
import (
"testing"
"time"
"google.golang.org/grpc/naming"
"github.com/letsencrypt/boulder/test"
)
func TestStaticResolver(t *testing.T) {
names := []string{"test:443"}
sr := newStaticResolver(names)
watcher, err := sr.Resolve("")
test.AssertNotError(t, err, "staticResolver.Resolve failed")
// Make sure doing this doesn't break anything (since it does nothing)
watcher.Close()
updates, err := watcher.Next()
test.AssertNotError(t, err, "staticwatcher.Next failed")
test.AssertEquals(t, len(names), len(updates))
test.AssertEquals(t, updates[0].Addr, "test:443")
test.AssertEquals(t, updates[0].Op, naming.Add)
test.AssertEquals(t, updates[0].Metadata, nil)
returned := make(chan struct{}, 1)
go func() {
_, err = watcher.Next()
test.AssertNotError(t, err, "watcher.Next failed")
returned <- struct{}{}
}()
select {
case <-returned:
t.Fatal("staticWatcher.Next returned something after the first call")
case <-time.After(time.Millisecond * 500):
}
}