Added parameters parsing exception rather than boolean

Signed-off-by: Emmanuel Bigeon <emmanuel@bigeon.fr>
This commit is contained in:
2016-12-05 19:21:11 -05:00
parent a12484a72a
commit c27872de94
4 changed files with 136 additions and 61 deletions

View File

@@ -40,45 +40,54 @@ package fr.bigeon.gclc.command;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
/**
* <p>
import fr.bigeon.gclc.exception.CommandParsingException;
/** <p>
* TODO
*
* @author Emmanuel Bigeon
*
*/
* @author Emmanuel Bigeon */
@SuppressWarnings({"static-method", "nls"})
public class CommandParametersTest {
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#CommandParameters(java.util.Set, java.util.Set, boolean)}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#CommandParameters(java.util.Set, java.util.Set, boolean)}. */
@Test
public final void testCommandParameters(){
public final void testCommandParameters() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
CommandParameters parameters = new CommandParameters(bools, strings,
true);
assertFalse(parameters.parseArgs("-ungivenFlag"));
try {
parameters.parseArgs("-ungivenFlag");
fail("parse of unknown in strict should fail");
} catch (CommandParsingException e) {
assertNotNull(e);
}
parameters = new CommandParameters(bools, strings, false);
assertTrue(parameters.parseArgs("-ungivenFlag"));
try {
parameters.parseArgs("-ungivenFlag");
} catch (CommandParsingException e) {
fail("parse of unknown in non strict should suceed");
assertNull(e);
}
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#get(java.lang.String)}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#get(java.lang.String)}. */
@Test
public final void testGet(){
public final void testGet() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
@@ -91,24 +100,35 @@ public class CommandParametersTest {
assertNull(parameters.get("ungiven"));
assertNull(parameters.get("str"));
parameters.parseArgs("-ungiven", "val");
try {
parameters.parseArgs("-ungiven", "val");
} catch (CommandParsingException e) {
assertNotNull(e);
}
assertNull(parameters.get("ungiven"));
assertNull(parameters.get("str"));
parameters.parseArgs("-str", "val");
try {
parameters.parseArgs("-str", "val");
} catch (CommandParsingException e) {
assertNull(e);
}
assertNull(parameters.get("ungiven"));
assertEquals("val", parameters.get("str"));
parameters.parseArgs("-ungiven");
try {
parameters.parseArgs("-ungiven");
} catch (CommandParsingException e) {
assertNotNull(e);
}
assertNull(parameters.get("ungiven"));
assertEquals("val", parameters.get("str"));
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#getAdditionals()}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#getAdditionals()}. */
@Test
public final void testGetAdditionals(){
public final void testGetAdditionals() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
@@ -118,27 +138,42 @@ public class CommandParametersTest {
CommandParameters parameters = new CommandParameters(bools, strings,
true);
parameters.parseArgs("-boolFlag");
try {
parameters.parseArgs("-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
assertTrue(parameters.getAdditionals().isEmpty());
parameters.parseArgs("-ungiven");
try {
parameters.parseArgs("-ungiven");
} catch (CommandParsingException e) {
assertNotNull(e);
}
assertTrue(parameters.getAdditionals().isEmpty());
parameters = new CommandParameters(bools, strings, false);
parameters.parseArgs("-boolFlag");
try {
parameters.parseArgs("-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
assertTrue(parameters.getAdditionals().isEmpty());
parameters.parseArgs("-ungiven");
try {
parameters.parseArgs("-ungiven");
} catch (CommandParsingException e) {
assertNotNull(e);
}
assertTrue(parameters.getAdditionals().contains("ungiven"));
assertEquals(1, parameters.getAdditionals().size());
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#getBool(java.lang.String)}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#getBool(java.lang.String)}. */
@Test
public final void testGetBool(){
public final void testGetBool() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
@@ -151,11 +186,20 @@ public class CommandParametersTest {
assertFalse(parameters.getBool("ungiven"));
assertFalse(parameters.getBool("boolFlag"));
parameters.parseArgs("-boolFlag");
try {
parameters.parseArgs("-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
assertTrue(parameters.getBool("boolFlag"));
assertFalse(parameters.getBool("ungiven"));
parameters.parseArgs("-ungiven");
try {
parameters.parseArgs("-ungiven");
fail("unknown parameter should fail");
} catch (CommandParsingException e) {
assertNotNull(e);
}
assertFalse(parameters.getBool("ungiven"));
assertTrue(parameters.getBool("boolFlag"));
@@ -164,20 +208,27 @@ public class CommandParametersTest {
assertFalse(parameters.getBool("ungiven"));
assertFalse(parameters.getBool("boolFlag"));
parameters.parseArgs("-boolFlag");
try {
parameters.parseArgs("-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
assertTrue(parameters.getBool("boolFlag"));
assertFalse(parameters.getBool("ungiven"));
parameters.parseArgs("-ungiven");
try {
parameters.parseArgs("-ungiven");
} catch (CommandParsingException e) {
assertNull(e);
}
assertFalse(parameters.getBool("ungiven"));
assertTrue(parameters.getBool("boolFlag"));
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#parseArgs(java.lang.String[])}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#parseArgs(java.lang.String[])}. */
@Test
public final void testParseArgs(){
public final void testParseArgs() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
@@ -187,19 +238,40 @@ public class CommandParametersTest {
CommandParameters parameters = new CommandParameters(bools, strings,
true);
assertFalse(parameters.parseArgs("-ungivenFlag"));
assertFalse(parameters.parseArgs("-str"));
assertTrue(parameters.parseArgs("-boolFlag"));
assertTrue(parameters.parseArgs("-str", "-boolFlag"));
assertTrue(parameters.parseArgs("-boolFlag", "-str", "val"));
try {
parameters.parseArgs("-ungivenFlag");
fail("unknown argument should fail in strict");
} catch (CommandParsingException e) {
assertNotNull(e);
}
try {
parameters.parseArgs("-str");
fail("missing string argument value should fail");
} catch (CommandParsingException e) {
assertNotNull(e);
}
try {
parameters.parseArgs("-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
try {
parameters.parseArgs("-str", "-boolFlag");
} catch (CommandParsingException e) {
assertNull(e);
}
try {
parameters.parseArgs("-boolFlag", "-str", "val");
} catch (CommandParsingException e) {
assertNull(e);
}
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#set(java.lang.String, boolean)}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#set(java.lang.String, boolean)}. */
@Test
public final void testSetStringBoolean(){
public final void testSetStringBoolean() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();
@@ -234,11 +306,10 @@ public class CommandParametersTest {
assertTrue(parameters.getBool("boolFlag"));
}
/**
* Test method for {@link fr.bigeon.gclc.command.CommandParameters#set(java.lang.String, java.lang.String)}.
*/
/** Test method for
* {@link fr.bigeon.gclc.command.CommandParameters#set(java.lang.String, java.lang.String)}. */
@Test
public final void testSetStringString(){
public final void testSetStringString() {
Set<String> strings = new HashSet<>();
Set<String> bools = new HashSet<>();