2323import org .apache .cloudstack .api .ServerApiException ;
2424import org .apache .cloudstack .api .command .user .network .CreateNetworkACLCmd ;
2525import org .apache .cloudstack .api .command .user .network .UpdateNetworkACLItemCmd ;
26+ import org .apache .cloudstack .api .command .user .network .UpdateNetworkACLListCmd ;
2627import org .apache .cloudstack .context .CallContext ;
2728import org .junit .Assert ;
2829import org .junit .Before ;
4647import com .cloud .network .dao .NetworkVO ;
4748import com .cloud .network .vpc .NetworkACLItem .Action ;
4849import com .cloud .network .vpc .NetworkACLItem .TrafficType ;
50+ import com .cloud .network .vpc .dao .NetworkACLDao ;
4951import com .cloud .user .Account ;
5052import com .cloud .user .AccountManager ;
5153import com .cloud .utils .db .EntityManager ;
5254import com .cloud .utils .exception .CloudRuntimeException ;
5355
5456@ RunWith (PowerMockRunner .class )
57+ @ PrepareForTest (CallContext .class )
5558public class NetworkACLServiceImplTest {
5659
5760 @ Spy
@@ -64,9 +67,11 @@ public class NetworkACLServiceImplTest {
6467 @ Mock
6568 private NetworkACLItemDao networkAclItemDaoMock ;
6669 @ Mock
67- private EntityManager EntityManagerMock ;
70+ private EntityManager entityManagerMock ;
6871 @ Mock
69- private AccountManager AccountManager ;
72+ private AccountManager accountManagerMock ;
73+ @ Mock
74+ private NetworkACLDao networkAclDaoMock ;
7075
7176 @ Mock
7277 private CreateNetworkACLCmd createNetworkAclCmdMock ;
@@ -78,13 +83,22 @@ public class NetworkACLServiceImplTest {
7883 private NetworkACL networkAclMock ;
7984 @ Mock
8085 private NetworkACLItemVO networkAclItemVoMock ;
86+ @ Mock
87+ private NetworkACLVO networkACLVOMock ;
88+ @ Mock
89+ private UpdateNetworkACLListCmd updateNetworkACLListCmdMock ;
8190
8291 private Long networkAclMockId = 1L ;
8392 private Long networkOfferingMockId = 2L ;
8493 private Long networkMockVpcMockId = 3L ;
94+ private long networkAclListId = 1l ;
8595
8696 @ Before
8797 public void befoteTest () {
98+ PowerMockito .mockStatic (CallContext .class );
99+ PowerMockito .when (CallContext .current ()).thenReturn (Mockito .mock (CallContext .class ));
100+
101+ Mockito .when (networkAclDaoMock .findById (networkAclListId )).thenReturn (networkACLVOMock );
88102 Mockito .when (createNetworkAclCmdMock .getNetworkId ()).thenReturn (1L );
89103 Mockito .when (createNetworkAclCmdMock .getProtocol ()).thenReturn ("tcp" );
90104
@@ -215,15 +229,15 @@ public void createAclListForNetworkAndReturnAclListIdTestServicesNotSupportedByN
215229 @ Test (expected = InvalidParameterValueException .class )
216230 public void createAclListForNetworkAndReturnAclListIdTestServicesSupportedByNetworkOfferingButVpcNotFound () {
217231 Mockito .doReturn (true ).when (networkModelMock ).areServicesSupportedByNetworkOffering (networkOfferingMockId , Network .Service .NetworkACL );
218- Mockito .doReturn (null ).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
232+ Mockito .doReturn (null ).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
219233
220234 networkAclServiceImpl .createAclListForNetworkAndReturnAclListId (createNetworkAclCmdMock , networkMock );
221235 }
222236
223237 @ Test (expected = CloudRuntimeException .class )
224238 public void createAclListForNetworkAndReturnAclListIdTestCreateNetworkAclReturnsNull () {
225239 Mockito .doReturn (true ).when (networkModelMock ).areServicesSupportedByNetworkOffering (networkOfferingMockId , Network .Service .NetworkACL );
226- Mockito .doReturn (Mockito .mock (Vpc .class )).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
240+ Mockito .doReturn (Mockito .mock (Vpc .class )).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
227241 Mockito .doReturn (null ).when (networkAclManager ).createNetworkACL (Mockito .anyString (), Mockito .anyString (), Mockito .anyLong (), Mockito .anyBoolean ());
228242
229243 networkAclServiceImpl .createAclListForNetworkAndReturnAclListId (createNetworkAclCmdMock , networkMock );
@@ -232,7 +246,7 @@ public void createAclListForNetworkAndReturnAclListIdTestCreateNetworkAclReturns
232246 @ Test (expected = CloudRuntimeException .class )
233247 public void createAclListForNetworkAndReturnAclListIdTestAclNetworkIsCreatedButNotApplied () throws ResourceUnavailableException {
234248 Mockito .doReturn (true ).when (networkModelMock ).areServicesSupportedByNetworkOffering (networkOfferingMockId , Network .Service .NetworkACL );
235- Mockito .doReturn (Mockito .mock (Vpc .class )).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
249+ Mockito .doReturn (Mockito .mock (Vpc .class )).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
236250 Mockito .doReturn (Mockito .mock (NetworkACL .class )).when (networkAclManager ).createNetworkACL (Mockito .anyString (), Mockito .anyString (), Mockito .anyLong (), Mockito .anyBoolean ());
237251 Mockito .doReturn (false ).when (networkAclManager ).replaceNetworkACL (Mockito .any (NetworkACL .class ), Mockito .any (NetworkVO .class ));
238252
@@ -246,7 +260,7 @@ public void createAclListForNetworkAndReturnAclListIdTestAclNetworkIsCreatedButN
246260 @ Test (expected = CloudRuntimeException .class )
247261 public void createAclListForNetworkAndReturnAclListIdTestAclNetworkIsCreatedButNotAppliedWithException () throws ResourceUnavailableException {
248262 Mockito .doReturn (true ).when (networkModelMock ).areServicesSupportedByNetworkOffering (networkOfferingMockId , Network .Service .NetworkACL );
249- Mockito .doReturn (Mockito .mock (Vpc .class )).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
263+ Mockito .doReturn (Mockito .mock (Vpc .class )).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
250264 Mockito .doReturn (Mockito .mock (NetworkACL .class )).when (networkAclManager ).createNetworkACL (Mockito .anyString (), Mockito .anyString (), Mockito .anyLong (), Mockito .anyBoolean ());
251265
252266 Mockito .doThrow (ResourceUnavailableException .class ).when (networkAclManager ).replaceNetworkACL (Mockito .any (NetworkACL .class ), Mockito .any (NetworkVO .class ));
@@ -261,7 +275,7 @@ public void createAclListForNetworkAndReturnAclListIdTestAclNetworkIsCreatedButN
261275 @ Test
262276 public void createAclListForNetworkAndReturnAclListIdTestAclIsCreatedAndAppliedWithSuccess () throws ResourceUnavailableException {
263277 Mockito .doReturn (true ).when (networkModelMock ).areServicesSupportedByNetworkOffering (networkOfferingMockId , Network .Service .NetworkACL );
264- Mockito .doReturn (Mockito .mock (Vpc .class )).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
278+ Mockito .doReturn (Mockito .mock (Vpc .class )).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
265279
266280 NetworkACL networkAclMock = Mockito .mock (NetworkACL .class );
267281 Long expectedNetworkAclId = 5L ;
@@ -339,7 +353,7 @@ public void validateNetworkAclTestAclDefaulDeny() {
339353 @ Test (expected = InvalidParameterValueException .class )
340354 public void validateNetworkAclTestAclNotDefaulWithoutVpc () {
341355 Mockito .when (networkAclMock .getId ()).thenReturn (3L );
342- Mockito .doReturn (null ).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
356+ Mockito .doReturn (null ).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
343357 ;
344358
345359 networkAclServiceImpl .validateNetworkAcl (networkAclMock );
@@ -357,13 +371,13 @@ public void validateNetworkAclTestAclNotDefaulWithVpc() {
357371 Mockito .when (networkAclMock .getId ()).thenReturn (3L );
358372 Mockito .when (networkAclMock .getVpcId ()).thenReturn (networkMockVpcMockId );
359373
360- Mockito .doReturn (Mockito .mock (Vpc .class )).when (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
361- Mockito .doNothing ().when (AccountManager ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
374+ Mockito .doReturn (Mockito .mock (Vpc .class )).when (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
375+ Mockito .doNothing ().when (accountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
362376
363377 networkAclServiceImpl .validateNetworkAcl (networkAclMock );
364378
365- Mockito .verify (EntityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
366- Mockito .verify (AccountManager ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
379+ Mockito .verify (entityManagerMock ).findById (Vpc .class , networkMockVpcMockId );
380+ Mockito .verify (accountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
367381
368382 PowerMockito .verifyStatic ();
369383 CallContext .current ();
@@ -808,4 +822,60 @@ public void transferDataToNetworkAclRulePojoTestAllValuesWithUpdateData() {
808822 Mockito .verify (networkAclServiceImpl ).validateAndCreateNetworkAclRuleAction ("deny" );
809823 }
810824
825+ @ Test
826+ @ PrepareForTest (CallContext .class )
827+ public void updateNetworkACLTestParametersNotNull () {
828+ String name = "name" ;
829+ String description = "desc" ;
830+ String customId = "customId" ;
831+
832+ Mockito .when (updateNetworkACLListCmdMock .getName ()).thenReturn (name );
833+ Mockito .when (updateNetworkACLListCmdMock .getDescription ()).thenReturn (description );
834+ Mockito .when (updateNetworkACLListCmdMock .getCustomId ()).thenReturn (customId );
835+ Mockito .when (updateNetworkACLListCmdMock .getId ()).thenReturn (networkAclListId );
836+ Mockito .when (updateNetworkACLListCmdMock .getDisplay ()).thenReturn (false );
837+
838+ networkAclServiceImpl .updateNetworkACL (updateNetworkACLListCmdMock );
839+
840+ InOrder inOrder = Mockito .inOrder (networkAclDaoMock , entityManagerMock , entityManagerMock , accountManagerMock , networkACLVOMock );
841+
842+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
843+ inOrder .verify (entityManagerMock ).findById (Mockito .eq (Vpc .class ), Mockito .anyLong ());
844+ inOrder .verify (accountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
845+
846+ inOrder .verify (networkACLVOMock ).setName (name );
847+ inOrder .verify (networkACLVOMock ).setDescription (description );
848+ inOrder .verify (networkACLVOMock ).setUuid (customId );
849+ inOrder .verify (networkACLVOMock ).setDisplay (false );
850+
851+ inOrder .verify (networkAclDaoMock ).update (networkAclListId , networkACLVOMock );
852+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
853+ }
854+
855+ @ Test
856+ @ PrepareForTest (CallContext .class )
857+ public void updateNetworkACLTestParametersWithNullValues () {
858+ Mockito .when (updateNetworkACLListCmdMock .getName ()).thenReturn (null );
859+ Mockito .when (updateNetworkACLListCmdMock .getDescription ()).thenReturn (null );
860+ Mockito .when (updateNetworkACLListCmdMock .getCustomId ()).thenReturn (null );
861+ Mockito .when (updateNetworkACLListCmdMock .getId ()).thenReturn (networkAclListId );
862+ Mockito .when (updateNetworkACLListCmdMock .getDisplay ()).thenReturn (null );
863+
864+ networkAclServiceImpl .updateNetworkACL (updateNetworkACLListCmdMock );
865+
866+ InOrder inOrder = Mockito .inOrder (networkAclDaoMock , entityManagerMock , entityManagerMock , accountManagerMock , networkACLVOMock );
867+
868+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
869+ inOrder .verify (entityManagerMock ).findById (Mockito .eq (Vpc .class ), Mockito .anyLong ());
870+ inOrder .verify (accountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
871+
872+ Mockito .verify (networkACLVOMock , Mockito .times (0 )).setName (null );
873+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setDescription (null );
874+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setUuid (null );
875+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setDisplay (false );
876+
877+ inOrder .verify (networkAclDaoMock ).update (networkAclListId , networkACLVOMock );
878+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
879+ }
880+
811881}
0 commit comments