diff --git a/src/test/java/ai/starlake/transpiler/JSQLColumnResolverTest.java b/src/test/java/ai/starlake/transpiler/JSQLColumnResolverTest.java index 0ce8aa2..20cca18 100644 --- a/src/test/java/ai/starlake/transpiler/JSQLColumnResolverTest.java +++ b/src/test/java/ai/starlake/transpiler/JSQLColumnResolverTest.java @@ -73,6 +73,35 @@ void testSimpleSchemaProvider() throws JSQLParserException, SQLException { .isEqualTo(new String[] {res.getTableName(6), res.getColumnName(6)}); } + @Test + void testWithWrongTable() { + JdbcMetaData metaData = new JdbcMetaData("", "") + .addTable("a", new JdbcColumn("col1"), new JdbcColumn("col2"), new JdbcColumn("col3")) + .addTable("b", new JdbcColumn("col1"), new JdbcColumn("col2"), new JdbcColumn("col3")); + + //should be exception because bb table is not exist + org.junit.jupiter.api.Assertions.assertThrows(JSQLParserException.class, () -> JSQLColumResolver.getResultSetMetaData("select * from a where a.col1 in (select bb.col1 from bb)", metaData)); + } + + @Test + void testWithWrongTable1() { + JdbcMetaData metaData = new JdbcMetaData("", "") + .addTable("foo", new JdbcColumn("id"), new JdbcColumn("name")); + + //should be exception because foo1 table is not exist + org.junit.jupiter.api.Assertions.assertThrows(JSQLParserException.class, () -> JSQLColumResolver.getResultSetMetaData("select sum(foo1.id) from foo group by foo.name", metaData)); + org.junit.jupiter.api.Assertions.assertThrows(JSQLParserException.class, () -> JSQLColumResolver.getResultSetMetaData("select avg(foo1.id) from foo group by foo.name", metaData)); + } + + @Test + void testWithWrongColumn() { + JdbcMetaData metaData = new JdbcMetaData("", "") + .addTable("foo", new JdbcColumn("id"), new JdbcColumn("name")); + + //should be exception because name1 column is not exist + org.junit.jupiter.api.Assertions.assertThrows(JSQLParserException.class, () -> JSQLColumResolver.getResultSetMetaData("select count(foo.id) from foo group by foo.name having foo.name1 = 'test'", metaData)); + } + @Test void testSimplerSchemaProvider() throws JSQLParserException, SQLException { JdbcMetaData metaData = new JdbcMetaData().addTable("a", "col1", "col2", "col3").addTable("b",