EpicKnarvik97 1323513e46
All checks were successful
KnarCraft/FFmpegConvert/pipeline/head This commit looks good
Adds ability to force-select specific audio and subtitle streams for the anime converter
2022-10-09 23:53:39 +02:00

61 lines
2.0 KiB
Java

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<ConverterArgument> 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<String> tokens = Parser.tokenize("arg1 \"arg 2 long\" arg3 \"arg 4\"");
List<String> 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<String, String> 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);
}
}