From 7779373349642a27531844d5d44251af06f208d4 Mon Sep 17 00:00:00 2001 From: ThanhNIT Date: 2022年7月21日 00:25:01 +0700 Subject: [PATCH 1/5] Added tests for tasks 620, 626, 1050 --- .../s0620_not_boring_movies/script.sql | 2 +- .../s0620_not_boring_movies/MysqlTest.java | 63 +++++++++++++++++ .../s0626_exchange_seats/MysqlTest.java | 67 +++++++++++++++++++ .../MysqlTest.java | 59 ++++++++++++++++ 4 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java create mode 100644 src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java create mode 100644 src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java diff --git a/src/main/java/g0601_0700/s0620_not_boring_movies/script.sql b/src/main/java/g0601_0700/s0620_not_boring_movies/script.sql index e8e32d424..07498b6ce 100644 --- a/src/main/java/g0601_0700/s0620_not_boring_movies/script.sql +++ b/src/main/java/g0601_0700/s0620_not_boring_movies/script.sql @@ -2,6 +2,6 @@ # #Easy #Database #2022_03_21_Time_258_ms_(28.33%)_Space_0B_(100.00%) SELECT * FROM cinema -WHERE description != "boring" +WHERE description != 'boring' AND ID % 2 = 1 ORDER BY rating desc; diff --git a/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java new file mode 100644 index 000000000..9c58c065e --- /dev/null +++ b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java @@ -0,0 +1,63 @@ +package g0601_0700.s0620_not_boring_movies; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.stream.Collectors; +import javax.sql.DataSource; +import org.junit.jupiter.api.Test; +import org.zapodot.junit.db.annotations.EmbeddedDatabase; +import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest; +import org.zapodot.junit.db.common.CompatibilityMode; + +@EmbeddedDatabaseTest( + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = + "CREATE TABLE cinema(id INTEGER PRIMARY KEY, movie VARCHAR(512)" + + ", description VARCHAR(512), rating FLOAT); " + + "INSERT INTO cinema(id, movie, description, rating) " + + "VALUES (1, 'War', 'great 3D', 8.9); " + + "INSERT INTO cinema(id, movie, description, rating) " + + "VALUES (2, 'Science', 'fiction', 8.5); " + + "INSERT INTO cinema(id, movie, description, rating) " + + "VALUES (3, 'irish', 'boring', 6.2); " + + "INSERT INTO cinema(id, movie, description, rating) " + + "VALUES (4, 'Ice song', 'Fantacy', 8.6);" + + "INSERT INTO cinema(id, movie, description, rating) " + + "VALUES (5, 'House card', 'Interesting', 9.1);") +class MysqlTest { + @Test + void testScript(@EmbeddedDatabase DataSource dataSource) + throws SQLException, FileNotFoundException { + try (final Connection connection = dataSource.getConnection()) { + try (final Statement statement = connection.createStatement(); + final ResultSet resultSet = + statement.executeQuery( + new BufferedReader( + new FileReader( + "src/main/java/g0601_0700/s0620_not_boring_movies/script.sql")) + .lines() + .collect(Collectors.joining("\n")) + .replaceAll("#.*?\\r?\\n", ""))) { + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("5")); + assertThat(resultSet.getNString(2), equalTo("House card")); + assertThat(resultSet.getNString(3), equalTo("Interesting")); + assertThat(resultSet.getNString(4), equalTo("9.1")); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("1")); + assertThat(resultSet.getNString(2), equalTo("War")); + assertThat(resultSet.getNString(3), equalTo("great 3D")); + assertThat(resultSet.getNString(4), equalTo("8.9")); + assertThat(resultSet.next(), equalTo(false)); + } + } + } +} diff --git a/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java new file mode 100644 index 000000000..0b3ec8fed --- /dev/null +++ b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java @@ -0,0 +1,67 @@ +package g0601_0700.s0626_exchange_seats; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.stream.Collectors; +import javax.sql.DataSource; +import org.junit.jupiter.api.Test; +import org.zapodot.junit.db.annotations.EmbeddedDatabase; +import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest; +import org.zapodot.junit.db.common.CompatibilityMode; + +@EmbeddedDatabaseTest( + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = + "CREATE TABLE seat(id INTEGER PRIMARY KEY, student VARCHAR(512));" + + "INSERT INTO seat(id, student) " + + "VALUES (1, 'Abbot'); " + + "INSERT INTO seat(id, student) " + + "VALUES (2, 'Doris'); " + + "INSERT INTO seat(id, student) " + + "VALUES (3, 'Emerson'); " + + "INSERT INTO seat(id, student) " + + "VALUES (4, 'Green'); " + + "INSERT INTO seat(id, student) " + + "VALUES (5, 'Jeames'); ") +class MysqlTest { + @Test + void testScript(@EmbeddedDatabase DataSource dataSource) + throws SQLException, FileNotFoundException { + try (final Connection connection = dataSource.getConnection()) { + try (final Statement statement = connection.createStatement(); + final ResultSet resultSet = + statement.executeQuery( + new BufferedReader( + new FileReader( + "src/main/java/g0601_0700/s0626_exchange_seats/script.sql")) + .lines() + .collect(Collectors.joining("\n")) + .replaceAll("#.*?\\r?\\n", ""))) { + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("1")); + assertThat(resultSet.getNString(2), equalTo("Doris")); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("2")); + assertThat(resultSet.getNString(2), equalTo("Abbot")); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("3")); + assertThat(resultSet.getNString(2), equalTo("Green")); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("4")); + assertThat(resultSet.getNString(2), equalTo("Emerson")); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("5")); + assertThat(resultSet.getNString(2), equalTo("Jeames")); + assertThat(resultSet.next(), equalTo(false)); + } + } + } +} diff --git a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java new file mode 100644 index 000000000..0cad7e57e --- /dev/null +++ b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java @@ -0,0 +1,59 @@ +package g1001_1100.s1050_actors_and_directors_who_cooperated_at_least_three_times; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.stream.Collectors; +import javax.sql.DataSource; +import org.junit.jupiter.api.Test; +import org.zapodot.junit.db.annotations.EmbeddedDatabase; +import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest; +import org.zapodot.junit.db.common.CompatibilityMode; + +@EmbeddedDatabaseTest( + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = + "CREATE TABLE ACTORDIRECTOR(actor_id INTEGER, director_id INTEGER, timestamp INTEGER PRIMARY KEY); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 1,0); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 1,1); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 1,2); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 2,3); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 2,4); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (1, 1,5); " + + "INSERT INTO ACTORDIRECTOR(actor_id, director_id, timestamp) " + + "VALUES (2, 1,6); ") +class MysqlTest { + @Test + void testScript(@EmbeddedDatabase DataSource dataSource) + throws SQLException, FileNotFoundException { + try (final Connection connection = dataSource.getConnection()) { + try (final Statement statement = connection.createStatement(); + final ResultSet resultSet = + statement.executeQuery( + new BufferedReader( + new FileReader( + "src/main/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/script.sql")) + .lines() + .collect(Collectors.joining("\n")) + .replaceAll("#.*?\\r?\\n", ""))) { + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("1")); + assertThat(resultSet.getNString(2), equalTo("1")); + assertThat(resultSet.next(), equalTo(false)); + } + } + } +} From 0a95f52dfcf0d14e09a6191ebc67f09da71e1760 Mon Sep 17 00:00:00 2001 From: ThanhNIT Date: 2022年7月21日 00:39:59 +0700 Subject: [PATCH 2/5] fix comments --- .../s0620_not_boring_movies/MysqlTest.java | 4 ++-- .../g0601_0700/s0626_exchange_seats/MysqlTest.java | 13 +++++++------ .../MysqlTest.java | 4 +++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java index 9c58c065e..68baa7f43 100644 --- a/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java +++ b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java @@ -47,12 +47,12 @@ void testScript(@EmbeddedDatabase DataSource dataSource) .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("5")); + assertThat(resultSet.getInt(1), equalTo(5)); assertThat(resultSet.getNString(2), equalTo("House card")); assertThat(resultSet.getNString(3), equalTo("Interesting")); assertThat(resultSet.getNString(4), equalTo("9.1")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("1")); + assertThat(resultSet.getInt(1), equalTo(1)); assertThat(resultSet.getNString(2), equalTo("War")); assertThat(resultSet.getNString(3), equalTo("great 3D")); assertThat(resultSet.getNString(4), equalTo("8.9")); diff --git a/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java index 0b3ec8fed..7faa031a1 100644 --- a/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java +++ b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java @@ -41,24 +41,25 @@ void testScript(@EmbeddedDatabase DataSource dataSource) statement.executeQuery( new BufferedReader( new FileReader( - "src/main/java/g0601_0700/s0626_exchange_seats/script.sql")) + "src/main/java/g0601_0700/" + + "s0626_exchange_seats/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("1")); + assertThat(resultSet.getInt(1), equalTo(1)); assertThat(resultSet.getNString(2), equalTo("Doris")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("2")); + assertThat(resultSet.getInt(1), equalTo(2)); assertThat(resultSet.getNString(2), equalTo("Abbot")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("3")); + assertThat(resultSet.getInt(1), equalTo(3)); assertThat(resultSet.getNString(2), equalTo("Green")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("4")); + assertThat(resultSet.getInt(1), equalTo(4)); assertThat(resultSet.getNString(2), equalTo("Emerson")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("5")); + assertThat(resultSet.getInt(1), equalTo(5)); assertThat(resultSet.getNString(2), equalTo("Jeames")); assertThat(resultSet.next(), equalTo(false)); } diff --git a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java index 0cad7e57e..affccd9b5 100644 --- a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java +++ b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java @@ -45,7 +45,9 @@ void testScript(@EmbeddedDatabase DataSource dataSource) statement.executeQuery( new BufferedReader( new FileReader( - "src/main/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/script.sql")) + "src/main/java/g1001_1100/s1050_actors" + + "_and_directors_who_cooperated_at_least" + + "_three_times/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { From 317f09e1ef214f0e9dc99be15b0443804831138b Mon Sep 17 00:00:00 2001 From: ThanhNIT Date: 2022年7月21日 00:46:26 +0700 Subject: [PATCH 3/5] update --- .../java/g0601_0700/s0626_exchange_seats/MysqlTest.java | 4 ++-- .../MysqlTest.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java index 7faa031a1..97fa09c57 100644 --- a/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java +++ b/src/test/java/g0601_0700/s0626_exchange_seats/MysqlTest.java @@ -41,8 +41,8 @@ void testScript(@EmbeddedDatabase DataSource dataSource) statement.executeQuery( new BufferedReader( new FileReader( - "src/main/java/g0601_0700/" + - "s0626_exchange_seats/script.sql")) + "src/main/java/g0601_0700/" + + "s0626_exchange_seats/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { diff --git a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java index affccd9b5..666072882 100644 --- a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java +++ b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java @@ -45,9 +45,9 @@ void testScript(@EmbeddedDatabase DataSource dataSource) statement.executeQuery( new BufferedReader( new FileReader( - "src/main/java/g1001_1100/s1050_actors" + - "_and_directors_who_cooperated_at_least" + - "_three_times/script.sql")) + "src/main/java/g1001_1100/s1050_actors" + + "_and_directors_who_cooperated_at_least" + + "_three_times/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { From 3162937a07b58bb2f5b0b92feb2044b13ad04809 Mon Sep 17 00:00:00 2001 From: ThanhNIT Date: 2022年7月21日 00:51:39 +0700 Subject: [PATCH 4/5] format --- .../java/g0601_0700/s0620_not_boring_movies/MysqlTest.java | 3 ++- .../MysqlTest.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java index 68baa7f43..7dc5047d8 100644 --- a/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java +++ b/src/test/java/g0601_0700/s0620_not_boring_movies/MysqlTest.java @@ -42,7 +42,8 @@ void testScript(@EmbeddedDatabase DataSource dataSource) statement.executeQuery( new BufferedReader( new FileReader( - "src/main/java/g0601_0700/s0620_not_boring_movies/script.sql")) + "src/main/java/g0601_0700/" + + "s0620_not_boring_movies/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { diff --git a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java index 666072882..60dcb2f4f 100644 --- a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java +++ b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java @@ -47,7 +47,7 @@ void testScript(@EmbeddedDatabase DataSource dataSource) new FileReader( "src/main/java/g1001_1100/s1050_actors" + "_and_directors_who_cooperated_at_least" - + "_three_times/script.sql")) + + " _three_times/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { From beac36ef526123a008753b29ebe89d7ecfa5f6ee Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: 2022年7月20日 21:02:30 +0300 Subject: [PATCH 5/5] Update MysqlTest.java --- .../MysqlTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java index 60dcb2f4f..666072882 100644 --- a/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java +++ b/src/test/java/g1001_1100/s1050_actors_and_directors_who_cooperated_at_least_three_times/MysqlTest.java @@ -47,7 +47,7 @@ void testScript(@EmbeddedDatabase DataSource dataSource) new FileReader( "src/main/java/g1001_1100/s1050_actors" + "_and_directors_who_cooperated_at_least" - + " _three_times/script.sql")) + + "_three_times/script.sql")) .lines() .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) {

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