3131
3232import com .cloud .exception .PermissionDeniedException ;
3333import com .cloud .network .vpc .dao .VpcDao ;
34+ import com .cloud .utils .net .NetUtils ;
3435import org .apache .cloudstack .acl .SecurityChecker .AccessType ;
3536import org .apache .cloudstack .api .ServerApiException ;
3637import org .apache .cloudstack .api .command .user .network .CreateNetworkACLCmd ;
@@ -772,8 +773,6 @@ public void transferDataToNetworkAclRulePojoTestPartialUpgradeAllValuesNull() {
772773 Mockito .when (updateNetworkACLItemCmdMock .getSourcePortEnd ()).thenReturn (null );
773774 Mockito .when (updateNetworkACLItemCmdMock .getSourceCidrList ()).thenReturn (null );
774775 Mockito .when (updateNetworkACLItemCmdMock .getProtocol ()).thenReturn (null );
775- Mockito .when (updateNetworkACLItemCmdMock .getIcmpCode ()).thenReturn (null );
776- Mockito .when (updateNetworkACLItemCmdMock .getIcmpType ()).thenReturn (null );
777776 Mockito .when (updateNetworkACLItemCmdMock .getAction ()).thenReturn (null );
778777 Mockito .when (updateNetworkACLItemCmdMock .getTrafficType ()).thenReturn (null );
779778 Mockito .when (updateNetworkACLItemCmdMock .getCustomId ()).thenReturn (null );
@@ -789,8 +788,7 @@ public void transferDataToNetworkAclRulePojoTestPartialUpgradeAllValuesNull() {
789788 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setSourcePortEnd (Mockito .anyInt ());
790789 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setSourceCidrList (Mockito .anyList ());
791790 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setProtocol (Mockito .anyString ());
792- Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setIcmpCode (Mockito .anyInt ());
793- Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setIcmpType (Mockito .anyInt ());
791+ Mockito .verify (networkAclServiceImpl ).updateIcmpCodeAndType (Mockito .any (Boolean .class ), Mockito .any (), Mockito .any ());
794792 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setAction (Mockito .any (Action .class ));
795793 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setTrafficType (Mockito .any (TrafficType .class ));
796794 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setUuid (Mockito .anyString ());
@@ -808,14 +806,13 @@ public void transferDataToNetworkAclRulePojoTestNotPartialUpgradeAllValuesNull()
808806 Mockito .when (updateNetworkACLItemCmdMock .getSourcePortEnd ()).thenReturn (null );
809807 Mockito .when (updateNetworkACLItemCmdMock .getSourceCidrList ()).thenReturn (null );
810808 Mockito .when (updateNetworkACLItemCmdMock .getProtocol ()).thenReturn (null );
811- Mockito .when (updateNetworkACLItemCmdMock .getIcmpCode ()).thenReturn (null );
812- Mockito .when (updateNetworkACLItemCmdMock .getIcmpType ()).thenReturn (null );
813809 Mockito .when (updateNetworkACLItemCmdMock .getAction ()).thenReturn (null );
814810 Mockito .when (updateNetworkACLItemCmdMock .getTrafficType ()).thenReturn (null );
815811 Mockito .when (updateNetworkACLItemCmdMock .getCustomId ()).thenReturn (null );
816812 Mockito .when (updateNetworkACLItemCmdMock .getReason ()).thenReturn (null );
817813
818814 Mockito .when (updateNetworkACLItemCmdMock .isDisplay ()).thenReturn (false );
815+ Mockito .when (networkAclItemVoMock .getProtocol ()).thenReturn ("" );
819816
820817 networkAclServiceImpl .transferDataToNetworkAclRulePojo (updateNetworkACLItemCmdMock , networkAclItemVoMock , networkAclMock );
821818
@@ -824,8 +821,7 @@ public void transferDataToNetworkAclRulePojoTestNotPartialUpgradeAllValuesNull()
824821 Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setSourcePortEnd (nullable (Integer .class ));
825822 Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setSourceCidrList (nullable (List .class ));
826823 Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setProtocol (nullable (String .class ));
827- Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setIcmpCode (nullable (Integer .class ));
828- Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setIcmpType (nullable (Integer .class ));
824+ Mockito .verify (networkAclServiceImpl ).updateIcmpCodeAndType (Mockito .any (Boolean .class ), Mockito .any (), Mockito .any ());
829825 Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setAction (nullable (Action .class ));
830826 Mockito .verify (networkAclItemVoMock , Mockito .times (1 )).setTrafficType (nullable (TrafficType .class ));
831827 Mockito .verify (networkAclItemVoMock , Mockito .times (0 )).setUuid (nullable (String .class ));
@@ -845,14 +841,13 @@ public void transferDataToNetworkAclRulePojoTestAllValuesWithUpdateData() {
845841 Mockito .when (updateNetworkACLItemCmdMock .getSourceCidrList ()).thenReturn (cidrsList );
846842
847843 Mockito .when (updateNetworkACLItemCmdMock .getProtocol ()).thenReturn ("all" );
848- Mockito .when (updateNetworkACLItemCmdMock .getIcmpCode ()).thenReturn (5 );
849- Mockito .when (updateNetworkACLItemCmdMock .getIcmpType ()).thenReturn (6 );
850844 Mockito .when (updateNetworkACLItemCmdMock .getAction ()).thenReturn ("deny" );
851845 Mockito .when (updateNetworkACLItemCmdMock .getTrafficType ()).thenReturn (TrafficType .Egress );
852846 Mockito .when (updateNetworkACLItemCmdMock .getCustomId ()).thenReturn ("customUuid" );
853847 Mockito .when (updateNetworkACLItemCmdMock .getReason ()).thenReturn ("reason" );
854848
855849 Mockito .when (updateNetworkACLItemCmdMock .isDisplay ()).thenReturn (true );
850+ Mockito .when (networkAclItemVoMock .getProtocol ()).thenReturn ("" );
856851
857852 networkAclServiceImpl .transferDataToNetworkAclRulePojo (updateNetworkACLItemCmdMock , networkAclItemVoMock , networkAclMock );
858853
@@ -861,8 +856,7 @@ public void transferDataToNetworkAclRulePojoTestAllValuesWithUpdateData() {
861856 Mockito .verify (networkAclItemVoMock ).setSourcePortEnd (24 );
862857 Mockito .verify (networkAclItemVoMock ).setSourceCidrList (cidrsList );
863858 Mockito .verify (networkAclItemVoMock ).setProtocol ("all" );
864- Mockito .verify (networkAclItemVoMock ).setIcmpCode (5 );
865- Mockito .verify (networkAclItemVoMock ).setIcmpType (6 );
859+ Mockito .verify (networkAclServiceImpl ).updateIcmpCodeAndType (Mockito .any (Boolean .class ), Mockito .any (), Mockito .any ());
866860 Mockito .verify (networkAclItemVoMock ).setAction (Action .Deny );
867861 Mockito .verify (networkAclItemVoMock ).setTrafficType (TrafficType .Egress );
868862 Mockito .verify (networkAclItemVoMock ).setUuid ("customUuid" );
@@ -871,6 +865,86 @@ public void transferDataToNetworkAclRulePojoTestAllValuesWithUpdateData() {
871865 Mockito .verify (networkAclServiceImpl ).validateAndCreateNetworkAclRuleAction ("deny" );
872866 }
873867
868+ private void setUpdateICMPCodeAndTypeTest (String protocol , Integer icmpCode , Integer icmpType ) {
869+ Mockito .when (networkAclItemVoMock .getProtocol ()).thenReturn (protocol );
870+ Mockito .when (updateNetworkACLItemCmdMock .getIcmpCode ()).thenReturn (icmpCode );
871+ Mockito .when (updateNetworkACLItemCmdMock .getIcmpType ()).thenReturn (icmpType );
872+ }
873+
874+ @ Test
875+ public void updateICMPCodeAndTypeTestIsPartialUpgradeIsICMPNotNullCodeAndType () {
876+ setUpdateICMPCodeAndTypeTest (NetUtils .ICMP_PROTO , 5 , 5 );
877+ networkAclServiceImpl .updateIcmpCodeAndType (true , updateNetworkACLItemCmdMock , networkAclItemVoMock );
878+
879+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (5 );
880+ Mockito .verify (networkAclItemVoMock ).setIcmpType (5 );
881+ }
882+
883+ @ Test
884+ public void updateICMPCodeAndTypeTestIsPartialUpgradeIsICMPNullCodeAndType () {
885+ setUpdateICMPCodeAndTypeTest (NetUtils .ICMP_PROTO , null , null );
886+ networkAclServiceImpl .updateIcmpCodeAndType (true , updateNetworkACLItemCmdMock , networkAclItemVoMock );
887+
888+ Mockito .verify (networkAclItemVoMock , Mockito .never ()).setIcmpCode (nullable (Integer .class ));
889+ Mockito .verify (networkAclItemVoMock , Mockito .never ()).setIcmpType (nullable (Integer .class ));
890+ }
891+
892+ @ Test
893+ public void updateICMPCodeAndTypeTestIsPartialUpgradeNotICMPNotNullCodeAndType () {
894+ setUpdateICMPCodeAndTypeTest ("" , 5 , 5 );
895+ networkAclServiceImpl .updateIcmpCodeAndType (true , updateNetworkACLItemCmdMock , networkAclItemVoMock );
896+
897+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (5 );
898+ Mockito .verify (networkAclItemVoMock ).setIcmpType (5 );
899+ }
900+
901+ @ Test
902+ public void updateICMPCodeAndTypeTestIsPartialUpgradeNotICMPNullCodeAndType () {
903+ setUpdateICMPCodeAndTypeTest ("" , null , null );
904+ networkAclServiceImpl .updateIcmpCodeAndType (true , updateNetworkACLItemCmdMock , networkAclItemVoMock );
905+
906+ Mockito .verify (networkAclItemVoMock , Mockito .never ()).setIcmpCode (Mockito .any ());
907+ Mockito .verify (networkAclItemVoMock , Mockito .never ()).setIcmpType (Mockito .any ());
908+ }
909+
910+ @ Test
911+ public void updateICMPCodeAndTypeTestNotPartialUpgradeIsICMPNotNullCodeAndType () {
912+ setUpdateICMPCodeAndTypeTest (NetUtils .ICMP_PROTO , 5 , 5 );
913+ networkAclServiceImpl .updateIcmpCodeAndType (false , updateNetworkACLItemCmdMock , networkAclItemVoMock );
914+
915+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (5 );
916+ Mockito .verify (networkAclItemVoMock ).setIcmpType (5 );
917+ }
918+
919+ @ Test
920+ public void updateICMPCodeAndTypeTestNotPartialUpgradeIsICMPNullCodeAndType () {
921+ setUpdateICMPCodeAndTypeTest (NetUtils .ICMP_PROTO , null , null );
922+ networkAclServiceImpl .updateIcmpCodeAndType (false , updateNetworkACLItemCmdMock , networkAclItemVoMock );
923+
924+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (-1 );
925+ Mockito .verify (networkAclItemVoMock ).setIcmpType (-1 );
926+ }
927+
928+ @ Test
929+ public void updateICMPCodeAndTypeTestNotPartialUpgradeNotICMPNotNullCodeAndType () {
930+ setUpdateICMPCodeAndTypeTest ("" , 5 , 5 );
931+
932+ networkAclServiceImpl .updateIcmpCodeAndType (false , updateNetworkACLItemCmdMock , networkAclItemVoMock );
933+
934+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (null );
935+ Mockito .verify (networkAclItemVoMock ).setIcmpType (null );
936+ }
937+
938+ @ Test
939+ public void updateICMPCodeAndTypeTestNotPartialUpgradeNotICMPNullCodeAndType () {
940+ setUpdateICMPCodeAndTypeTest ("" , null , null );
941+
942+ networkAclServiceImpl .updateIcmpCodeAndType (false , updateNetworkACLItemCmdMock , networkAclItemVoMock );
943+
944+ Mockito .verify (networkAclItemVoMock ).setIcmpCode (null );
945+ Mockito .verify (networkAclItemVoMock ).setIcmpType (null );
946+ }
947+
874948 @ Test
875949 public void updateNetworkACLTestParametersNotNull () {
876950 String name = "name" ;
0 commit comments