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  }