package token; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import file.FilePosition; import token.TokenFactory.BadCharacterException; public class TokenFactoryTester { private TokenFactory tokenFactory; private FilePosition testPosition; @Before public void setUp() throws Exception { tokenFactory = new TokenFactoryImpl(); testPosition = new FilePosition("testFile"); testPosition.setLineNumber(0); testPosition.setColumnNumber(0); } private Token createToken(String text) { return tokenFactory.createToken(text, testPosition); } @Test public void testEOFTokenCreation() { assertTrue(tokenFactory.createEOFToken(testPosition) instanceof Eof); } @Test(expected = RuntimeException.class) public void testEmptyString_ThrowsException() { String text = ""; createToken(text); } @Test public void testLeftParenthesisCreation() { String text = "("; assertTrue(createToken(text) instanceof LeftParenthesis); } @Test public void testRightParenthesisCreation() { String text = ")"; assertTrue(createToken(text) instanceof RightParenthesis); } @Test public void testQuoteMarkCreation() { String text = "'"; assertTrue(createToken(text) instanceof QuoteMark); } @Test public void testNumberCreation() { String text = "987"; assertTrue(createToken(text) instanceof Number); } @Test public void testIdentifierCreation() { String text = "identifier"; assertTrue(createToken(text) instanceof Identifier); } @Test public void testStringCreation() { String text = "\"string\""; assertTrue(createToken(text) instanceof QuotedString); } @Test(expected = BadCharacterException.class) public void testBadCharacter() { String text = "[abc]"; tokenFactory.createToken(text, testPosition); } }