Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d8c00a3

Browse files
authored
Improved tasks 183, 184
1 parent 8532f8c commit d8c00a3

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package g0101_0200.s0183_customers_who_never_order;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import java.io.BufferedReader;
7+
import java.io.FileNotFoundException;
8+
import java.io.FileReader;
9+
import java.sql.Connection;
10+
import java.sql.ResultSet;
11+
import java.sql.SQLException;
12+
import java.sql.Statement;
13+
import java.util.stream.Collectors;
14+
import javax.sql.DataSource;
15+
import org.junit.jupiter.api.Test;
16+
import org.zapodot.junit.db.annotations.EmbeddedDatabase;
17+
import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest;
18+
import org.zapodot.junit.db.common.CompatibilityMode;
19+
import org.zapodot.junit.db.common.Engine;
20+
21+
@EmbeddedDatabaseTest(
22+
engine = Engine.H2,
23+
compatibilityMode = CompatibilityMode.MySQL,
24+
initialSqls =
25+
"CREATE TABLE Customers(id INTEGER PRIMARY KEY, name VARCHAR); "
26+
+ "INSERT INTO Customers(id, name) VALUES (1, 'Joe'); "
27+
+ "INSERT INTO Customers(id, name) VALUES (2, 'Henry'); "
28+
+ "INSERT INTO Customers(id, name) VALUES (3, 'Sam'); "
29+
+ "INSERT INTO Customers(id, name) VALUES (4, 'Max'); "
30+
+ "CREATE TABLE Orders(id INTEGER, customerId INTEGER); "
31+
+ "INSERT INTO Orders(id, customerId) VALUES (1, 3); "
32+
+ "INSERT INTO Orders(id, customerId) VALUES (2, 1); ")
33+
class MysqlTest {
34+
@Test
35+
void testScript(@EmbeddedDatabase DataSource dataSource)
36+
throws SQLException, FileNotFoundException {
37+
try (final Connection connection = dataSource.getConnection()) {
38+
try (final Statement statement = connection.createStatement();
39+
final ResultSet resultSet =
40+
statement.executeQuery(
41+
new BufferedReader(
42+
new FileReader(
43+
"src/main/java/g0101_0200/"
44+
+ "s0183_customers_who_never_order/script.sql"))
45+
.lines()
46+
.collect(Collectors.joining("\n"))
47+
.replaceAll("#.*?\\r?\\n", ""))) {
48+
assertThat(resultSet.next(), equalTo(true));
49+
assertThat(resultSet.getNString(1), equalTo("Henry"));
50+
assertThat(resultSet.next(), equalTo(true));
51+
assertThat(resultSet.getNString(1), equalTo("Max"));
52+
assertThat(resultSet.next(), equalTo(false));
53+
}
54+
}
55+
}
56+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package g0101_0200.s0184_department_highest_salary;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import java.io.BufferedReader;
7+
import java.io.FileNotFoundException;
8+
import java.io.FileReader;
9+
import java.sql.Connection;
10+
import java.sql.ResultSet;
11+
import java.sql.SQLException;
12+
import java.sql.Statement;
13+
import java.util.stream.Collectors;
14+
import javax.sql.DataSource;
15+
import org.junit.jupiter.api.Test;
16+
import org.zapodot.junit.db.annotations.EmbeddedDatabase;
17+
import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest;
18+
import org.zapodot.junit.db.common.CompatibilityMode;
19+
import org.zapodot.junit.db.common.Engine;
20+
21+
@EmbeddedDatabaseTest(
22+
engine = Engine.H2,
23+
compatibilityMode = CompatibilityMode.MySQL,
24+
initialSqls =
25+
"CREATE TABLE Employee(id INTEGER PRIMARY KEY, name VARCHAR, salary INTEGER, departmentId INTEGER); "
26+
+ "INSERT INTO Employee(id, name, salary, departmentId) VALUES (1, 'Joe', 70000, 1); "
27+
+ "INSERT INTO Employee(id, name, salary, departmentId) VALUES (2, 'Jim', 90000, 1); "
28+
+ "INSERT INTO Employee(id, name, salary, departmentId) VALUES (3, 'Henry', 80000, 2); "
29+
+ "INSERT INTO Employee(id, name, salary, departmentId) VALUES (4, 'Sam', 60000, 2); "
30+
+ "INSERT INTO Employee(id, name, salary, departmentId) VALUES (5, 'Max', 90000, 1); "
31+
+ "CREATE TABLE Department(id INTEGER, name VARCHAR); "
32+
+ "INSERT INTO Department(id, name) VALUES (1, 'IT'); "
33+
+ "INSERT INTO Department(id, name) VALUES (2, 'Sales'); ")
34+
class MysqlTest {
35+
@Test
36+
void testScript(@EmbeddedDatabase DataSource dataSource)
37+
throws SQLException, FileNotFoundException {
38+
try (final Connection connection = dataSource.getConnection()) {
39+
try (final Statement statement = connection.createStatement();
40+
final ResultSet resultSet =
41+
statement.executeQuery(
42+
new BufferedReader(
43+
new FileReader(
44+
"src/main/java/g0101_0200/"
45+
+ "s0184_department_highest_salary/script.sql"))
46+
.lines()
47+
.collect(Collectors.joining("\n"))
48+
.replaceAll("#.*?\\r?\\n", ""))) {
49+
assertThat(resultSet.next(), equalTo(true));
50+
assertThat(resultSet.getNString(1), equalTo("IT"));
51+
assertThat(resultSet.getNString(2), equalTo("Jim"));
52+
assertThat(resultSet.getInt(3), equalTo(90000));
53+
assertThat(resultSet.next(), equalTo(true));
54+
assertThat(resultSet.getNString(1), equalTo("Sales"));
55+
assertThat(resultSet.getNString(2), equalTo("Henry"));
56+
assertThat(resultSet.getInt(3), equalTo(80000));
57+
assertThat(resultSet.next(), equalTo(true));
58+
assertThat(resultSet.getNString(1), equalTo("IT"));
59+
assertThat(resultSet.getNString(2), equalTo("Max"));
60+
assertThat(resultSet.getInt(3), equalTo(90000));
61+
assertThat(resultSet.next(), equalTo(false));
62+
}
63+
}
64+
}
65+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /