package br.com.caelum.iogi.parameters; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; public class ParameterTests { @Test public void ifTheParameterNameDoesntHaveDotsThenGetFirstNameComponentReturnsTheWholeName() throws Exception { final Parameter parameter = new Parameter("wholename", ""); assertEquals("wholename", parameter.getFirstNameComponent()); } @Test public void ifTheParameterNameHasTwoComponentsGetFirstNameComponentReturnsTheFirst() { final Parameter parameter = new Parameter("first.last", ""); assertEquals("first", parameter.getFirstNameComponent()); } @Test public void ifTheParameterNameHasThreeComponentsGetFirstNameComponentReturnsTheFirst() { final Parameter parameter = new Parameter("one.two.three", ""); assertEquals("one", parameter.getFirstNameComponent()); } @Test public void ifTheParameterNameDoesntHaveDotsThenStripReturnsEmptyString() { final Parameter parameter = new Parameter("wholename", ""); assertEquals("", parameter.strip().getFirstNameComponent()); } @Test public void ifTheParameterNameHasTwoComponentsSplitReturnsAParameterContainingTheRestOfTheArguments() { final Parameter parameter = new Parameter("head.tail.tail", ""); assertEquals("tail.tail", parameter.strip().getName()); } @Test(expected=IllegalArgumentException.class) public void cannotCreateAParameterWithNullName() throws Exception { new Parameter(null, "not null"); } @Test(expected=IllegalArgumentException.class) public void cannotCreateAParameterWithNullValue() throws Exception { new Parameter("not null", null); } @Test public void isDecoratedIfFirstnameComponentHasABracket() throws Exception { assertTrue(new Parameter("asdf[0].k","").isDecorated()); assertFalse(new Parameter("asdf.k","").isDecorated()); } @Test public void isDecoratedIfFirstnameComponentHasAStringBracket() throws Exception { assertTrue(new Parameter("asdf[name].k","").isDecorated()); assertFalse(new Parameter("asdf.k","").isDecorated()); } }