package org.codehaus.mojo.jaxb2.shared.arguments; import org.junit.Assert; import org.junit.Test; /** * @author <a href="mailto:lj@jguru.se">Lennart Jörelid</a> */ public class ArgumentBuilderTest { @Test(expected = IllegalArgumentException.class) public void validateExceptionOnAddingAllWhitespaceFlag() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act & Assert unitUnderTest.withFlag(true, " "); } @Test(expected = IllegalArgumentException.class) public void validateExceptionOnAddingFlagContainingWhitespace() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act & Assert unitUnderTest.withFlag(true, "foo bar"); } @Test(expected = NullPointerException.class) public void validateExceptionOnAddingNullFlag() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act & Assert unitUnderTest.withFlag(true, null); } @Test(expected = NullPointerException.class) public void validateExceptionOnAddingNullNamedArgument() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act & Assert unitUnderTest.withNamedArgument(null, "irrelevant"); } @Test public void validateArgumentOrder() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act final String[] result = unitUnderTest .withFlag(true, "flag1") .withFlag(true, "-flag2") .build(); // Assert Assert.assertEquals(2, result.length); Assert.assertEquals("-flag1", result[0]); Assert.assertEquals("-flag2", result[1]); } @Test public void validateMixedArguments() { // Assemble final ArgumentBuilder unitUnderTest = new ArgumentBuilder(); // Act final String[] result = unitUnderTest .withNamedArgument(true, "name1", "value1") .withFlag(true, "flag2") .withNamedArgument(false, "name3", "value3") .withFlag(false, "flag4") .build(); // Assert Assert.assertEquals(3, result.length); Assert.assertEquals("-name1", result[0]); Assert.assertEquals("value1", result[1]); Assert.assertEquals("-flag2", result[2]); } }