package software.amazon.event.ruler.input; import software.amazon.event.ruler.MatchType; import org.junit.Test; import static software.amazon.event.ruler.input.DefaultParser.getParser; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class ParserTest { @Test public void testParseByte() { assertEquals(new InputByte((byte) 'a'), getParser().parse((byte) 'a')); } @Test public void testParseString() { assertArrayEquals(new InputCharacter[] { new InputByte((byte) 'a'), new InputByte((byte) '*'), new InputByte((byte) 'c') }, getParser().parse(MatchType.EXACT, "a*c")); } @Test public void testOtherMatchTypes() { final int[] parserInvokedCount = { 0, 0, 0 }; DefaultParser parser = new DefaultParser( new WildcardParser() { @Override public InputCharacter[] parse(String value) { parserInvokedCount[0] +=1; return null; } }, new EqualsIgnoreCaseParser() { @Override public InputCharacter[] parse(String value) { parserInvokedCount[1] += 1; return null; } }, new SuffixParser() { @Override public InputCharacter[] parse(String value) { parserInvokedCount[2] += 1; return null; } } ); assertNull(parser.parse(MatchType.WILDCARD, "abc")); assertEquals(parserInvokedCount[0], 1); assertEquals(parserInvokedCount[1], 0); assertEquals(parserInvokedCount[2], 0); assertNull(parser.parse(MatchType.EQUALS_IGNORE_CASE, "abc")); assertEquals(parserInvokedCount[0], 1); assertEquals(parserInvokedCount[1], 1); assertEquals(parserInvokedCount[2], 0); assertNull(parser.parse(MatchType.SUFFIX, "abc")); assertEquals(parserInvokedCount[0], 1); assertEquals(parserInvokedCount[1], 1); assertEquals(parserInvokedCount[2], 1); } }