Martin Peřina has uploaded a new change for review.

Change subject: tools: Adds tests of argument values in engine-manage-domains
......................................................................

tools: Adds tests of argument values in engine-manage-domains

Current implementation tests only if required arguments are entered on
command line, but it doesn't test if their values has been entered.
This patch adds test, that if an argument requires value, its value
has to be also entered on command line.

Change-Id: Ie6c41e209539b14b4499f424c54584401b6312e4
Bug-Url: https://bugzilla.redhat.com/927949
Signed-off-by: Martin Perina <[email protected]>
---
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsResultEnum.java
2 files changed, 18 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/50/15050/1

diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
index 51f682c..21bde8b 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
@@ -1024,14 +1024,19 @@
                 if (actionType.equals(ActionType.add)) {
                     requireArgs(parser, Arguments.domain, Arguments.user, 
Arguments.provider);
                     requireAtLeastOneArg(parser, Arguments.passwordFile, 
Arguments.interactive);
+                    requireArgsValue(parser, Arguments.domain, Arguments.user, 
Arguments.provider,
+                            Arguments.passwordFile);
                     checkInvalidArgs(parser,
                             Arguments.forceDelete);
                 } else if (actionType.equals(ActionType.edit)) {
                     requireArgs(parser, Arguments.domain);
+                    requireArgsValue(parser, Arguments.domain, Arguments.user, 
Arguments.provider,
+                            Arguments.passwordFile);
                     checkInvalidArgs(parser,
                             Arguments.forceDelete);
                 } else if (actionType.equals(ActionType.delete)) {
                     requireArgs(parser, Arguments.domain);
+                    requireArgsValue(parser, Arguments.domain, 
Arguments.passwordFile);
                     checkInvalidArgs(parser);
                 } else if (actionType.equals(ActionType.validate)) {
                     checkInvalidArgs(parser,
@@ -1067,6 +1072,17 @@
         }
     }
 
+    /**
+     * Tests that if arguments is entered, then it has to have a value also
+     */
+    private void requireArgsValue(CLIParser parser, Arguments... args) throws 
ManageDomainsResult {
+        for (Arguments arg : args) {
+            if (parser.hasArg(arg.name()) && 
StringUtils.isEmpty(parser.getArg(arg.name()))) {
+                throw new 
ManageDomainsResult(ManageDomainsResultEnum.ARGUMENT_VALUE_REQUIRED, 
arg.name());
+            }
+        }
+    }
+
     private void requireAtLeastOneArg(CLIParser parser, Arguments... args) 
throws ManageDomainsResult {
         for (Arguments arg : args) {
             if (parser.hasArg(arg.name())) {
diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsResultEnum.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsResultEnum.java
index af5d4c9..6733fcf 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsResultEnum.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsResultEnum.java
@@ -35,7 +35,8 @@
     FAILURE_READING_PASSWORD_FILE("failed reading password from password 
file", 21),
     EMPTY_PASSWORD_FILE("password file is empty", 22),
     NO_LDAP_SERVERS_FOR_DOMAIN("No LDAP servers can be obtained for domain 
%1$s",23),
-    NO_KDC_SERVERS_FOR_DOMAIN("No KDC can be obtained for domain %1$s",24);
+    NO_KDC_SERVERS_FOR_DOMAIN("No KDC can be obtained for domain %1$s",24),
+    ARGUMENT_VALUE_REQUIRED("Value is required for argument %1$s",25);
     private String detailedMessage;
     private final int exitCode;
 


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

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

Reply via email to