package org.robotframework.swing.arguments; import jdave.Specification; import jdave.junit4.JDaveRunner; import org.jmock.Expectations; import org.junit.runner.RunWith; @RunWith(JDaveRunner.class) public class ArgumentParserSpec extends Specification<ArgumentParser<String>> { public class WhenParsingArguments { private ArgumentHandler<String> handler; public ArgumentParser<String> create() { handler = mock(ArgumentHandler.class); ArgumentParser<String> argumentParser = new ArgumentParser<String>(handler); return argumentParser; } public void returnsIndexArgumentFromArgumentHandlerIfArgumentConvertibleToInt() { String argConvertibleToInt = "1"; final String retValForIntArgument = "returnValueForIntArgument"; checking(new Expectations() {{ one(handler).indexArgument(1); will(returnValue(retValForIntArgument)); }}); specify(context.parseArgument(argConvertibleToInt), does.equal(retValForIntArgument)); } public void returnsStringArgumentFromArgumentHandlerIfArgumentNotConvertibleToInt() { final String argNotConvertibleToInt = "notConvertibleToInt"; final String retValForStringArgument = "returnValueForStringArgument"; checking(new Expectations() {{ one(handler).nameArgument(with(equal(argNotConvertibleToInt))); will(returnValue(retValForStringArgument)); }}); specify(context.parseArgument(argNotConvertibleToInt), does.equal(retValForStringArgument)); } } }