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 ();
@@ -771,4 +785,60 @@ public void transferDataToNetworkAclRulePojoTestAllValuesWithUpdateData() {
771785 Mockito .verify (networkAclServiceImpl ).validateAndCreateNetworkAclRuleAction ("deny" );
772786 }
773787
788+ @ Test
789+ @ PrepareForTest (CallContext .class )
790+ public void updateNetworkACLTestParametersNotNull () {
791+ String name = "name" ;
792+ String description = "desc" ;
793+ String customId = "customId" ;
794+
795+ Mockito .when (updateNetworkACLListCmdMock .getName ()).thenReturn (name );
796+ Mockito .when (updateNetworkACLListCmdMock .getDescription ()).thenReturn (description );
797+ Mockito .when (updateNetworkACLListCmdMock .getCustomId ()).thenReturn (customId );
798+ Mockito .when (updateNetworkACLListCmdMock .getId ()).thenReturn (networkAclListId );
799+ Mockito .when (updateNetworkACLListCmdMock .getDisplay ()).thenReturn (false );
800+
801+ networkAclServiceImpl .updateNetworkACL (updateNetworkACLListCmdMock );
802+
803+ InOrder inOrder = Mockito .inOrder (networkAclDaoMock , entityManagerMock , entityManagerMock , AccountManagerMock , networkACLVOMock );
804+
805+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
806+ inOrder .verify (entityManagerMock ).findById (Mockito .eq (Vpc .class ), Mockito .anyLong ());
807+ inOrder .verify (AccountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
808+
809+ inOrder .verify (networkACLVOMock ).setName (name );
810+ inOrder .verify (networkACLVOMock ).setDescription (description );
811+ inOrder .verify (networkACLVOMock ).setUuid (customId );
812+ inOrder .verify (networkACLVOMock ).setDisplay (false );
813+
814+ inOrder .verify (networkAclDaoMock ).update (networkAclListId , networkACLVOMock );
815+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
816+ }
817+
818+ @ Test
819+ @ PrepareForTest (CallContext .class )
820+ public void updateNetworkACLTestParametersWithNullValues () {
821+ Mockito .when (updateNetworkACLListCmdMock .getName ()).thenReturn (null );
822+ Mockito .when (updateNetworkACLListCmdMock .getDescription ()).thenReturn (null );
823+ Mockito .when (updateNetworkACLListCmdMock .getCustomId ()).thenReturn (null );
824+ Mockito .when (updateNetworkACLListCmdMock .getId ()).thenReturn (networkAclListId );
825+ Mockito .when (updateNetworkACLListCmdMock .getDisplay ()).thenReturn (null );
826+
827+ networkAclServiceImpl .updateNetworkACL (updateNetworkACLListCmdMock );
828+
829+ InOrder inOrder = Mockito .inOrder (networkAclDaoMock , entityManagerMock , entityManagerMock , AccountManagerMock , networkACLVOMock );
830+
831+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
832+ inOrder .verify (entityManagerMock ).findById (Mockito .eq (Vpc .class ), Mockito .anyLong ());
833+ inOrder .verify (AccountManagerMock ).checkAccess (Mockito .any (Account .class ), Mockito .isNull (AccessType .class ), Mockito .eq (true ), Mockito .any (Vpc .class ));
834+
835+ Mockito .verify (networkACLVOMock , Mockito .times (0 )).setName (null );
836+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setDescription (null );
837+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setUuid (null );
838+ inOrder .verify (networkACLVOMock , Mockito .times (0 )).setDisplay (false );
839+
840+ inOrder .verify (networkAclDaoMock ).update (networkAclListId , networkACLVOMock );
841+ inOrder .verify (networkAclDaoMock ).findById (networkAclListId );
842+ }
843+
774844}
0 commit comments