Skip to content

Commit 43c7586

Browse files
authored
Added tests for tasks 1407, 1484, 1527, 1581.
1 parent 6c32c5b commit 43c7586

File tree

5 files changed

+307
-1
lines changed

5 files changed

+307
-1
lines changed

src/main/java/g1501_1600/s1527_patients_with_a_condition/script.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# #Easy #Database #SQL_I_Day_3_String_Processing_Functions
33
# #2022_04_12_Time_308_ms_(66.93%)_Space_0B_(100.00%)
44
Select patient_id,patient_name,conditions from Patients
5-
where conditions like "% DIAB1%" or conditions like "DIAB1%";
5+
where conditions like '% DIAB1%' or conditions like 'DIAB1%'; -- NOSONAR
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package g1401_1500.s1407_top_travellers;
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 users(id INTEGER PRIMARY KEY, name VARCHAR ); "
24+
+ "INSERT INTO users(id, name) "
25+
+ "VALUES (1, 'Alice'); "
26+
+ "INSERT INTO users(id, name) "
27+
+ "VALUES (2, 'Bob'); "
28+
+ "INSERT INTO users(id, name) "
29+
+ "VALUES (3, 'Alex'); "
30+
+ "INSERT INTO users(id, name) "
31+
+ "VALUES (4, 'Donald'); "
32+
+ "INSERT INTO users(id, name) "
33+
+ "VALUES (7, 'Lee'); "
34+
+ "INSERT INTO users(id, name) "
35+
+ "VALUES (13, 'Jonathan'); "
36+
+ "INSERT INTO users(id, name) "
37+
+ "VALUES (19, 'Elvis'); "
38+
+ "CREATE TABLE rides(id INTEGER PRIMARY KEY, user_id INTEGER, distance INTEGER ); "
39+
+ "INSERT INTO rides(id, user_id, distance) "
40+
+ "VALUES (1, 1, 120); "
41+
+ "INSERT INTO rides(id, user_id, distance) "
42+
+ "VALUES (2, 2, 317); "
43+
+ "INSERT INTO rides(id, user_id, distance) "
44+
+ "VALUES (3, 3, 222); "
45+
+ "INSERT INTO rides(id, user_id, distance) "
46+
+ "VALUES (4, 7, 100); "
47+
+ "INSERT INTO rides(id, user_id, distance) "
48+
+ "VALUES (5, 13, 312); "
49+
+ "INSERT INTO rides(id, user_id, distance) "
50+
+ "VALUES (6, 19, 50); "
51+
+ "INSERT INTO rides(id, user_id, distance) "
52+
+ "VALUES (7, 7, 120); "
53+
+ "INSERT INTO rides(id, user_id, distance) "
54+
+ "VALUES (8, 19, 400); "
55+
+ "INSERT INTO rides(id, user_id, distance) "
56+
+ "VALUES (9, 7, 230); ")
57+
class MysqlTest {
58+
@Test
59+
void testScript(@EmbeddedDatabase DataSource dataSource)
60+
throws SQLException, FileNotFoundException {
61+
try (final Connection connection = dataSource.getConnection()) {
62+
try (final Statement statement = connection.createStatement();
63+
final ResultSet resultSet =
64+
statement.executeQuery(
65+
new BufferedReader(
66+
new FileReader(
67+
"src/main/java/g1401_1500/s1407_top_trave"
68+
+ "llers/script.sql"))
69+
.lines()
70+
.collect(Collectors.joining("\n"))
71+
.replaceAll("#.*?\\r?\\n", ""))) {
72+
assertThat(resultSet.next(), equalTo(true));
73+
assertThat(resultSet.getNString(1), equalTo("Elvis"));
74+
assertThat(resultSet.getInt(2), equalTo(450));
75+
assertThat(resultSet.next(), equalTo(true));
76+
assertThat(resultSet.getNString(1), equalTo("Lee"));
77+
assertThat(resultSet.getInt(2), equalTo(450));
78+
assertThat(resultSet.next(), equalTo(true));
79+
assertThat(resultSet.getNString(1), equalTo("Bob"));
80+
assertThat(resultSet.getInt(2), equalTo(317));
81+
assertThat(resultSet.next(), equalTo(true));
82+
assertThat(resultSet.getNString(1), equalTo("Jonathan"));
83+
assertThat(resultSet.getInt(2), equalTo(312));
84+
assertThat(resultSet.next(), equalTo(true));
85+
assertThat(resultSet.getNString(1), equalTo("Alex"));
86+
assertThat(resultSet.getInt(2), equalTo(222));
87+
assertThat(resultSet.next(), equalTo(true));
88+
assertThat(resultSet.getNString(1), equalTo("Alice"));
89+
assertThat(resultSet.getInt(2), equalTo(120));
90+
assertThat(resultSet.next(), equalTo(true));
91+
assertThat(resultSet.getNString(1), equalTo("Donald"));
92+
assertThat(resultSet.getInt(2), equalTo(0));
93+
assertThat(resultSet.next(), equalTo(false));
94+
}
95+
}
96+
}
97+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package g1401_1500.s1484_group_sold_products_by_the_date;
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 Activities(sell_date DATE, product VARCHAR); "
24+
+ "INSERT INTO Activities(sell_date, product) "
25+
+ "VALUES ('2020-05-30', 'Headphone'); "
26+
+ "INSERT INTO Activities(sell_date, product) "
27+
+ "VALUES ('2020-06-01', 'Pencil'); "
28+
+ "INSERT INTO Activities(sell_date, product) "
29+
+ "VALUES ('2020-06-02', 'Mask'); "
30+
+ "INSERT INTO Activities(sell_date, product) "
31+
+ "VALUES ('2020-05-30', 'Basketball'); "
32+
+ "INSERT INTO Activities(sell_date, product) "
33+
+ "VALUES ('2020-06-01', 'Bible'); "
34+
+ "INSERT INTO Activities(sell_date, product) "
35+
+ "VALUES ('2020-06-02', 'Mask'); "
36+
+ "INSERT INTO Activities(sell_date, product) "
37+
+ "VALUES ('2020-05-30', 'T-Shirt'); ")
38+
class MysqlTest {
39+
@Test
40+
void testScript(@EmbeddedDatabase DataSource dataSource)
41+
throws SQLException, FileNotFoundException {
42+
try (final Connection connection = dataSource.getConnection()) {
43+
try (final Statement statement = connection.createStatement();
44+
final ResultSet resultSet =
45+
statement.executeQuery(
46+
new BufferedReader(
47+
new FileReader(
48+
"src/main/java/g1401_1500/s1484_group_sold_"
49+
+ "products_by_the_date/script.sql"))
50+
.lines()
51+
.collect(Collectors.joining("\n"))
52+
.replaceAll("#.*?\\r?\\n", ""))) {
53+
assertThat(resultSet.next(), equalTo(true));
54+
assertThat(resultSet.getNString(1), equalTo("2020-05-30"));
55+
assertThat(resultSet.getInt(2), equalTo(3));
56+
assertThat(resultSet.getNString(3), equalTo("Basketball,Headphone,T-Shirt"));
57+
assertThat(resultSet.next(), equalTo(true));
58+
assertThat(resultSet.getNString(1), equalTo("2020-06-01"));
59+
assertThat(resultSet.getInt(2), equalTo(2));
60+
assertThat(resultSet.getNString(3), equalTo("Bible,Pencil"));
61+
assertThat(resultSet.next(), equalTo(true));
62+
assertThat(resultSet.getNString(1), equalTo("2020-06-02"));
63+
assertThat(resultSet.getInt(2), equalTo(1));
64+
assertThat(resultSet.getNString(3), equalTo("Mask"));
65+
assertThat(resultSet.next(), equalTo(false));
66+
}
67+
}
68+
}
69+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package g1501_1600.s1527_patients_with_a_condition;
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 Patients(patient_id INTEGER PRIMARY KEY, patient_name VARCHAR, conditions VARCHAR); "
24+
+ "INSERT INTO Patients(patient_id, patient_name, conditions) "
25+
+ "VALUES (1, 'Daniel', 'YFEV COUGH'); "
26+
+ "INSERT INTO Patients(patient_id, patient_name, conditions) "
27+
+ "VALUES (2, 'Alice', ''); "
28+
+ "INSERT INTO Patients(patient_id, patient_name, conditions) "
29+
+ "VALUES (3, 'Bob', 'DIAB100 MYOP'); "
30+
+ "INSERT INTO Patients(patient_id, patient_name, conditions) "
31+
+ "VALUES (4, 'George', 'ACNE DIAB100'); "
32+
+ "INSERT INTO Patients(patient_id, patient_name, conditions) "
33+
+ "VALUES (5, 'Alain', 'DIAB201'); ")
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/g1501_1600/s1527_patien"
45+
+ "ts_with_a_condition/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(3));
51+
assertThat(resultSet.getNString(2), equalTo("Bob"));
52+
assertThat(resultSet.getNString(3), equalTo("DIAB100 MYOP"));
53+
assertThat(resultSet.next(), equalTo(true));
54+
assertThat(resultSet.getInt(1), equalTo(4));
55+
assertThat(resultSet.getNString(2), equalTo("George"));
56+
assertThat(resultSet.getNString(3), equalTo("ACNE DIAB100"));
57+
assertThat(resultSet.next(), equalTo(false));
58+
}
59+
}
60+
}
61+
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package g1501_1600.s1581_customer_who_visited_but_did_not_make_any_transactions;
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 Visits(visit_id INTEGER PRIMARY KEY, customer_id INTEGER); "
24+
+ "INSERT INTO Visits(visit_id, customer_id) "
25+
+ "VALUES (1, 23); "
26+
+ "INSERT INTO Visits(visit_id, customer_id) "
27+
+ "VALUES (2, 9); "
28+
+ "INSERT INTO Visits(visit_id, customer_id) "
29+
+ "VALUES (4, 30); "
30+
+ "INSERT INTO Visits(visit_id, customer_id) "
31+
+ "VALUES (5, 54); "
32+
+ "INSERT INTO Visits(visit_id, customer_id) "
33+
+ "VALUES (6, 96); "
34+
+ "INSERT INTO Visits(visit_id, customer_id) "
35+
+ "VALUES (7, 54); "
36+
+ "INSERT INTO Visits(visit_id, customer_id) "
37+
+ "VALUES (8, 54); "
38+
+ "CREATE TABLE Transactions(transaction_id INTEGER PRIMARY KEY, visit_id INTEGER, "
39+
+ "amount INTEGER); "
40+
+ "INSERT INTO Transactions(transaction_id, visit_id, amount) "
41+
+ "VALUES (2, 5, 310); "
42+
+ "INSERT INTO Transactions(transaction_id, visit_id, amount) "
43+
+ "VALUES (3, 5, 300); "
44+
+ "INSERT INTO Transactions(transaction_id, visit_id, amount) "
45+
+ "VALUES (9, 5, 200); "
46+
+ "INSERT INTO Transactions(transaction_id, visit_id, amount) "
47+
+ "VALUES (12, 1, 910); "
48+
+ "INSERT INTO Transactions(transaction_id, visit_id, amount) "
49+
+ "VALUES (13, 2, 970); ")
50+
class MysqlTest {
51+
@Test
52+
void testScript(@EmbeddedDatabase DataSource dataSource)
53+
throws SQLException, FileNotFoundException {
54+
try (final Connection connection = dataSource.getConnection()) {
55+
try (final Statement statement = connection.createStatement();
56+
final ResultSet resultSet =
57+
statement.executeQuery(
58+
new BufferedReader(
59+
new FileReader(
60+
"src/main/java/g1501_1600/s1581_customer_who_visi"
61+
+ "ted_but_did_not_make_any_transactions/scr"
62+
+ "ipt.sql"))
63+
.lines()
64+
.collect(Collectors.joining("\n"))
65+
.replaceAll("#.*?\\r?\\n", ""))) {
66+
assertThat(resultSet.next(), equalTo(true));
67+
assertThat(resultSet.getInt(1), equalTo(30));
68+
assertThat(resultSet.getInt(2), equalTo(1));
69+
assertThat(resultSet.next(), equalTo(true));
70+
assertThat(resultSet.getInt(1), equalTo(54));
71+
assertThat(resultSet.getInt(2), equalTo(2));
72+
assertThat(resultSet.next(), equalTo(true));
73+
assertThat(resultSet.getInt(1), equalTo(96));
74+
assertThat(resultSet.getInt(2), equalTo(1));
75+
assertThat(resultSet.next(), equalTo(false));
76+
}
77+
}
78+
}
79+
}

0 commit comments

Comments
 (0)