Moti Asayag has uploaded a new change for review.

Change subject: engine: Simplify HostValidator hierarchy and cover with tests
......................................................................

engine: Simplify HostValidator hierarchy and cover with tests

There isn't a good reason for UpgradeHostValidator to extend
HostValidator. It also deserves its testing.

Change-Id: I2f7e396e6523010d1deda9213de70beeaa38c074
Signed-off-by: Moti Asayag <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostInternalCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/HostValidator.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidator.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidatorTest.java
5 files changed, 138 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/40926/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostCommand.java
index e11c342..ce96f6b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostCommand.java
@@ -38,7 +38,7 @@
 
     @Override
     protected boolean canDoAction() {
-        UpgradeHostValidator validator = new 
UpgradeHostValidator(getDbFacade(), getVds());
+        UpgradeHostValidator validator = new UpgradeHostValidator(getVds());
 
         return validate(validator.hostExists())
                 && validate(validator.statusSupportedForHostUpgrade())
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostInternalCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostInternalCommand.java
index 777e049..4d509d8 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostInternalCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/UpgradeHostInternalCommand.java
@@ -52,7 +52,7 @@
 
     @Override
     protected boolean canDoAction() {
-        UpgradeHostValidator validator = new 
UpgradeHostValidator(getDbFacade(), getVds());
+        UpgradeHostValidator validator = new UpgradeHostValidator(getVds());
 
         return validate(validator.hostExists())
                 && validate(validator.statusSupportedForHostUpgradeInternal());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/HostValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/HostValidator.java
index 8ab13dc..c8d6662 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/HostValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/HostValidator.java
@@ -29,6 +29,10 @@
         this.host = host;
     }
 
+    public ValidationResult hostExists() {
+        return 
ValidationResult.failWith(VdcBllMessages.VDS_INVALID_SERVER_ID).when(getHost() 
== null);
+    }
+
     public ValidationResult nameNotEmpty() {
         return 
ValidationResult.failWith(VdcBllMessages.ACTION_TYPE_FAILED_NAME_MAY_NOT_BE_EMPTY)
                 .when(StringUtils.isEmpty(host.getName()));
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidator.java
index 117c692..5dbc881 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidator.java
@@ -10,40 +10,41 @@
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VDSType;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
-public class UpgradeHostValidator extends HostValidator {
+public class UpgradeHostValidator {
 
-    public UpgradeHostValidator(DbFacade dbFacade, VDS host) {
-        super(dbFacade, host);
+    private VDS host;
+
+    public UpgradeHostValidator(VDS host) {
+        this.host = host;
     }
 
     public ValidationResult hostExists() {
-        return 
ValidationResult.failWith(VdcBllMessages.VDS_INVALID_SERVER_ID).when(getHost() 
== null);
+        return 
ValidationResult.failWith(VdcBllMessages.VDS_INVALID_SERVER_ID).when(host == 
null);
     }
 
     public ValidationResult statusSupportedForHostUpgrade() {
         return 
ValidationResult.failWith(VdcBllMessages.VDS_CANNOT_INSTALL_STATUS_ILLEGAL)
-                .unless(VdcActionUtils.canExecute(Arrays.asList(getHost()), 
VDS.class, VdcActionType.UpgradeHost));
+                .unless(VdcActionUtils.canExecute(Arrays.asList(host), 
VDS.class, VdcActionType.UpgradeHost));
     }
 
     public ValidationResult statusSupportedForHostUpgradeInternal() {
         return 
ValidationResult.failWith(VdcBllMessages.VDS_CANNOT_INSTALL_STATUS_ILLEGAL)
-                .when(getHost().getStatus() != VDSStatus.Maintenance);
+                .when(host.getStatus() != VDSStatus.Maintenance);
     }
 
     public ValidationResult updatesAvailable() {
         return 
ValidationResult.failWith(VdcBllMessages.NO_AVAILABLE_UPDATES_FOR_HOST)
-                .unless(getHost().getVdsType() == VDSType.oVirtNode || 
getHost().isUpdateAvailable());
+                .unless(host.getVdsType() == VDSType.oVirtNode || 
host.isUpdateAvailable());
     }
 
     public ValidationResult imageProvidedForOvirtNode(String image) {
         return 
ValidationResult.failWith(VdcBllMessages.VDS_CANNOT_INSTALL_MISSING_IMAGE_FILE)
-                .when(getHost().getVdsType() == VDSType.oVirtNode && 
StringUtils.isBlank(image));
+                .when(host.getVdsType() == VDSType.oVirtNode && 
StringUtils.isBlank(image));
     }
 
     public ValidationResult hostWasInstalled() {
         return 
ValidationResult.failWith(VdcBllMessages.CANNOT_UPGRADE_HOST_WITHOUT_OS)
-                .when(getHost().getHostOs() == null);
+                .when(host.getHostOs() == null);
     }
 }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidatorTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidatorTest.java
new file mode 100644
index 0000000..17a6cc6
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/UpgradeHostValidatorTest.java
@@ -0,0 +1,121 @@
+package org.ovirt.engine.core.bll.validator;
+
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.when;
+import static 
org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith;
+import static 
org.ovirt.engine.core.bll.validator.ValidationResultMatchers.isValid;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.VDSType;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.utils.RandomUtils;
+
+@RunWith(MockitoJUnitRunner.class)
+public class UpgradeHostValidatorTest {
+
+    @Mock
+    private VDS host;
+
+    private UpgradeHostValidator validator;
+
+    @Before
+    public void setup() {
+        validator = new UpgradeHostValidator(host);
+    }
+
+    @Test
+    public void hostExists() {
+        assertThat(validator.hostExists(), isValid());
+    }
+
+    @Test
+    public void hostDoesNotExist() {
+        validator = new UpgradeHostValidator(null);
+
+        assertThat(validator.hostExists(), 
failsWith(VdcBllMessages.VDS_INVALID_SERVER_ID));
+    }
+
+    @Test
+    public void statusSupportedForHostUpgrade() {
+        when(host.getStatus()).thenReturn(VDSStatus.Maintenance);
+
+        assertThat(validator.statusSupportedForHostUpgrade(), isValid());
+    }
+
+    @Test
+    public void statusNotSupportedForHostUpgrade() {
+        VDS host = new VDS();
+        host.setStatus(VDSStatus.Unassigned);
+
+        assertThat(new 
UpgradeHostValidator(host).statusSupportedForHostUpgrade(),
+                failsWith(VdcBllMessages.VDS_CANNOT_INSTALL_STATUS_ILLEGAL));
+    }
+
+    @Test
+    public void statusSupportedForHostUpgradeInternal() {
+        when(host.getStatus()).thenReturn(VDSStatus.Maintenance);
+
+        assertThat(validator.statusSupportedForHostUpgradeInternal(), 
isValid());
+    }
+
+    @Test
+    public void statusNotSupportedForHostUpgradeInternal() {
+        when(host.getStatus()).thenReturn(VDSStatus.Unassigned);
+
+        assertThat(validator.statusSupportedForHostUpgradeInternal(),
+                failsWith(VdcBllMessages.VDS_CANNOT_INSTALL_STATUS_ILLEGAL));
+    }
+
+    @Test
+    public void updatesAvailable() {
+        when(host.isUpdateAvailable()).thenReturn(true);
+
+        assertThat(validator.updatesAvailable(), isValid());
+    }
+
+    @Test
+    public void updatesUnavailableForUpgradingOvirtNode() {
+        when(host.getVdsType()).thenReturn(VDSType.oVirtNode);
+
+        assertThat(validator.updatesAvailable(), isValid());
+    }
+
+    @Test
+    public void updatesUnavailable() {
+        assertThat(validator.updatesAvailable(), 
failsWith(VdcBllMessages.NO_AVAILABLE_UPDATES_FOR_HOST));
+    }
+
+    @Test
+    public void imageProvidedForOvirtNode() {
+        when(host.getVdsType()).thenReturn(VDSType.oVirtNode);
+        String imageName = RandomUtils.instance().nextString(20);
+
+        assertThat(validator.imageProvidedForOvirtNode(imageName), isValid());
+    }
+
+    @Test
+    public void imageNotProvidedForOvirtNode() {
+        when(host.getVdsType()).thenReturn(VDSType.oVirtNode);
+
+        assertThat(validator.imageProvidedForOvirtNode(null),
+                
failsWith(VdcBllMessages.VDS_CANNOT_INSTALL_MISSING_IMAGE_FILE));
+    }
+
+    @Test
+    public void hostWasInstalled() {
+        
when(host.getHostOs()).thenReturn(RandomUtils.instance().nextString(20));
+
+        assertThat(validator.hostWasInstalled(), isValid());
+    }
+
+    @Test
+    public void hostWasNotInstalled() {
+        assertThat(validator.hostWasInstalled(), 
failsWith(VdcBllMessages.CANNOT_UPGRADE_HOST_WITHOUT_OS));
+    }
+}


-- 
To view, visit https://gerrit.ovirt.org/40926
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2f7e396e6523010d1deda9213de70beeaa38c074
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to