Tal Nisan has uploaded a new change for review.

Change subject: core: Added tests for validation on managed custom mount option
......................................................................

core: Added tests for validation on managed custom mount option

Change-Id: I678e116b8a534b69f87be59f9be8813b08cb6910
Bug-Url: https://bugzilla.redhat.com/1129597
Signed-off-by: Tal Nisan <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java
3 files changed, 92 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/32490/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java
index 244638b..f7fb778 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java
@@ -113,7 +113,7 @@
     private static final List<String> NFS_MANAGED_OPTIONS = 
Arrays.asList("timeo", "retrans", "vfs_type", "protocol_version", "nfsvers", 
"vers", "minorversion", "addr", "clientaddr");
     private static final List<String> POSIX_MANAGED_OPTIONS = 
Arrays.asList("vfs_type", "addr", "clientaddr");
 
-    private ValidationResult validateMountOptions() {
+    protected ValidationResult validateMountOptions() {
         String mountOptions = getConnection().getMountOptions();
         if (StringUtils.isBlank(mountOptions)) {
             return ValidationResult.VALID;
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java
new file mode 100644
index 0000000..6d99853
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java
@@ -0,0 +1,64 @@
+package org.ovirt.engine.core.bll.storage;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ovirt.engine.core.bll.ValidationResult;
+import 
org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
+import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static 
org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith;
+
+public class ConnectStorageToVdsCommandTest {
+
+    private ConnectStorageToVdsCommand command;
+    private StorageServerConnectionParametersBase params;
+
+    @Before
+    public void prepareCommand() {
+        params = new StorageServerConnectionParametersBase();
+        command = new ConnectStorageToVdsCommand(params);
+    }
+
+    private StorageServerConnections createConnection(StorageType storageType, 
String mountOptions) {
+        StorageServerConnections conn = new StorageServerConnections();
+        conn.setstorage_type(storageType);
+        conn.setMountOptions(mountOptions);
+        return conn;
+    }
+
+    @Test
+    public void testNfsConnectionWithInvalidMountOptions() {
+        testConnectionMountOptionsValidations(StorageType.NFS, "timeo=30, 
nfsvers=4", false);
+    }
+
+    @Test
+    public void testPosixConnectionWithInvalidMountOptions() {
+        testConnectionMountOptionsValidations(StorageType.POSIXFS, "timeo=30, 
vfs_type=nfs", false);
+    }
+
+    @Test
+    public void testPosixConnectionWithValidMountOptions() {
+        testConnectionMountOptionsValidations(StorageType.POSIXFS, "timeo=30, 
validoption=666", true);
+    }
+
+    @Test
+    public void testNfsConnectionWithValidMountOptions() {
+        testConnectionMountOptionsValidations(StorageType.NFS, 
"validoption=30, anothervalidoption=666", true);
+    }
+
+    private void testConnectionMountOptionsValidations(StorageType 
storageType, String mountOptions, boolean shouldSucceed) {
+        StorageServerConnections newPosixConnection = 
createConnection(storageType, mountOptions);
+        params.setStorageServerConnection(newPosixConnection);
+        ValidationResult result = command.validateMountOptions();
+        if (shouldSucceed) {
+            assertTrue(result.isValid());
+        }
+        else {
+            assertThat(result, 
failsWith(VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY));
+        }
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java
index 9db6865..5feef4c 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java
@@ -2,12 +2,16 @@
 
 import org.junit.Test;
 import org.ovirt.engine.core.bll.CanDoActionTestUtils;
+import org.ovirt.engine.core.bll.ValidationResult;
 import 
org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase;
 import org.ovirt.engine.core.common.businessentities.NfsVersion;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
 
 public abstract class StorageServerConnectionTestCommon {
 
@@ -118,6 +122,29 @@
                 VdcBllMessages.VALIDATION_STORAGE_CONNECTION_EMPTY_VFSTYPE);
     }
 
+    @Test
+    public void testConnectionWithInvalidMountOptionsFails() {
+        StorageServerConnections newPosixConnection =
+                
createPosixConnection("multipass.my.domain.tlv.company.com:/export/allstorage/data1",
+                        StorageType.NFS, "nfs", "timeo=30");
+        parameters.setStorageServerConnection(newPosixConnection);
+        parameters.setVdsId(Guid.Empty);
+        doReturn(new 
ValidationResult(VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY)).when(getCommand()).validateMountOptions();
+        CanDoActionTestUtils.runAndAssertCanDoActionFailure(getCommand(), 
VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY);
+    }
+
+    @Test
+    public void testConnectionWithValidMountOptionsSucceeds() {
+        StorageServerConnections newPosixConnection =
+                
createPosixConnection("multipass.my.domain.tlv.company.com:/export/allstorage/data1",
+                        StorageType.NFS, "nfs", "timeo=30");
+        parameters.setStorageServerConnection(newPosixConnection);
+        parameters.setVdsId(Guid.Empty);
+        
doReturn(ValidationResult.VALID).when(getCommand()).validateMountOptions();
+        
when(getCommand().getStorageConnDao().get(newPosixConnection.getid())).thenReturn(newPosixConnection);
+        CanDoActionTestUtils.runAndAssertCanDoActionSuccess(getCommand());
+    }
+
     protected abstract ConnectStorageToVdsCommand getCommand();
     protected abstract boolean createConnectionWithId();
 }


-- 
To view, visit http://gerrit.ovirt.org/32490
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to