2323import org .apache .cloudstack .api .ApiConstants ;
2424import org .apache .cloudstack .resourcedetail .VpcDetailVO ;
2525import org .apache .cloudstack .resourcedetail .dao .VpcDetailsDao ;
26+ import org .junit .Assert ;
2627import org .junit .Test ;
2728import org .junit .runner .RunWith ;
29+ import org .mockito .ArgumentCaptor ;
2830import org .mockito .InjectMocks ;
2931import org .mockito .Mock ;
3032import org .mockito .Mockito ;
3133import org .mockito .junit .MockitoJUnitRunner ;
3234
35+ import com .cloud .network .dao .NetworkDetailVO ;
36+ import com .cloud .network .dao .NetworkDetailsDao ;
37+
3338@ RunWith (MockitoJUnitRunner .class )
3439public class NetworkMigrationManagerImplTest {
3540
3641 @ Mock
3742 private VpcDetailsDao vpcDetailsDao ;
3843
44+ @ Mock
45+ private NetworkDetailsDao networkDetailsDao ;
46+
3947 @ InjectMocks
4048 private NetworkMigrationManagerImpl networkMigrationManager ;
4149
@@ -53,4 +61,20 @@ public void testCopyVpcDetailsSkipsPublicNetworkRate() {
5361 Mockito .anyString (), Mockito .anyBoolean ());
5462 Mockito .verify (vpcDetailsDao ).addDetail (dstVpcId , "someKey" , "someValue" , false );
5563 }
64+
65+ @ Test
66+ public void testCopyNetworkDetailsSkipsNetworkRate () {
67+ final long srcNetworkId = 20L ;
68+ final long dstNetworkId = 21L ;
69+ Mockito .when (networkDetailsDao .listDetails (srcNetworkId )).thenReturn (Arrays .asList (
70+ new NetworkDetailVO (srcNetworkId , ApiConstants .NETWORKRATE , "100" , true ),
71+ new NetworkDetailVO (srcNetworkId , "someKey" , "someValue" , false )));
72+
73+ networkMigrationManager .copyNetworkDetails (srcNetworkId , dstNetworkId );
74+
75+ ArgumentCaptor <NetworkDetailVO > captor = ArgumentCaptor .forClass (NetworkDetailVO .class );
76+ Mockito .verify (networkDetailsDao , Mockito .times (1 )).persist (captor .capture ());
77+ Assert .assertEquals ("someKey" , captor .getValue ().getName ());
78+ Assert .assertEquals (dstNetworkId , captor .getValue ().getResourceId ());
79+ }
5680}
0 commit comments