github.com/lingyao2333/mo-zero@v1.4.1/core/discov/clients_test.go (about) 1 package discov 2 3 import ( 4 "sync" 5 "testing" 6 7 "github.com/lingyao2333/mo-zero/core/discov/internal" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 var mockLock sync.Mutex 12 13 func setMockClient(cli internal.EtcdClient) func() { 14 mockLock.Lock() 15 internal.NewClient = func([]string) (internal.EtcdClient, error) { 16 return cli, nil 17 } 18 return func() { 19 internal.NewClient = internal.DialClient 20 mockLock.Unlock() 21 } 22 } 23 24 func TestExtract(t *testing.T) { 25 id, ok := extractId("key/123/val") 26 assert.True(t, ok) 27 assert.Equal(t, "123", id) 28 29 _, ok = extract("any", -1) 30 assert.False(t, ok) 31 32 _, ok = extract("any", 10) 33 assert.False(t, ok) 34 } 35 36 func TestMakeKey(t *testing.T) { 37 assert.Equal(t, "key/123", makeEtcdKey("key", 123)) 38 }