Skip to content

Commit 2c56ec7

Browse files
authored
Added test for tasks 1757, 1795, 1873, 1890, 1965.
1 parent ddc9700 commit 2c56ec7

File tree

5 files changed

+323
-0
lines changed

5 files changed

+323
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package g1701_1800.s1757_recyclable_and_low_fat_products;
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+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Products(product_id INTEGER PRIMARY KEY, low_fats VARCHAR, recyclable VARCHAR); "
24+
+ "INSERT INTO Products(product_id, low_fats, recyclable)"
25+
+ " VALUES (0, 'Y', 'N'); "
26+
+ "INSERT INTO Products(product_id, low_fats, recyclable)"
27+
+ " VALUES (1, 'Y', 'Y'); "
28+
+ "INSERT INTO Products(product_id, low_fats, recyclable)"
29+
+ " VALUES (2, 'N', 'Y'); "
30+
+ "INSERT INTO Products(product_id, low_fats, recyclable)"
31+
+ " VALUES (3, 'Y', 'Y'); "
32+
+ "INSERT INTO Products(product_id, low_fats, recyclable)"
33+
+ " VALUES (4, 'N', 'N'); ")
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/g1701_1800/s1757_recyclable_and"
45+
+ "_low_fat_products/script.sql"))
46+
.lines()
47+
.collect(Collectors.joining("\n"))
48+
.replaceAll("#.*?\\r?\\n", ""))) {
49+
assertThat(resultSet.next(), equalTo(true));
50+
assertThat(resultSet.getInt(1), equalTo(1));
51+
assertThat(resultSet.next(), equalTo(true));
52+
assertThat(resultSet.getInt(1), equalTo(3));
53+
assertThat(resultSet.next(), equalTo(false));
54+
}
55+
}
56+
}
57+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package g1701_1800.s1795_rearrange_products_table;
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+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Products(product_id INTEGER PRIMARY KEY, store1 INTEGER,"
24+
+ " store2 INTEGER, store3 INTEGER); "
25+
+ "INSERT INTO Products(product_id, store1, store2, store3)"
26+
+ " VALUES (0, 95, 100, 105); "
27+
+ "INSERT INTO Products(product_id, store1, store2, store3)"
28+
+ " VALUES (1, 70, null, 80); ")
29+
class MysqlTest {
30+
@Test
31+
void testScript(@EmbeddedDatabase DataSource dataSource)
32+
throws SQLException, FileNotFoundException {
33+
try (final Connection connection = dataSource.getConnection()) {
34+
try (final Statement statement = connection.createStatement();
35+
final ResultSet resultSet =
36+
statement.executeQuery(
37+
new BufferedReader(
38+
new FileReader(
39+
"src/main/java/g1701_1800/s1795_rearrange"
40+
+ "_products_table/script.sql"))
41+
.lines()
42+
.collect(Collectors.joining("\n"))
43+
.replaceAll("#.*?\\r?\\n", ""))) {
44+
assertThat(resultSet.next(), equalTo(true));
45+
assertThat(resultSet.getInt(1), equalTo(0));
46+
assertThat(resultSet.getNString(2), equalTo("store1"));
47+
assertThat(resultSet.getInt(3), equalTo(95));
48+
assertThat(resultSet.next(), equalTo(true));
49+
assertThat(resultSet.getInt(1), equalTo(0));
50+
assertThat(resultSet.getNString(2), equalTo("store2"));
51+
assertThat(resultSet.getInt(3), equalTo(100));
52+
assertThat(resultSet.next(), equalTo(true));
53+
assertThat(resultSet.getInt(1), equalTo(0));
54+
assertThat(resultSet.getNString(2), equalTo("store3"));
55+
assertThat(resultSet.getInt(3), equalTo(105));
56+
assertThat(resultSet.next(), equalTo(true));
57+
assertThat(resultSet.getInt(1), equalTo(1));
58+
assertThat(resultSet.getNString(2), equalTo("store1"));
59+
assertThat(resultSet.getInt(3), equalTo(70));
60+
assertThat(resultSet.next(), equalTo(true));
61+
assertThat(resultSet.getInt(1), equalTo(1));
62+
assertThat(resultSet.getNString(2), equalTo("store3"));
63+
assertThat(resultSet.getInt(3), equalTo(80));
64+
assertThat(resultSet.next(), equalTo(false));
65+
}
66+
}
67+
}
68+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package g1801_1900.s1873_calculate_special_bonus;
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+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Employees(employee_id INTEGER PRIMARY KEY, name VARCHAR, salary INTEGER); "
24+
+ "INSERT INTO Employees(employee_id, name, salary)"
25+
+ " VALUES (2, 'Meir', 3000); "
26+
+ "INSERT INTO Employees(employee_id, name, salary)"
27+
+ " VALUES (3, 'Michael', 3800); "
28+
+ "INSERT INTO Employees(employee_id, name, salary)"
29+
+ " VALUES (7, 'Addilyn', 7400); "
30+
+ "INSERT INTO Employees(employee_id, name, salary)"
31+
+ " VALUES (8, 'Juan', 6100); "
32+
+ "INSERT INTO Employees(employee_id, name, salary)"
33+
+ " VALUES (9, 'Kannon', 7700); ")
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/g1801_1900/s1873_calculat"
45+
+ "e_special_bonus/script.sql"))
46+
.lines()
47+
.collect(Collectors.joining("\n"))
48+
.replaceAll("#.*?\\r?\\n", ""))) {
49+
assertThat(resultSet.next(), equalTo(true));
50+
assertThat(resultSet.getInt(1), equalTo(2));
51+
assertThat(resultSet.getInt(2), equalTo(0));
52+
assertThat(resultSet.next(), equalTo(true));
53+
assertThat(resultSet.getInt(1), equalTo(3));
54+
assertThat(resultSet.getInt(2), equalTo(0));
55+
assertThat(resultSet.next(), equalTo(true));
56+
assertThat(resultSet.getInt(1), equalTo(7));
57+
assertThat(resultSet.getInt(2), equalTo(7400));
58+
assertThat(resultSet.next(), equalTo(true));
59+
assertThat(resultSet.getInt(1), equalTo(8));
60+
assertThat(resultSet.getInt(2), equalTo(0));
61+
assertThat(resultSet.next(), equalTo(true));
62+
assertThat(resultSet.getInt(1), equalTo(9));
63+
assertThat(resultSet.getInt(2), equalTo(7700));
64+
assertThat(resultSet.next(), equalTo(false));
65+
}
66+
}
67+
}
68+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package g1801_1900.s1890_the_latest_login_in_2020;
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+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Logins(user_id INTEGER, time_stamp DATETIME); "
24+
+ "INSERT INTO Logins(user_id, time_stamp)"
25+
+ " VALUES (6, '2020-06-30 15:06:07'); "
26+
+ "INSERT INTO Logins(user_id, time_stamp)"
27+
+ " VALUES (6, '2021-04-21 14:06:06'); "
28+
+ "INSERT INTO Logins(user_id, time_stamp)"
29+
+ " VALUES (6, '2019-03-07 00:18:15'); "
30+
+ "INSERT INTO Logins(user_id, time_stamp)"
31+
+ " VALUES (8, '2020-02-01 05:10:53'); "
32+
+ "INSERT INTO Logins(user_id, time_stamp)"
33+
+ " VALUES (8, '2020-12-30 00:46:50'); "
34+
+ "INSERT INTO Logins(user_id, time_stamp)"
35+
+ " VALUES (2, '2020-01-16 02:49:50'); "
36+
+ "INSERT INTO Logins(user_id, time_stamp)"
37+
+ " VALUES (2, '2019-08-25 07:59:08'); "
38+
+ "INSERT INTO Logins(user_id, time_stamp)"
39+
+ " VALUES (14, '2019-07-14 09:00:00'); "
40+
+ "INSERT INTO Logins(user_id, time_stamp)"
41+
+ " VALUES (14, '2021-01-06 11:59:59'); ")
42+
class MysqlTest {
43+
@Test
44+
void testScript(@EmbeddedDatabase DataSource dataSource)
45+
throws SQLException, FileNotFoundException {
46+
try (final Connection connection = dataSource.getConnection()) {
47+
try (final Statement statement = connection.createStatement();
48+
final ResultSet resultSet =
49+
statement.executeQuery(
50+
new BufferedReader(
51+
new FileReader(
52+
"src/main/java/g1801_1900/s1890_the_latest_"
53+
+ "login_in_2020/script.sql"))
54+
.lines()
55+
.collect(Collectors.joining("\n"))
56+
.replaceAll("#.*?\\r?\\n", ""))) {
57+
assertThat(resultSet.next(), equalTo(true));
58+
assertThat(resultSet.getInt(1), equalTo(2));
59+
assertThat(resultSet.getNString(2), equalTo("2020-01-16 02:49:50"));
60+
assertThat(resultSet.next(), equalTo(true));
61+
assertThat(resultSet.getInt(1), equalTo(6));
62+
assertThat(resultSet.getNString(2), equalTo("2020-06-30 15:06:07"));
63+
assertThat(resultSet.next(), equalTo(true));
64+
assertThat(resultSet.getInt(1), equalTo(8));
65+
assertThat(resultSet.getNString(2), equalTo("2020-12-30 00:46:50"));
66+
assertThat(resultSet.next(), equalTo(false));
67+
}
68+
}
69+
}
70+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package g1901_2000.s1965_employees_with_missing_information;
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+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Employees(employee_id INTEGER, name VARCHAR); "
24+
+ "INSERT INTO Employees(employee_id, name)"
25+
+ " VALUES (2, 'Crew'); "
26+
+ "INSERT INTO Employees(employee_id, name)"
27+
+ " VALUES (4, 'Haven'); "
28+
+ "INSERT INTO Employees(employee_id, name)"
29+
+ " VALUES (5, 'Kristian'); "
30+
+ "CREATE TABLE Salaries(employee_id INTEGER, salary INTEGER); "
31+
+ "INSERT INTO Salaries(employee_id, salary)"
32+
+ " VALUES (5, 76071); "
33+
+ "INSERT INTO Salaries(employee_id, salary)"
34+
+ " VALUES (1, 22517); "
35+
+ "INSERT INTO Salaries(employee_id, salary)"
36+
+ " VALUES (4, 63539); ")
37+
class MysqlTest {
38+
@Test
39+
void testScript(@EmbeddedDatabase DataSource dataSource)
40+
throws SQLException, FileNotFoundException {
41+
try (final Connection connection = dataSource.getConnection()) {
42+
try (final Statement statement = connection.createStatement();
43+
final ResultSet resultSet =
44+
statement.executeQuery(
45+
new BufferedReader(
46+
new FileReader(
47+
"src/main/java/g1901_2000/s1965_employees_"
48+
+ "with_missing_information/script.sql"))
49+
.lines()
50+
.collect(Collectors.joining("\n"))
51+
.replaceAll("#.*?\\r?\\n", ""))) {
52+
assertThat(resultSet.next(), equalTo(true));
53+
assertThat(resultSet.getInt(1), equalTo(1));
54+
assertThat(resultSet.next(), equalTo(true));
55+
assertThat(resultSet.getInt(1), equalTo(2));
56+
assertThat(resultSet.next(), equalTo(false));
57+
}
58+
}
59+
}
60+
}

0 commit comments

Comments
 (0)