@@ -374,7 +374,7 @@ func TestDeleteCluster(t *testing.T) {
374
374
testCases := []struct {
375
375
name string
376
376
in * pb.IDRequest
377
- buildStubs func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient )
377
+ buildStubs func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks. MockAppInfoServiceClient )
378
378
checkResponse func (req * pb.IDRequest , res * pb.SimpleResponse , err error )
379
379
}{
380
380
{
@@ -383,13 +383,25 @@ func TestDeleteCluster(t *testing.T) {
383
383
Id : createdClusterId ,
384
384
},
385
385
buildStubs : func (mockArgoClient * mockargo.MockClient ,
386
- mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ) {
386
+ mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ,
387
+ mockAppInfoClient * mocktks.MockAppInfoServiceClient ) {
387
388
388
389
mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
389
390
Return (
390
391
& pb.GetClusterResponse {
391
392
Code : pb .Code_OK_UNSPECIFIED ,
392
393
Error : nil ,
394
+ Cluster : & pb.Cluster {
395
+ Status : pb .ClusterStatus_RUNNING ,
396
+ },
397
+ }, nil )
398
+
399
+ mockAppInfoClient .EXPECT ().GetAppGroupsByClusterID (gomock .Any (), gomock .Any ()).Times (1 ).
400
+ Return (
401
+ & pb.GetAppGroupsResponse {
402
+ Code : pb .Code_OK_UNSPECIFIED ,
403
+ Error : nil ,
404
+ AppGroups : []* pb.AppGroup {},
393
405
}, nil )
394
406
395
407
mockClusterInfoClient .EXPECT ().UpdateClusterStatus (gomock .Any (), gomock .Any ()).Times (1 ).
@@ -412,7 +424,7 @@ func TestDeleteCluster(t *testing.T) {
412
424
in : & pb.IDRequest {
413
425
Id : "THIS_IS_NOT_UUID" ,
414
426
},
415
- buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ) {
427
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks. MockAppInfoServiceClient ) {
416
428
},
417
429
checkResponse : func (req * pb.IDRequest , res * pb.SimpleResponse , err error ) {
418
430
require .Error (t , err )
@@ -424,7 +436,7 @@ func TestDeleteCluster(t *testing.T) {
424
436
in : & pb.IDRequest {
425
437
Id : uuid .New ().String (),
426
438
},
427
- buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ) {
439
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks. MockAppInfoServiceClient ) {
428
440
mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
429
441
Return (
430
442
& pb.GetClusterResponse {
@@ -442,7 +454,7 @@ func TestDeleteCluster(t *testing.T) {
442
454
in : & pb.IDRequest {
443
455
Id : uuid .New ().String (),
444
456
},
445
- buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ) {
457
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks. MockAppInfoServiceClient ) {
446
458
mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
447
459
Return (
448
460
& pb.GetClusterResponse {
@@ -455,20 +467,30 @@ func TestDeleteCluster(t *testing.T) {
455
467
},
456
468
checkResponse : func (req * pb.IDRequest , res * pb.SimpleResponse , err error ) {
457
469
require .Error (t , err )
458
- require .Equal (t , res .Code , pb .Code_NOT_FOUND )
470
+ require .Equal (t , res .Code , pb .Code_INVALID_ARGUMENT )
459
471
},
460
472
},
461
473
{
462
474
name : "FAILED_TO_CALL_WORKFLOW" ,
463
475
in : & pb.IDRequest {
464
476
Id : uuid .New ().String (),
465
477
},
466
- buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient ) {
478
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks. MockAppInfoServiceClient ) {
467
479
mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
468
480
Return (
469
481
& pb.GetClusterResponse {
470
482
Code : pb .Code_OK_UNSPECIFIED ,
471
483
Error : nil ,
484
+ Cluster : & pb.Cluster {
485
+ Status : pb .ClusterStatus_RUNNING ,
486
+ },
487
+ }, nil )
488
+ mockAppInfoClient .EXPECT ().GetAppGroupsByClusterID (gomock .Any (), gomock .Any ()).Times (1 ).
489
+ Return (
490
+ & pb.GetAppGroupsResponse {
491
+ Code : pb .Code_OK_UNSPECIFIED ,
492
+ Error : nil ,
493
+ AppGroups : []* pb.AppGroup {},
472
494
}, nil )
473
495
mockArgoClient .EXPECT ().SumbitWorkflowFromWftpl (gomock .Any (), gomock .Any (), gomock .Any (), gomock .Any ()).Times (1 ).
474
496
Return (randomString ("workflowName" ), errors .New ("FAILED_TO_CALL_WORKFLOW" ))
@@ -478,6 +500,60 @@ func TestDeleteCluster(t *testing.T) {
478
500
require .Equal (t , res .Code , pb .Code_INTERNAL )
479
501
},
480
502
},
503
+ {
504
+ name : "CLUSTER_STATUS_IS_NOT_RUNNING" ,
505
+ in : & pb.IDRequest {
506
+ Id : uuid .New ().String (),
507
+ },
508
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks.MockAppInfoServiceClient ) {
509
+ mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
510
+ Return (
511
+ & pb.GetClusterResponse {
512
+ Code : pb .Code_OK_UNSPECIFIED ,
513
+ Error : nil ,
514
+ Cluster : & pb.Cluster {
515
+ Status : pb .ClusterStatus_INSTALLING ,
516
+ },
517
+ }, nil )
518
+ },
519
+ checkResponse : func (req * pb.IDRequest , res * pb.SimpleResponse , err error ) {
520
+ require .Error (t , err )
521
+ require .Equal (t , res .Code , pb .Code_INVALID_ARGUMENT )
522
+ },
523
+ },
524
+ {
525
+ name : "APPGROUP_STATUS_IS_NOT_DELETED" ,
526
+ in : & pb.IDRequest {
527
+ Id : uuid .New ().String (),
528
+ },
529
+ buildStubs : func (mockArgoClient * mockargo.MockClient , mockClusterInfoClient * mocktks.MockClusterInfoServiceClient , mockAppInfoClient * mocktks.MockAppInfoServiceClient ) {
530
+ mockClusterInfoClient .EXPECT ().GetCluster (gomock .Any (), gomock .Any ()).Times (1 ).
531
+ Return (
532
+ & pb.GetClusterResponse {
533
+ Code : pb .Code_OK_UNSPECIFIED ,
534
+ Error : nil ,
535
+ Cluster : & pb.Cluster {
536
+ Status : pb .ClusterStatus_RUNNING ,
537
+ },
538
+ }, nil )
539
+
540
+ mockAppInfoClient .EXPECT ().GetAppGroupsByClusterID (gomock .Any (), gomock .Any ()).Times (1 ).
541
+ Return (
542
+ & pb.GetAppGroupsResponse {
543
+ Code : pb .Code_OK_UNSPECIFIED ,
544
+ Error : nil ,
545
+ AppGroups : []* pb.AppGroup {
546
+ {
547
+ Status : pb .AppGroupStatus_APP_GROUP_DELETING ,
548
+ },
549
+ },
550
+ }, nil )
551
+ },
552
+ checkResponse : func (req * pb.IDRequest , res * pb.SimpleResponse , err error ) {
553
+ require .Error (t , err )
554
+ require .Equal (t , res .Code , pb .Code_INVALID_ARGUMENT )
555
+ },
556
+ },
481
557
}
482
558
483
559
for i := range testCases {
@@ -496,8 +572,10 @@ func TestDeleteCluster(t *testing.T) {
496
572
497
573
mockClusterInfoClient := mocktks .NewMockClusterInfoServiceClient (ctrl )
498
574
clusterInfoClient = mockClusterInfoClient
575
+ mockAppInfoClient := mocktks .NewMockAppInfoServiceClient (ctrl )
576
+ appInfoClient = mockAppInfoClient
499
577
500
- tc .buildStubs (mockArgoClient , mockClusterInfoClient )
578
+ tc .buildStubs (mockArgoClient , mockClusterInfoClient , mockAppInfoClient )
501
579
502
580
s := server {}
503
581
res , err := s .DeleteCluster (ctx , tc .in )
@@ -965,7 +1043,7 @@ func randomInstallAppGroupsRequest() *pb.InstallAppGroupsRequest {
965
1043
AppGroupName : randomString ("APPGROUP" ),
966
1044
Type : pb .AppGroupType_LMA ,
967
1045
ClusterId : uuid .New ().String (),
968
- Status : pb .AppGroupStatus_APP_GROUP_UNSPECIFIED ,
1046
+ Status : pb .AppGroupStatus_APP_GROUP_RUNNING ,
969
1047
ExternalLabel : randomString ("EXTERNAL_LABEL" ),
970
1048
},
971
1049
},
0 commit comments