From 38a4b0ca6530073a48e5ece03c130ca2362ffc19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=AB=98=E8=BE=9B=E6=A0=BC?= <xg.gao@tianrang-inc.com>
Date: Mon, 19 Aug 2019 16:47:04 +0800
Subject: [PATCH] consul test

---
 .travis.yml                    |  8 -----
 registry/consul/consul_test.go | 65 +++++++++++++++++++++-------------
 2 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 03e86fc1d..54bd9b06e 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 4c1f444fb..2c9a8c99f 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))
+}
-- 
GitLab