1919import com .cloud .capacity .Capacity ;
2020import com .cloud .configuration .Resource ;
2121import com .cloud .domain .DomainVO ;
22+ import com .cloud .exception .PermissionDeniedException ;
23+ import com .cloud .network .Network ;
2224import com .cloud .network .PublicIpQuarantine ;
2325import com .cloud .network .as .AutoScaleVmGroup ;
2426import com .cloud .network .as .AutoScaleVmGroupVO ;
2931import com .cloud .network .dao .LoadBalancerVO ;
3032import com .cloud .network .dao .NetworkServiceMapDao ;
3133import com .cloud .network .dao .NetworkVO ;
34+ import com .cloud .network .vpc .NetworkACL ;
35+ import com .cloud .network .vpc .VpcVO ;
3236import com .cloud .storage .VMTemplateVO ;
3337import com .cloud .usage .UsageVO ;
3438import com .cloud .user .Account ;
4650import org .apache .cloudstack .api .response .AutoScaleVmProfileResponse ;
4751import org .apache .cloudstack .api .response .DirectDownloadCertificateResponse ;
4852import org .apache .cloudstack .api .response .IpQuarantineResponse ;
53+ import org .apache .cloudstack .api .response .NetworkResponse ;
4954import org .apache .cloudstack .api .response .NicSecondaryIpResponse ;
5055import org .apache .cloudstack .api .response .UnmanagedInstanceResponse ;
5156import org .apache .cloudstack .api .response .UsageRecordResponse ;
@@ -105,6 +110,13 @@ public class ApiResponseHelperTest {
105110 @ Mock
106111 IPAddressDao ipAddressDaoMock ;
107112
113+ @ Mock
114+ VpcVO vpcVOMock ;
115+
116+ @ Mock
117+ NetworkACL networkACLMock ;
118+
119+
108120 @ Spy
109121 @ InjectMocks
110122 ApiResponseHelper apiResponseHelper = new ApiResponseHelper ();
@@ -123,6 +135,9 @@ public class ApiResponseHelperTest {
123135
124136 static long autoScaleUserId = 7L ;
125137
138+ static final String A_NAME = "name" ;
139+ static final String A_UUID = "021f94d4-73f9-4a9a-b003-1df9dd968a09" ;
140+
126141 @ Before
127142 public void injectMocks () throws SecurityException , NoSuchFieldException ,
128143 IllegalArgumentException , IllegalAccessException {
@@ -481,4 +496,136 @@ public void testCapacityListingForSingleNonGpuType() {
481496 Assert .assertTrue (apiResponseHelper .capacityListingForSingleNonGpuType (List .of (c1 , c2 )));
482497 Assert .assertFalse (apiResponseHelper .capacityListingForSingleNonGpuType (List .of (c1 , c2 , c3 )));
483498 }
499+
500+ @ Test
501+ public void setVpcIdInResponseTestNullVpcIdReturnNull () {
502+ NetworkResponse networkResponse = new NetworkResponse ();
503+
504+ apiResponseHelper .setVpcIdInResponse (null , networkResponse ::setVpcId , networkResponse ::setVpcName , networkResponse ::setVpcAccess );
505+ Assert .assertNull (networkResponse .getVpcId ());
506+ Assert .assertNull (networkResponse .getVpcName ());
507+ Assert .assertNull (networkResponse .getVpcAccess ());
508+ }
509+
510+ @ Test
511+ public void setVpcIdInResponseTestNullVpcReturnNull () {
512+ NetworkResponse networkResponse = new NetworkResponse ();
513+
514+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
515+ utils .when (() -> ApiDBUtils .findVpcById (1L )).thenReturn (null );
516+ apiResponseHelper .setVpcIdInResponse (1L , networkResponse ::setVpcId , networkResponse ::setVpcName , networkResponse ::setVpcAccess );
517+ }
518+ Assert .assertNull (networkResponse .getVpcId ());
519+ Assert .assertNull (networkResponse .getVpcName ());
520+ Assert .assertNull (networkResponse .getVpcAccess ());
521+ }
522+
523+ @ Test
524+ public void setVpcIdInResponseCallerHasAccessReturnVpcAccessTrueAndVpcIdAndVpcName () {
525+ NetworkResponse networkResponse = new NetworkResponse ();
526+ Mockito .when (vpcVOMock .getName ()).thenReturn (A_NAME );
527+ Mockito .when (vpcVOMock .getUuid ()).thenReturn (A_UUID );
528+
529+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
530+ utils .when (() -> ApiDBUtils .findVpcById (1L )).thenReturn (vpcVOMock );
531+ apiResponseHelper .setVpcIdInResponse (1L , networkResponse ::setVpcId , networkResponse ::setVpcName , networkResponse ::setVpcAccess );
532+ };
533+ Assert .assertEquals (A_UUID , networkResponse .getVpcId ());
534+ Assert .assertEquals (A_NAME , networkResponse .getVpcName ());
535+ Assert .assertTrue (networkResponse .getVpcAccess ());
536+ }
537+
538+ @ Test
539+ public void setVpcIdInResponseCallerDoesNotHaveAccessReturnVpcAccessFalseAndVpcIdAndVpcName () {
540+ NetworkResponse networkResponse = new NetworkResponse ();
541+ Mockito .when (vpcVOMock .getName ()).thenReturn (A_NAME );
542+ Mockito .when (vpcVOMock .getUuid ()).thenReturn (A_UUID );
543+
544+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
545+ utils .when (() -> ApiDBUtils .findVpcById (1L )).thenReturn (vpcVOMock );
546+ Mockito .doThrow (PermissionDeniedException .class ).when (accountManagerMock ).checkAccess (Mockito .any (), Mockito .any (), Mockito .anyBoolean (), Mockito .any ());
547+ apiResponseHelper .setVpcIdInResponse (1L , networkResponse ::setVpcId , networkResponse ::setVpcName , networkResponse ::setVpcAccess );
548+ };
549+ Assert .assertEquals (A_UUID , networkResponse .getVpcId ());
550+ Assert .assertEquals (A_NAME , networkResponse .getVpcName ());
551+ Assert .assertFalse (networkResponse .getVpcAccess ());
552+ }
553+
554+ @ Test
555+ public void setAclIdInResponseTestNullNetworkAclIdReturnNull () {
556+ NetworkResponse networkResponse = new NetworkResponse ();
557+ Network networkMock = Mockito .mock (Network .class );
558+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (null );
559+
560+ apiResponseHelper .setAclIdInResponse (networkMock , networkResponse );
561+ Assert .assertNull (networkResponse .getAclId ());
562+ Assert .assertNull (networkResponse .getAclName ());
563+ }
564+
565+ @ Test
566+ public void setAclIdInResponseTestNullAclReturnNull () {
567+ NetworkResponse networkResponse = new NetworkResponse ();
568+ Network networkMock = Mockito .mock (Network .class );
569+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (1L );
570+
571+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
572+ utils .when (() -> ApiDBUtils .findByNetworkACLId (1L )).thenReturn (null );
573+ apiResponseHelper .setAclIdInResponse (networkMock , networkResponse );
574+ }
575+ Assert .assertNull (networkResponse .getAclId ());
576+ Assert .assertNull (networkResponse .getAclName ());
577+ }
578+
579+ @ Test
580+ public void setAclIdInResponseTestCallerDoesNotHaveAccessReturnNull () {
581+ NetworkResponse networkResponse = new NetworkResponse ();
582+ networkResponse .setVpcAccess (false );
583+ Network networkMock = Mockito .mock (Network .class );
584+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (1L );
585+ Mockito .when (networkACLMock .getVpcId ()).thenReturn (2L );
586+
587+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
588+ utils .when (() -> ApiDBUtils .findByNetworkACLId (1L )).thenReturn (networkACLMock );
589+ apiResponseHelper .setAclIdInResponse (networkMock , networkResponse );
590+ }
591+ Assert .assertNull (networkResponse .getAclId ());
592+ Assert .assertNull (networkResponse .getAclName ());
593+ }
594+
595+ @ Test
596+ public void setAclIdInResponseTestCallerDoesNotHaveAccessButAclIsGlobalReturnAclIdAndAclName () {
597+ NetworkResponse networkResponse = new NetworkResponse ();
598+ networkResponse .setVpcAccess (false );
599+ Network networkMock = Mockito .mock (Network .class );
600+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (1L );
601+ Mockito .when (networkACLMock .getVpcId ()).thenReturn (0L );
602+ Mockito .when (networkACLMock .getName ()).thenReturn (A_NAME );
603+ Mockito .when (networkACLMock .getUuid ()).thenReturn (A_UUID );
604+
605+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
606+ utils .when (() -> ApiDBUtils .findByNetworkACLId (1L )).thenReturn (networkACLMock );
607+ apiResponseHelper .setAclIdInResponse (networkMock , networkResponse );
608+ }
609+ Assert .assertEquals (A_UUID , networkResponse .getAclId ());
610+ Assert .assertEquals (A_NAME , networkResponse .getAclName ());
611+ }
612+
613+ @ Test
614+ public void setAclIdInResponseTestCallerHasAccessReturnAclIdAndAclName () {
615+ NetworkResponse networkResponse = new NetworkResponse ();
616+ networkResponse .setVpcAccess (true );
617+ Network networkMock = Mockito .mock (Network .class );
618+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (1L );
619+ Mockito .lenient ().when (networkACLMock .getVpcId ()).thenReturn (2L );
620+ Mockito .when (networkACLMock .getName ()).thenReturn (A_NAME );
621+ Mockito .when (networkACLMock .getUuid ()).thenReturn (A_UUID );
622+
623+ try (MockedStatic <ApiDBUtils > utils = Mockito .mockStatic (ApiDBUtils .class )) {
624+ utils .when (() -> ApiDBUtils .findByNetworkACLId (1L )).thenReturn (networkACLMock );
625+ apiResponseHelper .setAclIdInResponse (networkMock , networkResponse );
626+ }
627+ Assert .assertEquals (A_UUID , networkResponse .getAclId ());
628+ Assert .assertEquals (A_NAME , networkResponse .getAclName ());
629+ }
630+
484631}
0 commit comments