1+ package org .apache .cloudstack .backup .dao ;
2+
3+ import java .util .HashMap ;
4+ import java .util .Map ;
5+
6+ import org .apache .cloudstack .api .response .BackupResponse ;
7+ import org .apache .cloudstack .backup .Backup ;
8+ import org .apache .cloudstack .backup .BackupOfferingVO ;
9+ import org .apache .cloudstack .backup .BackupVO ;
10+ import org .junit .Assert ;
11+ import org .junit .Test ;
12+ import org .junit .runner .RunWith ;
13+ import org .mockito .InjectMocks ;
14+ import org .mockito .Mock ;
15+ import org .mockito .Mockito ;
16+ import org .mockito .Spy ;
17+ import org .mockito .junit .MockitoJUnitRunner ;
18+ import org .springframework .test .util .ReflectionTestUtils ;
19+
20+ import com .cloud .dc .DataCenter ;
21+ import com .cloud .dc .DataCenterVO ;
22+ import com .cloud .dc .dao .DataCenterDao ;
23+ import com .cloud .domain .DomainVO ;
24+ import com .cloud .domain .dao .DomainDao ;
25+ import com .cloud .hypervisor .Hypervisor ;
26+ import com .cloud .user .AccountVO ;
27+ import com .cloud .user .dao .AccountDao ;
28+ import com .cloud .utils .db .SearchBuilder ;
29+ import com .cloud .vm .VMInstanceVO ;
30+ import com .cloud .vm .VirtualMachine ;
31+ import com .cloud .vm .dao .VMInstanceDao ;
32+
33+ @ RunWith (MockitoJUnitRunner .class )
34+ public class BackupDaoImplTest {
35+ @ Spy
36+ @ InjectMocks
37+ private BackupDaoImpl backupDao ;
38+
39+ @ Mock
40+ BackupDetailsDao backupDetailsDao ;
41+
42+ @ Mock
43+ SearchBuilder <BackupVO > backupSearch ;
44+
45+ @ Mock
46+ VMInstanceDao vmInstanceDao ;
47+
48+ @ Mock
49+ AccountDao accountDao ;
50+
51+ @ Mock
52+ DomainDao domainDao ;
53+
54+ @ Mock
55+ DataCenterDao dataCenterDao ;
56+
57+ @ Mock
58+ BackupOfferingDao backupOfferingDao ;
59+
60+ @ Test
61+ public void testLoadDetails () {
62+ Long backupId = 1L ;
63+ BackupVO backup = new BackupVO ();
64+ ReflectionTestUtils .setField (backup , "id" , backupId );
65+ Map <String , String > details = new HashMap <>();
66+ details .put ("key1" , "value1" );
67+ details .put ("key2" , "value2" );
68+
69+ Mockito .when (backupDetailsDao .listDetailsKeyPairs (backupId )).thenReturn (details );
70+
71+ backupDao .loadDetails (backup );
72+
73+ Assert .assertEquals (details , backup .getDetails ());
74+ Mockito .verify (backupDetailsDao ).listDetailsKeyPairs (backupId );
75+ }
76+
77+ @ Test
78+ public void testSaveDetails () {
79+ Long backupId = 1L ;
80+ BackupVO backup = new BackupVO ();
81+ ReflectionTestUtils .setField (backup , "id" , backupId );
82+ Map <String , String > details = new HashMap <>();
83+ details .put ("key1" , "value1" );
84+ details .put ("key2" , "value2" );
85+ backup .setDetails (details );
86+
87+ backupDao .saveDetails (backup );
88+
89+ Mockito .verify (backupDetailsDao ).saveDetails (Mockito .anyList ());
90+ }
91+
92+ @ Test
93+ public void testNewBackupResponse () {
94+ Long vmId = 1L ;
95+ Long accountId = 2L ;
96+ Long domainId = 3L ;
97+ Long zoneId = 4L ;
98+ Long offeringId = 5L ;
99+ Long backupId = 6L ;
100+ BackupVO backup = new BackupVO ();
101+ ReflectionTestUtils .setField (backup , "id" , backupId );
102+ ReflectionTestUtils .setField (backup , "uuid" , "backup-uuid" );
103+ backup .setVmId (vmId );
104+ backup .setAccountId (accountId );
105+ backup .setDomainId (domainId );
106+ backup .setZoneId (zoneId );
107+ backup .setBackupOfferingId (offeringId );
108+ backup .setType ("Full" );
109+ backup .setBackupIntervalType ((short ) Backup .Type .MANUAL .ordinal ());
110+
111+ VMInstanceVO vm = new VMInstanceVO (vmId , 0L , "test-vm" , "test-vm" , VirtualMachine .Type .User ,
112+ 0L , Hypervisor .HypervisorType .Simulator , 0L , domainId , accountId , 0L , false );
113+ vm .setDataCenterId (zoneId );
114+
115+ AccountVO account = new AccountVO ();
116+ account .setUuid ("account-uuid" );
117+ account .setAccountName ("test-account" );
118+
119+ DomainVO domain = new DomainVO ();
120+ domain .setUuid ("domain-uuid" );
121+ domain .setName ("test-domain" );
122+
123+ DataCenterVO zone = new DataCenterVO (1L , "test-zone" , null , null , null , null , null , null , null , null , DataCenter .NetworkType .Advanced , null , null );
124+ zone .setUuid ("zone-uuid" );
125+
126+ BackupOfferingVO offering = Mockito .mock (BackupOfferingVO .class );
127+ Mockito .when (offering .getUuid ()).thenReturn ("offering-uuid" );
128+ Mockito .when (offering .getName ()).thenReturn ("test-offering" );
129+
130+ Mockito .when (vmInstanceDao .findByIdIncludingRemoved (vmId )).thenReturn (vm );
131+ Mockito .when (accountDao .findByIdIncludingRemoved (accountId )).thenReturn (account );
132+ Mockito .when (domainDao .findByIdIncludingRemoved (domainId )).thenReturn (domain );
133+ Mockito .when (dataCenterDao .findByIdIncludingRemoved (zoneId )).thenReturn (zone );
134+ Mockito .when (backupOfferingDao .findByIdIncludingRemoved (offeringId )).thenReturn (offering );
135+
136+ BackupResponse response = backupDao .newBackupResponse (backup , false );
137+
138+ Assert .assertEquals ("backup-uuid" , response .getId ());
139+ Assert .assertEquals ("test-vm" , response .getVmName ());
140+ Assert .assertEquals ("account-uuid" , response .getAccountId ());
141+ Assert .assertEquals ("test-account" , response .getAccount ());
142+ Assert .assertEquals ("domain-uuid" , response .getDomainId ());
143+ Assert .assertEquals ("test-domain" , response .getDomain ());
144+ Assert .assertEquals ("zone-uuid" , response .getZoneId ());
145+ Assert .assertEquals ("test-zone" , response .getZone ());
146+ Assert .assertEquals ("offering-uuid" , response .getBackupOfferingId ());
147+ Assert .assertEquals ("test-offering" , response .getBackupOffering ());
148+ Assert .assertEquals ("MANUAL" , response .getIntervalType ());
149+ }
150+ }
0 commit comments