Skip to content
This repository was archived by the owner on Sep 27, 2019. It is now read-only.

Commit 968bc86

Browse files
committed
add junit test cases
1 parent 8d36764 commit 968bc86

File tree

2 files changed

+122
-10
lines changed

2 files changed

+122
-10
lines changed

script/testing/junit/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ CLASSES = \
1616
PLTestBase.java \
1717
InsertTPCCTest.java \
1818
InsertPSTest.java \
19-
UpdateTest.java
19+
UpdateTest.java\
20+
OptimizerTest.java
2021

2122
default: classes
2223

@@ -30,7 +31,8 @@ test: $(CLASSES)
3031
--class-path $(CP) \
3132
-c InsertTPCCTest \
3233
-c InsertPSTest \
33-
-c UpdateTest
34+
-c UpdateTest\
35+
-c OptimizerTest
3436

3537

3638

script/testing/junit/OptimizerTest.java

Lines changed: 118 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
import static java.sql.Statement.EXECUTE_FAILED;
1212
import static java.sql.Statement.SUCCESS_NO_INFO;
13-
import static org.junit.Assert.assertEquals;
14-
import static org.junit.Assert.assertTrue;
13+
import static org.junit.Assert.*;
1514

1615
/**
1716
* Created by Guoquan Zhao on 4/7/18.
@@ -21,9 +20,10 @@ public class OptimizerTest extends PLTestBase {
2120
{"DROP TABLE IF EXISTS t1;",
2221
"DROP TABLE IF EXISTS t2;"};
2322
private Connection conn;
23+
2424
private void initTables1() throws FileNotFoundException, SQLException {
25-
try(BufferedReader reader = new BufferedReader(new FileReader("create_tables_1.sql"));
26-
Statement stmt = conn.createStatement();){
25+
try (BufferedReader reader = new BufferedReader(new FileReader("create_tables_1.sql"));
26+
Statement stmt = conn.createStatement();) {
2727
reader.lines().forEach(s -> {
2828
try {
2929
stmt.addBatch(s);
@@ -36,10 +36,12 @@ private void initTables1() throws FileNotFoundException, SQLException {
3636
assertTrue("batch failed.", (results[i] >= 0 || results[i] == SUCCESS_NO_INFO) && results[i] != EXECUTE_FAILED);
3737
}
3838
ResultSet resultSet = stmt.executeQuery("SELECT COUNT(*) FROM t1;");
39-
assertEquals(3, resultSet.getInt(0));
39+
resultSet.next();
40+
assertEquals(3, resultSet.getInt(1));
4041
resultSet.close();
4142
resultSet = stmt.executeQuery("SELECT COUNT(*) FROM t2;");
42-
assertEquals(3, resultSet.getInt(0));
43+
resultSet.next();
44+
assertEquals(3, resultSet.getInt(1));
4345
resultSet.close();
4446
} catch (IOException e) {
4547
e.printStackTrace();
@@ -57,7 +59,6 @@ public void Setup() {
5759
initTables1();
5860
} catch (SQLException ex) {
5961
DumpSQLException(ex);
60-
// throw ex;
6162
} catch (FileNotFoundException e) {
6263
e.printStackTrace();
6364
}
@@ -73,9 +74,118 @@ public void Teardown() throws SQLException {
7374

7475

7576
@Test
76-
public void testJoin1() throws SQLException {
77+
public void testInnerJoin() throws SQLException {
78+
try (
79+
Statement stmt = conn.createStatement();
80+
ResultSet resultSet = stmt.executeQuery("SELECT t1.a FROM t1 INNER JOIN t2 ON (t1.b = t2.b) ORDER BY t1.a;");) {
81+
assertTrue(resultSet.next());
82+
assertEquals(1, resultSet.getInt(1));
83+
assertTrue(resultSet.next());
84+
assertEquals(2, resultSet.getInt(1));
85+
assertFalse(resultSet.next());
86+
} catch (Exception e) {
87+
e.printStackTrace();
88+
fail();
89+
}
90+
try (
91+
Statement stmt = conn.createStatement();
92+
ResultSet resultSet = stmt.executeQuery("SELECT x.a FROM t1 AS x INNER JOIN t2 ON(x.b = t2.b AND x.c = t2.c) ORDER BY x.a;");) {
93+
assertTrue(resultSet.next());
94+
assertEquals(1, resultSet.getInt(1));
95+
assertTrue(resultSet.next());
96+
assertEquals(2, resultSet.getInt(1));
97+
assertFalse(resultSet.next());
98+
} catch (Exception e) {
99+
e.printStackTrace();
100+
fail();
101+
}
77102

78103

79104
}
80105

106+
@Test
107+
public void testLeftOuterJoin() throws SQLException {
108+
try (
109+
Statement stmt = conn.createStatement();
110+
ResultSet resultSet = stmt.executeQuery("SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.d;");) {
111+
assertTrue(resultSet.next());
112+
assertEquals(3, resultSet.getInt(4));
113+
assertEquals(4, resultSet.getInt(5));
114+
assertEquals(5, resultSet.getInt(6));
115+
assertEquals(1, resultSet.getInt(1));
116+
assertEquals(2, resultSet.getInt(2));
117+
assertEquals(3, resultSet.getInt(3));
118+
assertTrue(resultSet.next());
119+
assertEquals(null, resultSet.getObject(1));
120+
assertEquals(null, resultSet.getObject(2));
121+
assertEquals(null, resultSet.getObject(3));
122+
assertTrue(resultSet.next());
123+
assertEquals(null, resultSet.getObject(1));
124+
assertEquals(null, resultSet.getObject(2));
125+
assertEquals(null, resultSet.getObject(3));
126+
assertFalse(resultSet.next());
127+
} catch (Exception e) {
128+
e.printStackTrace();
129+
fail();
130+
}
131+
try (
132+
Statement stmt = conn.createStatement();
133+
ResultSet resultSet = stmt.executeQuery("SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.d WHERE t1.a>1")) {
134+
assertTrue(resultSet.next());
135+
assertEquals(3, resultSet.getInt(4));
136+
assertEquals(4, resultSet.getInt(5));
137+
assertEquals(5, resultSet.getInt(6));
138+
assertEquals(1, resultSet.getInt(1));
139+
assertEquals(2, resultSet.getInt(2));
140+
assertEquals(3, resultSet.getInt(3));
141+
assertTrue(resultSet.next());
142+
assertEquals(null, resultSet.getObject(1));
143+
assertEquals(null, resultSet.getObject(2));
144+
assertEquals(null, resultSet.getObject(3));
145+
assertFalse(resultSet.next());
146+
} catch (Exception e) {
147+
e.printStackTrace();
148+
fail();
149+
}
150+
try (
151+
Statement stmt = conn.createStatement();
152+
ResultSet resultSet = stmt.executeQuery("SELECT * FROM t1 LEFT OUTER JOIN t2 ON t1.a=t2.d WHERE t1.a>1")) {
153+
assertTrue(resultSet.next());
154+
assertEquals(3, resultSet.getInt(4));
155+
assertEquals(4, resultSet.getInt(5));
156+
assertEquals(5, resultSet.getInt(6));
157+
assertEquals(1, resultSet.getInt(1));
158+
assertEquals(2, resultSet.getInt(2));
159+
assertEquals(3, resultSet.getInt(3));
160+
assertTrue(resultSet.next());
161+
assertEquals(null, resultSet.getObject(1));
162+
assertEquals(null, resultSet.getObject(2));
163+
assertEquals(null, resultSet.getObject(3));
164+
assertFalse(resultSet.next());
165+
} catch (Exception e) {
166+
e.printStackTrace();
167+
fail();
168+
}
169+
170+
}
171+
172+
@Test
173+
public void testLeftOuterJoinWhere() {
174+
try (
175+
Statement stmt = conn.createStatement();
176+
ResultSet resultSet = stmt.executeQuery("SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.d WHERE t2.b IS NULL OR t2.b>1")) {
177+
// expected result is
178+
// t1 t2
179+
// 1 2 3 {} {} {}
180+
// 2 3 4 {} {} {}
181+
assertTrue(resultSet.next());
182+
assertTrue(resultSet.next());
183+
assertFalse(resultSet.next());
184+
} catch (Exception e) {
185+
e.printStackTrace();
186+
fail();
187+
}
188+
}
189+
190+
81191
}

0 commit comments

Comments
 (0)