package fitnesse.wikitext.parser;
import org.junit.Test;
import static org.junit.Assert.assertSame;
public class SymbolProviderTest {
@Test
public void findsMatch() {
SymbolProvider testProvider = new SymbolProvider(new SymbolType[] {SymbolType.OpenBrace});
assertMatches(testProvider, testMatch, '{');
}
@Test
public void findsNoMatch() {
SymbolProvider testProvider = new SymbolProvider(new SymbolType[] {SymbolType.OpenBrace});
assertMatches(testProvider, SymbolMatch.noMatch, '}');
}
@Test
public void findsMatchFromParent() {
SymbolProvider parentProvider = new SymbolProvider(new SymbolType[] {SymbolType.CloseBrace});
SymbolProvider testProvider = new SymbolProvider(parentProvider);
parentProvider.add(SymbolType.OpenBrace);
assertMatches(testProvider, testMatch, '{');
}
private void assertMatches(SymbolProvider testProvider, final SymbolMatch expected, char startCharacter) {
SymbolMatch result = testProvider.findMatch(startCharacter, new SymbolMatcher() {
@Override
public SymbolMatch makeMatch(Matchable candidate) {
return candidate.matchesFor(SymbolType.OpenBrace)
? testMatch
: SymbolMatch.noMatch;
}
});
assertSame(expected, result);
}
private final SymbolMatch testMatch = new SymbolMatch(SymbolType.OpenBrace, "hi", 0);
}