diff --git a/.travis.yml b/.travis.yml index 03e86fc1d04d8805b3cb0ecba1da51b2bdf0fbc3..54bd9b06e080d880f813dea0fa77f20b258b3ce8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,14 +6,6 @@ go: env: - GO111MODULE=on CONSUL_VERSION=0.9.2 -before_install: - - curl -sLo consul.zip https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip - - unzip consul.zip - - rm consul.zip - - mkdir -p ~/bin - - mv consul ~/bin - - export PATH="~/bin:$PATH" - install: true script: diff --git a/registry/consul/consul_test.go b/registry/consul/consul_test.go index 4c1f444fb9e66545f3049b19f9040798167820b9..2c9a8c99f2333a7dafe295d8622c7e25d6f4e248 100644 --- a/registry/consul/consul_test.go +++ b/registry/consul/consul_test.go @@ -19,15 +19,20 @@ package consul import ( "fmt" + "io/ioutil" "net" "net/url" + "os" "strconv" "sync" + "testing" ) import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" + "github.com/hashicorp/consul/agent" + "github.com/stretchr/testify/assert" ) var ( @@ -125,28 +130,38 @@ func (server *Server) close() { server.wg.Wait() } -//func TestSomething(t *testing.T) { -// providerRegistryUrl := newProviderRegistryUrl(registryHost, registryPort) -// consumerRegistryUrl := newConsumerRegistryUrl(registryHost, registryPort) -// providerUrl := newProviderUrl(providerHost, providerPort, service, protocol) -// consumerUrl := newConsumerUrl(consumerHost, consumerPort, service, protocol) -// -// cb := func(c *testutil.TestServerConfig) { c.Ports.HTTP = registryPort } -// consulServer, _ := testutil.NewTestServerConfig(cb) -// defer consulServer.Stop() -// providerRegistry, err := newConsulRegistry(providerRegistryUrl) -// assert.NoError(t, err) -// consumerRegistry, err := newConsulRegistry(consumerRegistryUrl) -// assert.NoError(t, err) -// -// server := newServer(providerHost, providerPort) -// defer server.close() -// err = providerRegistry.Register(providerUrl) -// assert.NoError(t, err) -// -// listener, err := consumerRegistry.Subscribe(consumerUrl) -// assert.NoError(t, err) -// event, err := listener.Next() -// assert.NoError(t, err) -// assert.True(t, providerUrl.URLEqual(event.Service)) -//} +func TestSomething(t *testing.T) { + providerRegistryUrl := newProviderRegistryUrl(registryHost, registryPort) + consumerRegistryUrl := newConsumerRegistryUrl(registryHost, registryPort) + providerUrl := newProviderUrl(providerHost, providerPort, service, protocol) + consumerUrl := newConsumerUrl(consumerHost, consumerPort, service, protocol) + + dataDir, _ := ioutil.TempDir("./", "agent") + defer os.RemoveAll(dataDir) + + hcl := ` + ports { + http = ` + strconv.Itoa(registryPort) + ` + } + data_dir = "` + dataDir + `" + ` + consulServer := &agent.TestAgent{Name: t.Name(), DataDir: dataDir, HCL: hcl} + consulServer.Start(t) + defer consulServer.Shutdown() + + providerRegistry, err := newConsulRegistry(providerRegistryUrl) + assert.NoError(t, err) + consumerRegistry, err := newConsulRegistry(consumerRegistryUrl) + assert.NoError(t, err) + + server := newServer(providerHost, providerPort) + defer server.close() + err = providerRegistry.Register(providerUrl) + assert.NoError(t, err) + + listener, err := consumerRegistry.Subscribe(consumerUrl) + assert.NoError(t, err) + event, err := listener.Next() + assert.NoError(t, err) + assert.True(t, providerUrl.URLEqual(event.Service)) +}