@@ -1302,6 +1302,70 @@ func TestNmAgentSupportedApisHandler(t *testing.T) {
13021302 fmt .Printf ("nmAgentSupportedApisHandler Responded with %+v\n " , nmAgentSupportedApisResponse )
13031303}
13041304
1305+ func TestNMAgentNCListHandler (t * testing.T ) {
1306+ fmt .Println ("Test: nmAgentNCListHandler" )
1307+
1308+ setEnv (t )
1309+ errSetOrch := setOrchestratorType (t , cns .Kubernetes )
1310+ if errSetOrch != nil {
1311+ t .Fatalf ("TestNMAgentNCListHandler failed with error:%+v" , errSetOrch )
1312+ }
1313+
1314+ mnma := & fakes.NMAgentClientFake {}
1315+ cleanupNMA := setMockNMAgent (svc , mnma )
1316+ defer cleanupNMA ()
1317+
1318+ wsproxy := fakes.WireserverProxyFake {}
1319+ cleanupWSP := setWireserverProxy (svc , & wsproxy )
1320+ defer cleanupWSP ()
1321+
1322+ params := createOrUpdateNetworkContainerParams {
1323+ ncID : "f47ac10b-58cc-0372-8567-0e02b2c3d475" , // random guid
1324+ ncIP : "11.0.0.5" ,
1325+ ncType : cns .AzureContainerInstance ,
1326+ ncVersion : "0" ,
1327+ vnetID : "vnet1" ,
1328+ podName : "testpod" ,
1329+ podNamespace : "testpodnamespace" ,
1330+ }
1331+
1332+ err := createNC (params )
1333+ if err != nil {
1334+ t .Fatal ("error creating NC: err:" , err )
1335+ }
1336+
1337+ mnma .GetNCVersionListF = func (_ context.Context ) (nmagent.NCVersionList , error ) {
1338+ return nmagent.NCVersionList {
1339+ Containers : []nmagent.NCVersion {
1340+ {
1341+ // Must set it as params.ncID without cns.SwiftPrefix to mock real nmagent nc format.
1342+ NetworkContainerID : params .ncID ,
1343+ Version : params .ncVersion ,
1344+ },
1345+ },
1346+ }, nil
1347+ }
1348+
1349+ // test CNS' new GET /ncList API
1350+ var req * http.Request
1351+ req , err = http .NewRequestWithContext (context .TODO (), http .MethodGet , cns .NMAgentGetNCListAPIPath , http .NoBody )
1352+ if err != nil {
1353+ t .Fatal (err )
1354+ }
1355+
1356+ w := httptest .NewRecorder ()
1357+ mux .ServeHTTP (w , req )
1358+ var nmAgentNCListResponse cns.NCListResponse
1359+
1360+ err = decodeResponse (w , & nmAgentNCListResponse )
1361+ if err != nil || nmAgentNCListResponse .Response .ReturnCode != 0 {
1362+ t .Errorf ("nmAgentNCListHandler failed with response %+v" , nmAgentNCListResponse )
1363+ }
1364+
1365+ fmt .Printf ("nmAgentNCListHandler responded with %+v\n " , nmAgentNCListResponse )
1366+ require .Equal (t , params .ncID , nmAgentNCListResponse .NCList [0 ])
1367+ }
1368+
13051369// Testing GetHomeAz API handler, return UnsupportedVerb if http method is not supported
13061370func TestGetHomeAz_UnsupportedHttpMethod (t * testing.T ) {
13071371 req , err := http .NewRequestWithContext (context .TODO (), http .MethodPost , cns .GetHomeAz , http .NoBody )
0 commit comments