package net.knarcraft.ffmpegconverter.utility; import net.knarcraft.ffmpegconverter.parser.ConverterArgument; import net.knarcraft.ffmpegconverter.parser.ConverterArgumentValueType; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.List; import java.util.Map; import static junit.framework.TestCase.assertEquals; public class ParserTest { private List validArguments; @Before public void setUp() { validArguments = new ArrayList<>(); validArguments.add(new ConverterArgument("anargument", 'a', true, ConverterArgumentValueType.STRING)); validArguments.add(new ConverterArgument("turnoff", 't', false, ConverterArgumentValueType.BOOLEAN)); validArguments.add(new ConverterArgument("turnon", 'o', false, ConverterArgumentValueType.BOOLEAN)); } @Test public void tokenize() { List tokens = Parser.tokenize("arg1 \"arg 2 long\" arg3 \"arg 4\""); List expected = new ArrayList<>(); expected.add("arg1"); expected.add("arg 2 long"); expected.add("arg3"); expected.add("arg 4"); assertEquals(expected, tokens); } @Test public void parseValidInput() { Map parsed = Parser.parse("-t -a \"some Value\" --turnon false", validArguments); assertEquals("some Value", parsed.get("anargument")); assertEquals("true", parsed.get("turnoff")); assertEquals("false", parsed.get("turnon")); } @Test(expected = IllegalArgumentException.class) public void parseInvalidArgument() { Parser.parse("--someInvalidArgument hahaha", validArguments); } @Test(expected = IllegalArgumentException.class) public void parseValueWhenExpectingArgument() { Parser.parse("somevalue", validArguments); } @Test(expected = IllegalArgumentException.class) public void parseArgumentWithoutRequiredValue() { Parser.parse("--anargument -t", validArguments); } }