@@ -477,9 +477,9 @@ func TestHaveSameParameters(t *testing.T) {
477
477
for _ , test := range tests {
478
478
t .Run (test .msg , func (t * testing.T ) {
479
479
t .Parallel ()
480
- result := haveSameParameters ( test .server , test .serverNGX )
480
+ result := test .server . hasSameParametersAs ( test .serverNGX )
481
481
if result != test .expected {
482
- t .Errorf ("haveSameParameters (%v, %v) returned %v but expected %v" , test .server , test .serverNGX , result , test .expected )
482
+ t .Errorf ("(%v) hasSameParametersAs ( %v) returned %v but expected %v" , test .server , test .serverNGX , result , test .expected )
483
483
}
484
484
})
485
485
}
@@ -562,9 +562,9 @@ func TestHaveSameParametersForStream(t *testing.T) {
562
562
for _ , test := range tests {
563
563
t .Run (test .msg , func (t * testing.T ) {
564
564
t .Parallel ()
565
- result := haveSameParametersForStream ( test .server , test .serverNGX )
565
+ result := test .server . hasSameParametersAs ( test .serverNGX )
566
566
if result != test .expected {
567
- t .Errorf ("haveSameParametersForStream (%v, %v) returned %v but expected %v" , test .server , test .serverNGX , result , test .expected )
567
+ t .Errorf ("(%v) hasSameParametersAs ( %v) returned %v but expected %v" , test .server , test .serverNGX , result , test .expected )
568
568
}
569
569
})
570
570
}
@@ -982,174 +982,464 @@ func TestExtractPlusVersionNegativeCase(t *testing.T) {
982
982
}
983
983
}
984
984
985
- func TestClientHTTPUpdateServers (t * testing.T ) {
985
+ func TestUpdateHTTPServers (t * testing.T ) {
986
986
t .Parallel ()
987
987
988
- responses := []response {
989
- // response for first serversInNginx GET servers
990
- {
991
- statusCode : http .StatusOK ,
992
- servers : []UpstreamServer {},
988
+ testcases := map [string ]struct {
989
+ reqServers []UpstreamServer
990
+ responses []response
991
+ expAdded , expDeleted , expUpdated int
992
+ expErr bool
993
+ }{
994
+ "successfully add 1 server" : {
995
+ reqServers : []UpstreamServer {{Server : "127.0.0.1:80" }},
996
+ responses : []response {
997
+ // response for first serversInNginx GET servers
998
+ {
999
+ statusCode : http .StatusOK ,
1000
+ },
1001
+ // response for addHTTPServer POST server for http server
1002
+ {
1003
+ statusCode : http .StatusCreated ,
1004
+ },
1005
+ },
1006
+ expAdded : 1 ,
993
1007
},
994
- // response for AddHTTPServer GET servers for http server
995
- {
996
- statusCode : http .StatusOK ,
997
- servers : []UpstreamServer {},
1008
+ "successfully update 1 server" : {
1009
+ reqServers : []UpstreamServer {{Server : "127.0.0.1:80" }},
1010
+ responses : []response {
1011
+ // response for first serversInNginx GET servers
1012
+ {
1013
+ statusCode : http .StatusOK ,
1014
+ servers : []UpstreamServer {
1015
+ {ID : 1 , Server : "127.0.0.1:80" , Route : "/test" },
1016
+ },
1017
+ },
1018
+ // response for UpdateHTTPServer PATCH server for http server
1019
+ {
1020
+ statusCode : http .StatusOK ,
1021
+ },
1022
+ },
1023
+ expUpdated : 1 ,
998
1024
},
999
- // response for AddHTTPServer POST server for http server
1000
- {
1001
- statusCode : http .StatusInternalServerError ,
1002
- servers : []UpstreamServer {},
1025
+ "successfully delete 1 server" : {
1026
+ reqServers : []UpstreamServer {{Server : "127.0.0.1:80" }},
1027
+ responses : []response {
1028
+ // response for first serversInNginx GET servers
1029
+ {
1030
+ statusCode : http .StatusOK ,
1031
+ servers : []UpstreamServer {
1032
+ {ID : 1 , Server : "127.0.0.1:80" },
1033
+ {ID : 2 , Server : "127.0.0.2:80" },
1034
+ },
1035
+ },
1036
+ // response for deleteHTTPServer DELETE server for http server
1037
+ {
1038
+ statusCode : http .StatusOK ,
1039
+ },
1040
+ },
1041
+ expDeleted : 1 ,
1003
1042
},
1004
- // response for AddHTTPServer GET servers for https server
1005
- {
1006
- statusCode : http .StatusOK ,
1007
- servers : []UpstreamServer {},
1043
+ "successfully add 1 server, update 1 server, delete 1 server" : {
1044
+ reqServers : []UpstreamServer {
1045
+ {Server : "127.0.0.1:80" , Route : "/test" },
1046
+ {Server : "127.0.0.2:80" },
1047
+ },
1048
+ responses : []response {
1049
+ // response for first serversInNginx GET servers
1050
+ {
1051
+ statusCode : http .StatusOK ,
1052
+ servers : []UpstreamServer {
1053
+ {ID : 1 , Server : "127.0.0.1:80" },
1054
+ {ID : 2 , Server : "127.0.0.3:80" },
1055
+ },
1056
+ },
1057
+ // response for addHTTPServer POST server for http server
1058
+ {
1059
+ statusCode : http .StatusCreated ,
1060
+ },
1061
+ // response for deleteHTTPServer DELETE server for http server
1062
+ {
1063
+ statusCode : http .StatusOK ,
1064
+ },
1065
+ // response for UpdateHTTPServer PATCH server for http server
1066
+ {
1067
+ statusCode : http .StatusOK ,
1068
+ },
1069
+ },
1070
+ expAdded : 1 ,
1071
+ expUpdated : 1 ,
1072
+ expDeleted : 1 ,
1008
1073
},
1009
- // response for AddHTTPServer POST server for https server
1010
- {
1011
- statusCode : http .StatusCreated ,
1012
- servers : []UpstreamServer {},
1074
+ "successfully add 1 server with ignored identical duplicate" : {
1075
+ reqServers : []UpstreamServer {
1076
+ {Server : "127.0.0.1:80" , Route : "/test" },
1077
+ {Server : "127.0.0.1" , Route : "/test" },
1078
+ {Server : "127.0.0.1:80" , Route : "/test" , MaxConns : & defaultMaxConns },
1079
+ {Server : "127.0.0.1:80" , Route : "/test" , Backup : & defaultBackup },
1080
+ {Server : "127.0.0.1" , Route : "/test" , SlowStart : defaultSlowStart },
1081
+ },
1082
+ responses : []response {
1083
+ // response for first serversInNginx GET servers
1084
+ {
1085
+ statusCode : http .StatusOK ,
1086
+ servers : []UpstreamServer {},
1087
+ },
1088
+ // response for addHTTPServer POST server for http server
1089
+ {
1090
+ statusCode : http .StatusCreated ,
1091
+ },
1092
+ },
1093
+ expAdded : 1 ,
1094
+ },
1095
+ "successfully add 1 server, receive 1 error for non-identical duplicates" : {
1096
+ reqServers : []UpstreamServer {
1097
+ {Server : "127.0.0.1:80" , Route : "/test" },
1098
+ {Server : "127.0.0.1:80" , Route : "/test" },
1099
+ {Server : "127.0.0.2:80" , Route : "/test1" },
1100
+ {Server : "127.0.0.2:80" , Route : "/test2" },
1101
+ {Server : "127.0.0.2:80" , Route : "/test3" },
1102
+ },
1103
+ responses : []response {
1104
+ // response for first serversInNginx GET servers
1105
+ {
1106
+ statusCode : http .StatusOK ,
1107
+ servers : []UpstreamServer {},
1108
+ },
1109
+ // response for addHTTPServer POST server for http server
1110
+ {
1111
+ statusCode : http .StatusCreated ,
1112
+ },
1113
+ },
1114
+ expAdded : 1 ,
1115
+ expErr : true ,
1116
+ },
1117
+ "successfully add 1 server, receive 1 error" : {
1118
+ reqServers : []UpstreamServer {
1119
+ {Server : "127.0.0.1:80" },
1120
+ {Server : "127.0.0.1:443" },
1121
+ },
1122
+ responses : []response { // response for first serversInNginx GET servers
1123
+ {
1124
+ statusCode : http .StatusOK ,
1125
+ servers : []UpstreamServer {},
1126
+ },
1127
+ // response for addHTTPServer POST server for server1
1128
+ {
1129
+ statusCode : http .StatusInternalServerError ,
1130
+ servers : []UpstreamServer {},
1131
+ },
1132
+ // response for addHTTPServer POST server for server2
1133
+ {
1134
+ statusCode : http .StatusCreated ,
1135
+ servers : []UpstreamServer {},
1136
+ },
1137
+ },
1138
+ expAdded : 1 ,
1139
+ expErr : true ,
1013
1140
},
1014
1141
}
1015
1142
1016
- handler := & fakeHandler {
1017
- func (w http.ResponseWriter , _ * http.Request ) {
1018
- if len (responses ) == 0 {
1019
- t .Fatal ("ran out of responses" )
1020
- }
1143
+ for name , tc := range testcases {
1144
+ t .Run (name , func (t * testing.T ) {
1145
+ t .Parallel ()
1021
1146
1022
- re := responses [0 ]
1023
- responses = responses [1 :]
1147
+ var requests []* http.Request
1148
+ handler := & fakeHandler {
1149
+ func (w http.ResponseWriter , r * http.Request ) {
1150
+ requests = append (requests , r )
1024
1151
1025
- w .WriteHeader (re .statusCode )
1152
+ if len (tc .responses ) == 0 {
1153
+ t .Fatal ("ran out of responses" )
1154
+ }
1155
+ if r .Method == http .MethodPost || r .Method == http .MethodPut {
1156
+ contentType , ok := r .Header ["Content-Type" ]
1157
+ if ! ok {
1158
+ t .Fatalf ("expected request type %s to have a Content-Type header" , r .Method )
1159
+ }
1160
+ if len (contentType ) != 1 || contentType [0 ] != "application/json" {
1161
+ t .Fatalf ("expected request type %s to have a Content-Type header value of 'application/json'" , r .Method )
1162
+ }
1163
+ }
1026
1164
1027
- resp , err := json .Marshal (re .servers )
1028
- if err != nil {
1029
- t .Fatal (err )
1030
- }
1031
- _ , err = w .Write (resp )
1032
- if err != nil {
1033
- t .Fatal (err )
1034
- }
1035
- },
1036
- }
1165
+ re := tc .responses [0 ]
1166
+ tc .responses = tc .responses [1 :]
1037
1167
1038
- server := httptest .NewServer (handler )
1039
- defer server .Close ()
1168
+ w .WriteHeader (re .statusCode )
1040
1169
1041
- client , err := NewNginxClient (server .URL , WithHTTPClient (& http.Client {}))
1042
- if err != nil {
1043
- t .Fatal (err )
1044
- }
1170
+ resp , err := json .Marshal (re .servers )
1171
+ if err != nil {
1172
+ t .Fatal (err )
1173
+ }
1174
+ _ , err = w .Write (resp )
1175
+ if err != nil {
1176
+ t .Fatal (err )
1177
+ }
1178
+ },
1179
+ }
1045
1180
1046
- httpServer := UpstreamServer { Server : "127.0.0.1:80" }
1047
- httpsServer := UpstreamServer { Server : "127.0.0.1:443" }
1181
+ server := httptest . NewServer ( handler )
1182
+ defer server . Close ()
1048
1183
1049
- // we expect that we will get an error for the 500 error encountered when putting the http server
1050
- // but we also expect that we have the https server added
1051
- added , _ , _ , err := client .UpdateHTTPServers (context .TODO (), "fakeUpstream" , []UpstreamServer {
1052
- httpServer ,
1053
- httpsServer ,
1054
- })
1055
- if err == nil {
1056
- t .Fatal ("expected to receive an error for 500 response when adding first server" )
1057
- }
1184
+ client , err := NewNginxClient (server .URL , WithHTTPClient (& http.Client {}))
1185
+ if err != nil {
1186
+ t .Fatal (err )
1187
+ }
1058
1188
1059
- if len (added ) != 1 {
1060
- t .Fatalf ("expected to get one added server, instead got %d" , len (added ))
1061
- }
1189
+ added , deleted , updated , err := client .UpdateHTTPServers (context .Background (), "fakeUpstream" , tc .reqServers )
1190
+ if tc .expErr && err == nil {
1191
+ t .Fatal ("expected to receive an error" )
1192
+ }
1193
+ if ! tc .expErr && err != nil {
1194
+ t .Fatalf ("received an unexpected error: %v" , err )
1195
+ }
1062
1196
1063
- if ! reflect .DeepEqual (httpsServer , added [0 ]) {
1064
- t .Errorf ("expected: %v got: %v" , httpsServer , added [0 ])
1197
+ if len (added ) != tc .expAdded {
1198
+ t .Fatalf ("expected to get %d added server(s), instead got %d" , tc .expAdded , len (added ))
1199
+ }
1200
+ if len (deleted ) != tc .expDeleted {
1201
+ t .Fatalf ("expected to get %d deleted server(s), instead got %d" , tc .expDeleted , len (deleted ))
1202
+ }
1203
+ if len (updated ) != tc .expUpdated {
1204
+ t .Fatalf ("expected to get %d updated server(s), instead got %d" , tc .expUpdated , len (updated ))
1205
+ }
1206
+ if len (tc .responses ) != 0 {
1207
+ t .Fatalf ("did not use all expected responses, %d unused" , len (tc .responses ))
1208
+ }
1209
+ })
1065
1210
}
1066
1211
}
1067
1212
1068
- func TestClientStreamUpdateServers (t * testing.T ) {
1213
+ func TestUpdateStreamServers (t * testing.T ) {
1069
1214
t .Parallel ()
1070
1215
1071
- responses := []response {
1072
- // response for first serversInNginx GET servers
1073
- {
1074
- statusCode : http .StatusOK ,
1075
- servers : []UpstreamServer {},
1216
+ testcases := map [string ]struct {
1217
+ reqServers []StreamUpstreamServer
1218
+ responses []response
1219
+ expAdded , expDeleted , expUpdated int
1220
+ expErr bool
1221
+ }{
1222
+ "successfully add 1 server" : {
1223
+ reqServers : []StreamUpstreamServer {{Server : "127.0.0.1:80" }},
1224
+ responses : []response {
1225
+ // response for first serversInNginx GET servers
1226
+ {
1227
+ statusCode : http .StatusOK ,
1228
+ },
1229
+ // response for addStreamServer POST server for stream server
1230
+ {
1231
+ statusCode : http .StatusCreated ,
1232
+ },
1233
+ },
1234
+ expAdded : 1 ,
1076
1235
},
1077
- // response for AddStreamServer GET servers for streamServer1
1078
- {
1079
- statusCode : http .StatusOK ,
1080
- servers : []UpstreamServer {},
1236
+ "successfully update 1 server" : {
1237
+ reqServers : []StreamUpstreamServer {{Server : "127.0.0.1:80" }},
1238
+ responses : []response {
1239
+ // response for first serversInNginx GET servers
1240
+ {
1241
+ statusCode : http .StatusOK ,
1242
+ servers : []StreamUpstreamServer {
1243
+ {ID : 1 , Server : "127.0.0.1:80" , SlowStart : "30s" },
1244
+ },
1245
+ },
1246
+ // response for UpdateStreamServer PATCH server for stream server
1247
+ {
1248
+ statusCode : http .StatusOK ,
1249
+ },
1250
+ },
1251
+ expUpdated : 1 ,
1081
1252
},
1082
- // response for AddStreamServer POST server for streamServer1
1083
- {
1084
- statusCode : http .StatusInternalServerError ,
1085
- servers : []UpstreamServer {},
1253
+ "successfully delete 1 server" : {
1254
+ reqServers : []StreamUpstreamServer {{Server : "127.0.0.1:80" }},
1255
+ responses : []response {
1256
+ // response for first serversInNginx GET servers
1257
+ {
1258
+ statusCode : http .StatusOK ,
1259
+ servers : []StreamUpstreamServer {
1260
+ {ID : 1 , Server : "127.0.0.1:80" },
1261
+ {ID : 2 , Server : "127.0.0.2:80" },
1262
+ },
1263
+ },
1264
+ // response for deleteStreamServer DELETE server for stream server
1265
+ {
1266
+ statusCode : http .StatusOK ,
1267
+ },
1268
+ },
1269
+ expDeleted : 1 ,
1086
1270
},
1087
- // response for AddStreamServer GET servers for streamServer2
1088
- {
1089
- statusCode : http .StatusOK ,
1090
- servers : []UpstreamServer {},
1271
+ "successfully add 1 server, update 1 server, delete 1 server" : {
1272
+ reqServers : []StreamUpstreamServer {
1273
+ {Server : "127.0.0.1:80" , SlowStart : "30s" },
1274
+ {Server : "127.0.0.2:80" },
1275
+ },
1276
+ responses : []response {
1277
+ // response for first serversInNginx GET servers
1278
+ {
1279
+ statusCode : http .StatusOK ,
1280
+ servers : []StreamUpstreamServer {
1281
+ {ID : 1 , Server : "127.0.0.1:80" },
1282
+ {ID : 2 , Server : "127.0.0.3:80" },
1283
+ },
1284
+ },
1285
+ // response for addStreamServer POST server for stream server
1286
+ {
1287
+ statusCode : http .StatusCreated ,
1288
+ },
1289
+ // response for deleteStreamServer DELETE server for stream server
1290
+ {
1291
+ statusCode : http .StatusOK ,
1292
+ },
1293
+ // response for UpdateStreamServer PATCH server for stream server
1294
+ {
1295
+ statusCode : http .StatusOK ,
1296
+ },
1297
+ },
1298
+ expAdded : 1 ,
1299
+ expUpdated : 1 ,
1300
+ expDeleted : 1 ,
1091
1301
},
1092
- // response for AddStreamServer POST server for streamServer2
1093
- {
1094
- statusCode : http .StatusCreated ,
1095
- servers : []UpstreamServer {},
1302
+ "successfully add 1 server with ignored identical duplicate" : {
1303
+ reqServers : []StreamUpstreamServer {
1304
+ {Server : "127.0.0.1:80" , SlowStart : "30s" },
1305
+ {Server : "127.0.0.1" , SlowStart : "30s" },
1306
+ {Server : "127.0.0.1:80" , SlowStart : "30s" , MaxConns : & defaultMaxConns },
1307
+ {Server : "127.0.0.1" , SlowStart : "30s" , MaxFails : & defaultMaxFails },
1308
+ {Server : "127.0.0.1" , SlowStart : "30s" , FailTimeout : defaultFailTimeout },
1309
+ },
1310
+ responses : []response {
1311
+ // response for first serversInNginx GET servers
1312
+ {
1313
+ statusCode : http .StatusOK ,
1314
+ servers : []UpstreamServer {},
1315
+ },
1316
+ // response for addStreamServer POST server for stream server
1317
+ {
1318
+ statusCode : http .StatusCreated ,
1319
+ },
1320
+ },
1321
+ expAdded : 1 ,
1322
+ },
1323
+ "successfully add 1 server, receive 1 error for non-identical duplicates" : {
1324
+ reqServers : []StreamUpstreamServer {
1325
+ {Server : "127.0.0.1:80" , SlowStart : "30s" },
1326
+ {Server : "127.0.0.1:80" , SlowStart : "30s" },
1327
+ {Server : "127.0.0.2:80" , SlowStart : "10s" },
1328
+ {Server : "127.0.0.2:80" , SlowStart : "20s" },
1329
+ {Server : "127.0.0.2:80" , SlowStart : "30s" },
1330
+ },
1331
+ responses : []response {
1332
+ // response for first serversInNginx GET servers
1333
+ {
1334
+ statusCode : http .StatusOK ,
1335
+ servers : []UpstreamServer {},
1336
+ },
1337
+ // response for addStreamServer POST server for stream server
1338
+ {
1339
+ statusCode : http .StatusCreated ,
1340
+ },
1341
+ },
1342
+ expAdded : 1 ,
1343
+ expErr : true ,
1344
+ },
1345
+ "successfully add 1 server, receive 1 error" : {
1346
+ reqServers : []StreamUpstreamServer {
1347
+ {Server : "127.0.0.1:2000" },
1348
+ {Server : "127.0.0.1:3000" },
1349
+ },
1350
+ responses : []response {
1351
+ // response for first serversInNginx GET servers
1352
+ {
1353
+ statusCode : http .StatusOK ,
1354
+ servers : []UpstreamServer {},
1355
+ },
1356
+ // response for addStreamServer POST server for server1
1357
+ {
1358
+ statusCode : http .StatusInternalServerError ,
1359
+ servers : []UpstreamServer {},
1360
+ },
1361
+ // response for addStreamServer POST server for server2
1362
+ {
1363
+ statusCode : http .StatusCreated ,
1364
+ servers : []UpstreamServer {},
1365
+ },
1366
+ },
1367
+ expAdded : 1 ,
1368
+ expErr : true ,
1096
1369
},
1097
1370
}
1098
1371
1099
- handler := & fakeHandler {
1100
- func (w http.ResponseWriter , _ * http.Request ) {
1101
- if len (responses ) == 0 {
1102
- t .Fatal ("ran out of responses" )
1103
- }
1372
+ for name , tc := range testcases {
1373
+ t .Run (name , func (t * testing.T ) {
1374
+ t .Parallel ()
1104
1375
1105
- re := responses [0 ]
1106
- responses = responses [1 :]
1376
+ var requests []* http.Request
1377
+ handler := & fakeHandler {
1378
+ func (w http.ResponseWriter , r * http.Request ) {
1379
+ requests = append (requests , r )
1107
1380
1108
- w .WriteHeader (re .statusCode )
1381
+ if len (tc .responses ) == 0 {
1382
+ t .Fatal ("ran out of responses" )
1383
+ }
1384
+ if r .Method == http .MethodPost || r .Method == http .MethodPut {
1385
+ contentType , ok := r .Header ["Content-Type" ]
1386
+ if ! ok {
1387
+ t .Fatalf ("expected request type %s to have a Content-Type header" , r .Method )
1388
+ }
1389
+ if len (contentType ) != 1 || contentType [0 ] != "application/json" {
1390
+ t .Fatalf ("expected request type %s to have a Content-Type header value of 'application/json'" , r .Method )
1391
+ }
1392
+ }
1109
1393
1110
- resp , err := json .Marshal (re .servers )
1111
- if err != nil {
1112
- t .Fatal (err )
1113
- }
1114
- _ , err = w .Write (resp )
1115
- if err != nil {
1116
- t .Fatal (err )
1117
- }
1118
- },
1119
- }
1394
+ re := tc .responses [0 ]
1395
+ tc .responses = tc .responses [1 :]
1120
1396
1121
- server := httptest .NewServer (handler )
1122
- defer server .Close ()
1397
+ w .WriteHeader (re .statusCode )
1123
1398
1124
- client , err := NewNginxClient (server .URL , WithHTTPClient (& http.Client {}))
1125
- if err != nil {
1126
- t .Fatal (err )
1127
- }
1128
-
1129
- streamServer1 := StreamUpstreamServer {Server : "127.0.0.1:2000" }
1130
- streamServer2 := StreamUpstreamServer {Server : "127.0.0.1:3000" }
1399
+ resp , err := json .Marshal (re .servers )
1400
+ if err != nil {
1401
+ t .Fatal (err )
1402
+ }
1403
+ _ , err = w .Write (resp )
1404
+ if err != nil {
1405
+ t .Fatal (err )
1406
+ }
1407
+ },
1408
+ }
1131
1409
1132
- // we expect that we will get an error for the 500 error encountered when putting server1
1133
- // but we also expect that we get the second server added
1134
- added , _ , _ , err := client .UpdateStreamServers (context .TODO (), "fakeUpstream" , []StreamUpstreamServer {
1135
- streamServer1 ,
1136
- streamServer2 ,
1137
- })
1138
- if err == nil {
1139
- t .Fatal ("expected to receive an error for 500 response when adding first server" )
1140
- }
1410
+ server := httptest .NewServer (handler )
1411
+ defer server .Close ()
1141
1412
1142
- if len (added ) != 1 {
1143
- t .Fatalf ("expected to get one added server, instead got %d" , len (added ))
1144
- }
1413
+ client , err := NewNginxClient (server .URL , WithHTTPClient (& http.Client {}))
1414
+ if err != nil {
1415
+ t .Fatal (err )
1416
+ }
1145
1417
1146
- if ! reflect .DeepEqual (streamServer2 , added [0 ]) {
1147
- t .Errorf ("expected: %v got: %v" , streamServer2 , added [0 ])
1418
+ added , deleted , updated , err := client .UpdateStreamServers (context .Background (), "fakeUpstream" , tc .reqServers )
1419
+ if tc .expErr && err == nil {
1420
+ t .Fatal ("expected to receive an error" )
1421
+ }
1422
+ if ! tc .expErr && err != nil {
1423
+ t .Fatalf ("received an unexpected error: %v" , err )
1424
+ }
1425
+ if len (added ) != tc .expAdded {
1426
+ t .Fatalf ("expected to get %d added server(s), instead got %d" , tc .expAdded , len (added ))
1427
+ }
1428
+ if len (deleted ) != tc .expDeleted {
1429
+ t .Fatalf ("expected to get %d deleted server(s), instead got %d" , tc .expDeleted , len (deleted ))
1430
+ }
1431
+ if len (updated ) != tc .expUpdated {
1432
+ t .Fatalf ("expected to get %d updated server(s), instead got %d" , tc .expUpdated , len (updated ))
1433
+ }
1434
+ if len (tc .responses ) != 0 {
1435
+ t .Fatalf ("did not use all expected responses, %d unused" , len (tc .responses ))
1436
+ }
1437
+ })
1148
1438
}
1149
1439
}
1150
1440
1151
1441
type response struct {
1152
- servers [] UpstreamServer
1442
+ servers interface {}
1153
1443
statusCode int
1154
1444
}
1155
1445
0 commit comments