Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/lexer/analyzer/TokenizerTest.java +38 −16 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.dangdang.ddframe.rdb.sharding.parsing.lexer.analyzer; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Literals; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Token; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.TokenType; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.*; import org.junit.Test; import org.mockito.internal.matchers.apachecommons.ReflectionEquals; Loading Loading @@ -154,4 +152,28 @@ public final class TokenizerTest { Tokenizer tokenizer = new Tokenizer(formatSql, dictionary, sql.indexOf("=") + 1); assertTrue(new ReflectionEquals(tokenizer.scanHexDecimal()).matches(new Token(type, literals, formatSql.length()))); } @Test public void assertScanNChars() { String sql = "SELECT * FROM ORDER, XX_TABLE AS `table` WHERE YY=N'xx' And group =-1 GROUP BY YY"; Tokenizer tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("ORDER")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "ORDER", sql.indexOf(",")))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("GROUP")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(DefaultKeyword.GROUP, "GROUP", sql.indexOf("BY") - 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("`")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "`table`", sql.indexOf("WHERE") - 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("YY")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "YY", sql.indexOf("=")))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("=-")); assertTrue(new ReflectionEquals(tokenizer.scanSymbol()).matches(new Token(Symbol.EQ, "=", sql.indexOf("=-") + 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("'")); assertTrue(new ReflectionEquals(tokenizer.scanChars()).matches(new Token(Literals.CHARS, "xx", sql.indexOf("And") - 1))); } @Test(expected = UnterminatedCharException.class) public void assertScanChars() { String sql = "SELECT * FROM XXX_TABLE AS `TEST"; Tokenizer tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("`")); tokenizer.scanChars(); } } Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/lexer/analyzer/TokenizerTest.java +38 −16 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.dangdang.ddframe.rdb.sharding.parsing.lexer.analyzer; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Literals; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Token; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.TokenType; import com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.*; import org.junit.Test; import org.mockito.internal.matchers.apachecommons.ReflectionEquals; Loading Loading @@ -154,4 +152,28 @@ public final class TokenizerTest { Tokenizer tokenizer = new Tokenizer(formatSql, dictionary, sql.indexOf("=") + 1); assertTrue(new ReflectionEquals(tokenizer.scanHexDecimal()).matches(new Token(type, literals, formatSql.length()))); } @Test public void assertScanNChars() { String sql = "SELECT * FROM ORDER, XX_TABLE AS `table` WHERE YY=N'xx' And group =-1 GROUP BY YY"; Tokenizer tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("ORDER")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "ORDER", sql.indexOf(",")))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("GROUP")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(DefaultKeyword.GROUP, "GROUP", sql.indexOf("BY") - 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("`")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "`table`", sql.indexOf("WHERE") - 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("YY")); assertTrue(new ReflectionEquals(tokenizer.scanIdentifier()).matches(new Token(Literals.IDENTIFIER, "YY", sql.indexOf("=")))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("=-")); assertTrue(new ReflectionEquals(tokenizer.scanSymbol()).matches(new Token(Symbol.EQ, "=", sql.indexOf("=-") + 1))); tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("'")); assertTrue(new ReflectionEquals(tokenizer.scanChars()).matches(new Token(Literals.CHARS, "xx", sql.indexOf("And") - 1))); } @Test(expected = UnterminatedCharException.class) public void assertScanChars() { String sql = "SELECT * FROM XXX_TABLE AS `TEST"; Tokenizer tokenizer = new Tokenizer(sql, dictionary, sql.indexOf("`")); tokenizer.scanChars(); } }