From 51e0b98ec12a2cf3f70fd9c603348e2cf035a143 Mon Sep 17 00:00:00 2001
From: "vito.he" <hxmhlt@163.com>
Date: Tue, 2 Jul 2019 21:26:03 +0800
Subject: [PATCH] Fix: unit test TestListener in listener_test.go

---
 remoting/zookeeper/listener_test.go | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/remoting/zookeeper/listener_test.go b/remoting/zookeeper/listener_test.go
index b1f0d43d3..10cc6dcdd 100644
--- a/remoting/zookeeper/listener_test.go
+++ b/remoting/zookeeper/listener_test.go
@@ -19,6 +19,7 @@ package zookeeper
 
 import (
 	"fmt"
+	"sync"
 	"testing"
 	"time"
 )
@@ -86,32 +87,36 @@ func TestListener(t *testing.T) {
 	dubbo.service.com.ikurento.user.UserProvider.warmup=100
 	dubbo.service.com.ikurento.user.UserProvider.cluster=failover
 `
-
+	var wait sync.WaitGroup
 	ts, client, event := initZkData(t)
 	defer ts.Stop()
 	client.Wait.Add(1)
+	wait.Add(1)
 	go client.HandleZkEvent(event)
 	listener := NewZkEventListener(client)
-	dataListener := &mockDataListener{client: client, changedData: changedData}
+	dataListener := &mockDataListener{client: client, changedData: changedData, wait: &wait}
 	listener.ListenServiceEvent("/dubbo", dataListener)
 
 	_, err := client.Conn.Set("/dubbo/dubbo.properties", []byte(changedData), 1)
 	assert.NoError(t, err)
-	client.Wait.Wait()
+	wait.Wait()
 	assert.Equal(t, changedData, dataListener.eventList[1].Content)
+	client.Close()
+
 }
 
 type mockDataListener struct {
 	eventList   []remoting.Event
 	client      *ZookeeperClient
 	changedData string
+	wait        *sync.WaitGroup
 }
 
 func (m *mockDataListener) DataChange(eventType remoting.Event) bool {
 	fmt.Println(eventType)
 	m.eventList = append(m.eventList, eventType)
 	if eventType.Content == m.changedData {
-		m.client.Wait.Done()
+		m.wait.Done()
 	}
 	return true
 }
-- 
GitLab