Skip to content

Commit 4c6eda9

Browse files
#765 - renamed the test so that mvn could pick it up
1 parent 9d6eb52 commit 4c6eda9

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
package com.marklogic.client.test.example.cookbook;
2+
3+
import java.io.IOException;
4+
5+
import javax.sql.DataSource;
6+
7+
import org.hsqldb.server.Server;
8+
import org.junit.Test;
9+
import org.springframework.jdbc.core.JdbcTemplate;
10+
import org.springframework.jdbc.datasource.DriverManagerDataSource;
11+
12+
import com.marklogic.client.example.cookbook.Util;
13+
import com.marklogic.client.example.cookbook.Util.ExampleProperties;
14+
import com.marklogic.client.example.cookbook.datamovement.BulkExportToJdbc;
15+
import com.marklogic.client.example.cookbook.datamovement.BulkLoadFromJdbcRaw;
16+
import com.marklogic.client.example.cookbook.datamovement.BulkLoadFromJdbcWithJoins;
17+
import com.marklogic.client.example.cookbook.datamovement.BulkLoadFromJdbcWithSimpleJoins;
18+
import com.marklogic.client.example.cookbook.datamovement.IncrementalLoadFromJdbc;
19+
20+
public class JdbcCookbookTest {
21+
22+
class Database {
23+
Server hsqlDBServer;
24+
JdbcTemplate jdbcTemplate;
25+
Database() throws IOException {
26+
setupHSQLDBServer();
27+
jdbcTemplate = new JdbcTemplate(getDataSource());
28+
}
29+
30+
private void setupHSQLDBServer() {
31+
hsqlDBServer = new Server();
32+
hsqlDBServer.setDatabaseName(0, "employees");
33+
hsqlDBServer.setDatabasePath(0, "mem:employees");
34+
hsqlDBServer.setPort(9002);
35+
hsqlDBServer.start();
36+
}
37+
38+
private DataSource getDataSource() throws IOException {
39+
ExampleProperties properties = Util.loadProperties();
40+
return new DriverManagerDataSource(properties.jdbcUrl, properties.jdbcUser, properties.jdbcPassword);
41+
}
42+
43+
public void execute(String query) {
44+
jdbcTemplate.execute(query);
45+
}
46+
47+
public void tearDown() {
48+
hsqlDBServer.stop();
49+
}
50+
}
51+
52+
@Test
53+
public void testMain() throws Exception {
54+
Database hsqlDB = new Database();
55+
populateDataset(hsqlDB);
56+
BulkLoadFromJdbcRaw.main(new String[0]);
57+
BulkLoadFromJdbcWithSimpleJoins.main(new String[0]);
58+
BulkLoadFromJdbcWithJoins.main(new String[0]);
59+
IncrementalLoadFromJdbc.main(new String[0]);
60+
BulkExportToJdbc.main(new String[0]);
61+
deleteDataset(hsqlDB);
62+
hsqlDB.tearDown();
63+
}
64+
65+
private void deleteDataset(Database myDB) {
66+
myDB.execute("DROP SCHEMA PUBLIC CASCADE");
67+
}
68+
69+
private void populateDataset(Database hsqlDB) {
70+
hsqlDB.execute("CREATE TABLE employees (" +
71+
"emp_no INTEGER NOT NULL," +
72+
"birth_date DATE NOT NULL," +
73+
"first_name VARCHAR(14) NOT NULL," +
74+
"last_name VARCHAR(16) NOT NULL," +
75+
"gender VARCHAR(2) NOT NULL," +
76+
"hire_date DATE NOT NULL," +
77+
"PRIMARY KEY (emp_no));");
78+
79+
hsqlDB.execute("CREATE TABLE titles (" +
80+
"emp_no INTEGER NOT NULL," +
81+
"title VARCHAR(50) NOT NULL," +
82+
"from_date DATE NOT NULL," +
83+
"to_date DATE," +
84+
"FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE," +
85+
"PRIMARY KEY (emp_no,title, from_date));");
86+
87+
hsqlDB.execute("CREATE TABLE salaries (" +
88+
"emp_no INTEGER NOT NULL," +
89+
"salary INTEGER NOT NULL," +
90+
"from_date DATE NOT NULL," +
91+
"to_date DATE NOT NULL," +
92+
"FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE," +
93+
"PRIMARY KEY (emp_no, from_date));");
94+
95+
hsqlDB.execute("CREATE TABLE employees_export (" +
96+
"emp_no INTEGER NOT NULL," +
97+
"birth_date DATE NOT NULL," +
98+
"first_name VARCHAR(14) NOT NULL," +
99+
"last_name VARCHAR(16) NOT NULL," +
100+
"gender VARCHAR(2) NOT NULL," +
101+
"hire_date DATE NOT NULL," +
102+
"PRIMARY KEY (emp_no));");
103+
104+
hsqlDB.execute("CREATE TABLE titles_export (" +
105+
"emp_no INTEGER NOT NULL," +
106+
"title VARCHAR(50) NOT NULL," +
107+
"from_date DATE NOT NULL," +
108+
"to_date DATE," +
109+
"FOREIGN KEY (emp_no) REFERENCES employees_export (emp_no) ON DELETE CASCADE," +
110+
"PRIMARY KEY (emp_no,title, from_date));");
111+
112+
hsqlDB.execute("CREATE TABLE salaries_export (" +
113+
"emp_no INTEGER NOT NULL," +
114+
"salary INTEGER NOT NULL," +
115+
"from_date DATE NOT NULL," +
116+
"to_date DATE NOT NULL," +
117+
"FOREIGN KEY (emp_no) REFERENCES employees_export (emp_no) ON DELETE CASCADE," +
118+
"PRIMARY KEY (emp_no, from_date));");
119+
120+
hsqlDB.execute("INSERT INTO employees VALUES (1, '1990-10-04', 'Alice', 'Edward', 'F', '2012-04-05');");
121+
hsqlDB.execute("INSERT INTO employees VALUES (2, '1992-12-23', 'Bob', 'Miller', 'M', '2010-06-01');");
122+
hsqlDB.execute("INSERT INTO employees VALUES (3, '1985-11-30', 'Gerard', 'Steven', 'M', '2011-07-29');");
123+
hsqlDB.execute("INSERT INTO employees VALUES (4, '1970-01-08', 'Evelyn', 'Erick', 'F', '2012-08-24');");
124+
hsqlDB.execute("INSERT INTO employees VALUES (5, '1978-05-14', 'Daniel', 'Washington', 'M', '2007-02-17');");
125+
hsqlDB.execute("INSERT INTO employees VALUES (6, '1989-07-19', 'Eve', 'Alfred', 'F', '2009-08-14');");
126+
hsqlDB.execute("INSERT INTO employees VALUES (7, '1990-09-29', 'Rachel', 'Fisher', 'F', '2015-01-01');");
127+
hsqlDB.execute("INSERT INTO employees VALUES (8, '1987-10-26', 'Bruce', 'Wayne', 'M', '2010-04-09');");
128+
hsqlDB.execute("INSERT INTO employees VALUES (9, '1992-11-25', 'Thomas', 'Crook', 'M', '2013-07-07');");
129+
hsqlDB.execute("INSERT INTO employees VALUES (10, '1994-12-04', 'Diana', 'Trevor', 'F', '2016-09-23');");
130+
131+
hsqlDB.execute("INSERT INTO titles VALUES (1, 'Engineer', '2012-04-05', '9999-01-01');");
132+
hsqlDB.execute("INSERT INTO titles VALUES (2, 'Staff Engineer', '2010-06-01', '9999-01-01');");
133+
hsqlDB.execute("INSERT INTO titles VALUES (3, 'Lead Engineer', '2011-07-29', '9999-01-01');");
134+
hsqlDB.execute("INSERT INTO titles VALUES (4, 'Engineer', '2012-08-24', '9999-01-01');");
135+
hsqlDB.execute("INSERT INTO titles VALUES (5, 'Engineer', '2007-02-17', '2009-05-09');");
136+
hsqlDB.execute("INSERT INTO titles VALUES (5, 'Senior Engineer', '2009-05-09', '2013-09-09');");
137+
hsqlDB.execute("INSERT INTO titles VALUES (5, 'Staff Engineer', '2013-09-09', '9999-01-01');");
138+
hsqlDB.execute("INSERT INTO titles VALUES (6, 'Engineer', '2009-08-14', '2013-09-12');");
139+
hsqlDB.execute("INSERT INTO titles VALUES (6, 'Senior Engineer', '2013-09-12', '9999-01-01');");
140+
hsqlDB.execute("INSERT INTO titles VALUES (7, 'Assistant Engineer', '2015-01-01', '9999-01-01');");
141+
hsqlDB.execute("INSERT INTO titles VALUES (8, 'Staff Engineer', '2010-04-09', '2014-04-09');");
142+
hsqlDB.execute("INSERT INTO titles VALUES (8, 'Principal Engineer', '2014-04-09', '9999-01-01');");
143+
hsqlDB.execute("INSERT INTO titles VALUES (9, 'Senior Engineer', '2013-07-07', '9999-01-01');");
144+
hsqlDB.execute("INSERT INTO titles VALUES (10, 'Engineer', '2016-09-23', '9999-01-01');");
145+
146+
hsqlDB.execute("INSERT INTO salaries VALUES (1, 70675, '2012-04-05', '9999-01-01');");
147+
hsqlDB.execute("INSERT INTO salaries VALUES (2, 98023, '2010-06-01', '9999-01-01');");
148+
hsqlDB.execute("INSERT INTO salaries VALUES (3, 87455, '2011-07-29', '9999-01-01');");
149+
hsqlDB.execute("INSERT INTO salaries VALUES (4, 62444, '2012-08-24', '9999-01-01');");
150+
hsqlDB.execute("INSERT INTO salaries VALUES (5, 68978, '2007-02-17', '2009-05-09');");
151+
hsqlDB.execute("INSERT INTO salaries VALUES (5, 76543, '2009-05-09', '2013-09-09');");
152+
hsqlDB.execute("INSERT INTO salaries VALUES (5, 86732, '2013-09-09', '9999-01-01');");
153+
hsqlDB.execute("INSERT INTO salaries VALUES (6, 70987, '2009-08-14', '2013-09-12');");
154+
hsqlDB.execute("INSERT INTO salaries VALUES (6, 79083, '2013-09-12', '9999-01-01');");
155+
hsqlDB.execute("INSERT INTO salaries VALUES (7, 50678, '2015-01-01', '9999-01-01');");
156+
hsqlDB.execute("INSERT INTO salaries VALUES (8, 99873, '2010-04-09', '2014-04-09');");
157+
hsqlDB.execute("INSERT INTO salaries VALUES (8, 106742, '2014-04-09', '9999-01-01');");
158+
hsqlDB.execute("INSERT INTO salaries VALUES (9, 79003, '2013-07-07', '9999-01-01');");
159+
hsqlDB.execute("INSERT INTO salaries VALUES (10, 67893, '2016-09-23', '2016-12-01');");
160+
hsqlDB.execute("INSERT INTO salaries VALUES (10, 67993, '2016-12-01', '9999-01-01');");
161+
}
162+
}

0 commit comments

Comments
 (0)