This is an automated email from the ASF dual-hosted git repository.

weizhou pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.19 by this push:
     new c7955471528 server: fix build error with 
BackupManagerTest.tryRestoreVMTestRestoreSucceeded
c7955471528 is described below

commit c79554715288163a9aafbd4a11876e58f549f9b5
Author: Wei Zhou <[email protected]>
AuthorDate: Mon Feb 5 13:24:04 2024 +0100

    server: fix build error with 
BackupManagerTest.tryRestoreVMTestRestoreSucceeded
    
    ```
    [ERROR] Tests run: 10, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 
2.025 s <<< FAILURE! - in org.apache.cloudstack.backup.BackupManagerTest
    [ERROR] 
tryRestoreVMTestRestoreSucceeded(org.apache.cloudstack.backup.BackupManagerTest)
  Time elapsed: 0.469 s  <<< ERROR!
    com.cloud.utils.exception.CloudRuntimeException: Unable to change state of 
volume [Mock for VolumeVO, hashCode: 220689785] to [Ready].
    ```
---
 .../cloudstack/backup/BackupManagerTest.java       | 73 +++++++++++++---------
 1 file changed, 45 insertions(+), 28 deletions(-)

diff --git 
a/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java 
b/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
index aa39b86c373..37fbf049b0a 100644
--- a/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
+++ b/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
@@ -16,6 +16,7 @@
 // under the License.
 package org.apache.cloudstack.backup;
 
+import com.cloud.event.ActionEventUtils;
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.storage.Volume;
 import com.cloud.storage.VolumeApiService;
@@ -32,8 +33,11 @@ import 
org.apache.cloudstack.api.command.admin.backup.UpdateBackupOfferingCmd;
 import org.apache.cloudstack.backup.dao.BackupOfferingDao;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.MockedStatic;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
@@ -45,6 +49,7 @@ import static org.junit.Assert.fail;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
+@RunWith(MockitoJUnitRunner.class)
 public class BackupManagerTest {
     @Spy
     @InjectMocks
@@ -75,15 +80,11 @@ public class BackupManagerTest {
         when(backupOfferingDao.findById(123l)).thenReturn(null);
 
         BackupOfferingVO offering = Mockito.spy(BackupOfferingVO.class);
-        when(offering.getId()).thenReturn(1234l);
         when(offering.getName()).thenCallRealMethod();
         when(offering.getDescription()).thenCallRealMethod();
         when(offering.isUserDrivenBackupAllowed()).thenCallRealMethod();
 
         BackupOfferingVO offeringUpdate = Mockito.spy(BackupOfferingVO.class);
-        when(offeringUpdate.getId()).thenReturn(1234l);
-        when(offeringUpdate.getName()).thenReturn("Old name");
-        when(offeringUpdate.getDescription()).thenReturn("Old description");
 
         when(backupOfferingDao.findById(1234l)).thenReturn(offering);
         
when(backupOfferingDao.createForUpdate(1234l)).thenReturn(offeringUpdate);
@@ -218,18 +219,25 @@ public class BackupManagerTest {
         VMInstanceVO vm = Mockito.mock(VMInstanceVO.class);
         BackupVO backup = Mockito.mock(BackupVO.class);
 
-        Mockito.when(volumeDao.findIncludingRemovedByInstanceAndType(1L, 
null)).thenReturn(Collections.singletonList(volumeVO));
-        Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringRequested), 
Mockito.any())).thenReturn(true);
-        Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreRequested))).thenReturn(true);
+        try (MockedStatic<ActionEventUtils> utils = 
Mockito.mockStatic(ActionEventUtils.class)) {
+            
Mockito.when(ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), 
Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.anyString(), 
Mockito.anyLong(), Mockito.anyString(),
+                    Mockito.eq(true), Mockito.eq(0))).thenReturn(1L);
+            
Mockito.when(ActionEventUtils.onCompletedActionEvent(Mockito.anyLong(), 
Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.anyString(), 
Mockito.anyString(), Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.eq(0))).thenReturn(2L);
 
+            Mockito.when(volumeDao.findIncludingRemovedByInstanceAndType(1L, 
null)).thenReturn(Collections.singletonList(volumeVO));
+            Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringRequested), 
Mockito.any())).thenReturn(true);
+            Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreRequested))).thenReturn(true);
 
