public static TokenMatcher to(String... tokens) { return new UptoTokenMatcher(tokens); }
@Test(expected = IllegalArgumentException.class) public void shouldNotAcceptNull() { new UptoTokenMatcher(null); }
@Test(expected = IllegalArgumentException.class) public void shouldNotAcceptEmpty() { new UptoTokenMatcher(new String[] {}); }
@Test public void shouldNotMatch() { Token t1 = new Token("a", 1, 1); Token t2 = new Token("b", 2, 1); TokenQueue tokenQueue = spy(new TokenQueue(Arrays.asList(t1, t2))); List<Token> output = mock(List.class); UptoTokenMatcher matcher = new UptoTokenMatcher(new String[] { ";" }); assertThat(matcher.matchToken(tokenQueue, output), is(false)); verify(tokenQueue, times(2)).poll(); verify(tokenQueue, times(2)).peek(); verifyNoMoreInteractions(tokenQueue); verify(output).add(t1); verify(output).add(t2); verifyNoMoreInteractions(output); }
@Test public void shouldMatch() { Token t1 = new Token("a", 1, 1); Token t2 = new Token(";", 2, 1); // should stop on this token Token t3 = new Token(";", 3, 1); TokenQueue tokenQueue = spy(new TokenQueue(Arrays.asList(t1, t2, t3))); List<Token> output = mock(List.class); UptoTokenMatcher matcher = new UptoTokenMatcher(new String[] { ";" }); assertThat(matcher.matchToken(tokenQueue, output), is(true)); verify(tokenQueue, times(2)).poll(); verify(tokenQueue).peek(); verifyNoMoreInteractions(tokenQueue); verify(output).add(t1); verify(output).add(t2); verifyNoMoreInteractions(output); }
@Test public void shouldMatchAnyOfProvidedTokens() { Token t1 = new Token("a", 1, 1); Token t2 = new Token("{", 2, 1); Token t3 = new Token("b", 3, 1); Token t4 = new Token("}", 4, 1); TokenQueue tokenQueue = spy(new TokenQueue(Arrays.asList(t1, t2, t3, t4))); List<Token> output = mock(List.class); UptoTokenMatcher matcher = new UptoTokenMatcher(new String[] { "{", "}" }); assertThat(matcher.matchToken(tokenQueue, output), is(true)); assertThat(matcher.matchToken(tokenQueue, output), is(true)); verify(tokenQueue, times(4)).poll(); verify(tokenQueue, times(2)).peek(); verifyNoMoreInteractions(tokenQueue); verify(output).add(t1); verify(output).add(t2); verify(output).add(t3); verify(output).add(t4); verifyNoMoreInteractions(output); }
public static TokenMatcher to(String... tokens) { return new UptoTokenMatcher(tokens); }