github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/framework/registry/nacos/node_test.go (about) 1 package nacos_test 2 3 import ( 4 "github.com/golang/mock/gomock" 5 "github.com/pkg/errors" 6 . "github.com/smartystreets/goconvey/convey" 7 "github.com/unionj-cloud/go-doudou/framework/buildinfo" 8 "github.com/unionj-cloud/go-doudou/framework/internal/config" 9 "github.com/unionj-cloud/go-doudou/framework/registry/nacos" 10 "github.com/unionj-cloud/go-doudou/framework/registry/nacos/mock" 11 "github.com/wubin1989/nacos-sdk-go/clients/naming_client" 12 "github.com/wubin1989/nacos-sdk-go/vo" 13 "testing" 14 ) 15 16 func setup() { 17 _ = config.GddServiceName.Write("seed") 18 _ = config.GddLogLevel.Write("debug") 19 _ = config.GddPort.Write("8088") 20 _ = config.GddRouteRootPath.Write("/v1") 21 _ = config.GddNacosServerAddr.Write("http://localhost:8848") 22 _ = config.GddWeight.Write("5") 23 } 24 25 func TestNewNode(t *testing.T) { 26 Convey("Should not have error", t, func() { 27 setup() 28 _ = config.GddNacosRegisterHost.Write("seed") 29 ctrl := gomock.NewController(t) 30 defer ctrl.Finish() 31 32 buildinfo.BuildTime = "Mon Jan 2 15:04:05 MST 2006" 33 namingClient := mock.NewMockINamingClient(ctrl) 34 namingClient. 35 EXPECT(). 36 RegisterInstance(gomock.Any()). 37 AnyTimes(). 38 Return(true, nil) 39 40 namingClient. 41 EXPECT(). 42 DeregisterInstance(gomock.Any()). 43 AnyTimes(). 44 Return(true, nil) 45 46 nacos.NewNamingClient = func(param vo.NacosClientParam) (iClient naming_client.INamingClient, err error) { 47 return namingClient, nil 48 } 49 50 if nacos.NamingClient == nil { 51 nacos.NamingClient = namingClient 52 } 53 54 So(func() { 55 nacos.NewNode(map[string]interface{}{ 56 "foo": "bar", 57 }) 58 }, ShouldNotPanic) 59 60 nacos.Shutdown() 61 So(nacos.NamingClient, ShouldBeNil) 62 }) 63 } 64 65 func TestNewNode2(t *testing.T) { 66 Convey("Should not have error", t, func() { 67 setup() 68 ctrl := gomock.NewController(t) 69 defer ctrl.Finish() 70 71 buildinfo.BuildTime = "Mon Jan 2 15:04:05 MST 2006" 72 namingClient := mock.NewMockINamingClient(ctrl) 73 namingClient. 74 EXPECT(). 75 RegisterInstance(gomock.Any()). 76 AnyTimes(). 77 Return(true, nil) 78 79 namingClient. 80 EXPECT(). 81 DeregisterInstance(gomock.Any()). 82 AnyTimes(). 83 Return(true, nil) 84 85 nacos.NewNamingClient = func(param vo.NacosClientParam) (iClient naming_client.INamingClient, err error) { 86 return namingClient, nil 87 } 88 89 if nacos.NamingClient == nil { 90 nacos.NamingClient = namingClient 91 } 92 93 _ = config.GddNacosRegisterHost.Write("") 94 95 So(func() { 96 nacos.NewNode(map[string]interface{}{ 97 "foo": "bar", 98 }) 99 }, ShouldNotPanic) 100 101 nacos.Shutdown() 102 So(nacos.NamingClient, ShouldBeNil) 103 }) 104 } 105 106 func TestShutdownFail(t *testing.T) { 107 Convey("Should fail", t, func() { 108 setup() 109 ctrl := gomock.NewController(t) 110 defer ctrl.Finish() 111 112 buildinfo.BuildTime = "Mon Jan 2 15:04:05 MST 2006" 113 namingClient := mock.NewMockINamingClient(ctrl) 114 namingClient. 115 EXPECT(). 116 RegisterInstance(gomock.Any()). 117 AnyTimes(). 118 Return(true, nil) 119 120 namingClient. 121 EXPECT(). 122 DeregisterInstance(gomock.Any()). 123 AnyTimes(). 124 Return(false, errors.New("mock test error")) 125 126 nacos.NewNamingClient = func(param vo.NacosClientParam) (iClient naming_client.INamingClient, err error) { 127 return namingClient, nil 128 } 129 130 if nacos.NamingClient == nil { 131 nacos.NamingClient = namingClient 132 } 133 134 _ = config.GddNacosRegisterHost.Write("") 135 136 So(func() { 137 nacos.NewNode(map[string]interface{}{ 138 "foo": "bar", 139 }) 140 }, ShouldNotPanic) 141 142 nacos.Shutdown() 143 So(nacos.NamingClient, ShouldBeNil) 144 }) 145 } 146 147 func TestShutdownFail2(t *testing.T) { 148 Convey("Should fail", t, func() { 149 setup() 150 ctrl := gomock.NewController(t) 151 defer ctrl.Finish() 152 153 buildinfo.BuildTime = "Mon Jan 2 15:04:05 MST 2006" 154 namingClient := mock.NewMockINamingClient(ctrl) 155 namingClient. 156 EXPECT(). 157 RegisterInstance(gomock.Any()). 158 AnyTimes(). 159 Return(true, nil) 160 161 namingClient. 162 EXPECT(). 163 DeregisterInstance(gomock.Any()). 164 AnyTimes(). 165 Return(false, nil) 166 167 nacos.NewNamingClient = func(param vo.NacosClientParam) (iClient naming_client.INamingClient, err error) { 168 return namingClient, nil 169 } 170 171 if nacos.NamingClient == nil { 172 nacos.NamingClient = namingClient 173 } 174 175 _ = config.GddNacosRegisterHost.Write("") 176 177 So(func() { 178 nacos.NewNode(map[string]interface{}{ 179 "foo": "bar", 180 }) 181 }, ShouldNotPanic) 182 183 nacos.Shutdown() 184 So(nacos.NamingClient, ShouldBeNil) 185 }) 186 }