+            Mockito.when(vm.getId()).thenReturn(1L);
+            Mockito.when(offering.getProvider()).thenReturn("veeam");
+            
Mockito.doReturn(backupProvider).when(backupManager).getBackupProvider("veeam");
+            Mockito.when(backupProvider.restoreVMFromBackup(vm, 
backup)).thenReturn(true);
 
-        Mockito.when(vm.getId()).thenReturn(1L);
-        Mockito.when(offering.getProvider()).thenReturn("veeam");
-        
Mockito.doReturn(backupProvider).when(backupManager).getBackupProvider("veeam");
-        Mockito.when(backupProvider.restoreVMFromBackup(vm, 
backup)).thenReturn(true);
-
-        backupManager.tryRestoreVM(backup, vm, offering, "Nothing to write 
here.");
+            backupManager.tryRestoreVM(backup, vm, offering, "Nothing to write 
here.");
+        }
     }
 
     @Test
@@ -239,21 +247,30 @@ public class BackupManagerTest {
         VMInstanceVO vm = Mockito.mock(VMInstanceVO.class);
         BackupVO backup = Mockito.mock(BackupVO.class);
 
-        Mockito.when(volumeDao.findIncludingRemovedByInstanceAndType(1L, 
null)).thenReturn(Collections.singletonList(volumeVO));
-        Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringRequested), 
Mockito.any())).thenReturn(true);
-        Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreRequested))).thenReturn(true);
-        Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringFailed), 
Mockito.any())).thenReturn(true);
-        Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreFailed))).thenReturn(true);
-
-        Mockito.when(vm.getId()).thenReturn(1L);
-        Mockito.when(offering.getProvider()).thenReturn("veeam");
-        
Mockito.doReturn(backupProvider).when(backupManager).getBackupProvider("veeam");
-        Mockito.when(backupProvider.restoreVMFromBackup(vm, 
backup)).thenReturn(false);
-        try {
-            backupManager.tryRestoreVM(backup, vm, offering, "Checking message 
error.");
-            fail("An exception is needed.");
-        } catch (CloudRuntimeException e) {
-            assertEquals("Error restoring VM from backup [Checking message 
error.].", e.getMessage());
+        try (MockedStatic<ActionEventUtils> utils = 
Mockito.mockStatic(ActionEventUtils.class)) {
+            
Mockito.when(ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), 
Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.anyString(), 
Mockito.anyLong(), Mockito.anyString(),
+                    Mockito.eq(true), Mockito.eq(0))).thenReturn(1L);
+            
Mockito.when(ActionEventUtils.onCompletedActionEvent(Mockito.anyLong(), 
Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.anyString(), 
Mockito.anyString(), Mockito.anyLong(),
+                    Mockito.anyString(), Mockito.eq(0))).thenReturn(2L);
+
+            Mockito.when(volumeDao.findIncludingRemovedByInstanceAndType(1L, 
null)).thenReturn(Collections.singletonList(volumeVO));
+            Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringRequested), 
Mockito.any())).thenReturn(true);
+            Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreRequested))).thenReturn(true);
+            Mockito.when(virtualMachineManager.stateTransitTo(Mockito.eq(vm), 
Mockito.eq(VirtualMachine.Event.RestoringFailed), 
Mockito.any())).thenReturn(true);
+            Mockito.when(volumeApiService.stateTransitTo(Mockito.eq(volumeVO), 
Mockito.eq(Volume.Event.RestoreFailed))).thenReturn(true);
+
+            Mockito.when(vm.getId()).thenReturn(1L);
+            Mockito.when(offering.getProvider()).thenReturn("veeam");
+            
Mockito.doReturn(backupProvider).when(backupManager).getBackupProvider("veeam");
+            Mockito.when(backupProvider.restoreVMFromBackup(vm, 
backup)).thenReturn(false);
+            try {
+                backupManager.tryRestoreVM(backup, vm, offering, "Checking 
message error.");
+                fail("An exception is needed.");
+            } catch (CloudRuntimeException e) {
+                assertEquals("Error restoring VM from backup [Checking message 
error.].", e.getMessage());
+            }
         }
     }
 }

Reply via email to