From 7e701b1f6f116331d2d163e59c1d03df7e9995c4 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Mon, 9 Oct 2023 19:14:50 +0300 Subject: [PATCH 1/2] Improved tasks 183, 184 --- .../MysqlTest.java | 56 ++++++++++++++++ .../MysqlTest.java | 65 +++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java create mode 100644 src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java diff --git a/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java b/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java new file mode 100644 index 000000000..03b04d3ab --- /dev/null +++ b/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java @@ -0,0 +1,56 @@ +package g0101_0200.s0183_customers_who_never_order; + +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; +import org.zapodot.junit.db.common.Engine; + +@EmbeddedDatabaseTest( + engine = Engine.H2, + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = + "CREATE TABLE Customers(id INTEGER PRIMARY KEY, name VARCHAR); " + + "INSERT INTO Customers(id, name) VALUES (1, 'Joe'); " + + "INSERT INTO Customers(id, name) VALUES (2, 'Henry'); " + + "INSERT INTO Customers(id, name) VALUES (3, 'Sam'); " + + "INSERT INTO Customers(id, name) VALUES (4, 'Max'); " + + "CREATE TABLE Orders(id INTEGER, customerId INTEGER); " + + "INSERT INTO Orders(id, customerId) VALUES (1, 3); " + + "INSERT INTO Orders(id, customerId) VALUES (2, 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/g0101_0200/" + + "s0183_customers_who_never_order/script.sql")) + .lines() + .collect(Collectors.joining("\n")) + .replaceAll("#.*?\\r?\\n", ""))) { + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("Henry")) + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("Max")) + assertThat(resultSet.next(), equalTo(false)); + } + } + } +} diff --git a/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java b/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java new file mode 100644 index 000000000..dffe3c52a --- /dev/null +++ b/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java @@ -0,0 +1,65 @@ +package g0101_0200.s0184_department_highest_salary; + +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; +import org.zapodot.junit.db.common.Engine; + +@EmbeddedDatabaseTest( + engine = Engine.H2, + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = + "CREATE TABLE Employee(id INTEGER PRIMARY KEY, name VARCHAR, salary INTEGER, departmentId INTEGER); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (1, 'Joe', 70000, 1); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (2, 'Jim', 90000, 1); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (3, 'Henry', 80000, 2); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (4, 'Sam', 60000, 2); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (5, 'Max', 90000, 1); " + + "CREATE TABLE Department(id INTEGER, name VARCHAR); " + + "INSERT INTO Department(id, name) VALUES (1, 'IT'); " + + "INSERT INTO Department(id, name) VALUES (2, 'Sales'); ") +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/g0101_0200/" + + "s0184_department_highest_salary/script.sql")) + .lines() + .collect(Collectors.joining("\n")) + .replaceAll("#.*?\\r?\\n", ""))) { + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("IT")); + assertThat(resultSet.getNString(2), equalTo("Jim")); + assertThat(resultSet.getInt(3), equalTo(90000)); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("Sales")); + assertThat(resultSet.getNString(2), equalTo("Henry")); + assertThat(resultSet.getInt(3), equalTo(80000)); + assertThat(resultSet.next(), equalTo(true)); + assertThat(resultSet.getNString(1), equalTo("IT")); + assertThat(resultSet.getNString(2), equalTo("Max")); + assertThat(resultSet.getInt(3), equalTo(90000)); + assertThat(resultSet.next(), equalTo(false)); + } + } + } +} From fc029da4b7bfe96974832e0fd686c293df90bee7 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Mon, 9 Oct 2023 19:20:04 +0300 Subject: [PATCH 2/2] Fixed style --- .../MysqlTest.java | 20 +++++++++---------- .../MysqlTest.java | 18 ++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java b/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java index 03b04d3ab..659ded5f6 100644 --- a/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java +++ b/src/test/java/g0101_0200/s0183_customers_who_never_order/MysqlTest.java @@ -22,14 +22,14 @@ engine = Engine.H2, compatibilityMode = CompatibilityMode.MySQL, initialSqls = - "CREATE TABLE Customers(id INTEGER PRIMARY KEY, name VARCHAR); " + - "INSERT INTO Customers(id, name) VALUES (1, 'Joe'); " + - "INSERT INTO Customers(id, name) VALUES (2, 'Henry'); " + - "INSERT INTO Customers(id, name) VALUES (3, 'Sam'); " + - "INSERT INTO Customers(id, name) VALUES (4, 'Max'); " + - "CREATE TABLE Orders(id INTEGER, customerId INTEGER); " + - "INSERT INTO Orders(id, customerId) VALUES (1, 3); " + - "INSERT INTO Orders(id, customerId) VALUES (2, 1); ") + "CREATE TABLE Customers(id INTEGER PRIMARY KEY, name VARCHAR); " + + "INSERT INTO Customers(id, name) VALUES (1, 'Joe'); " + + "INSERT INTO Customers(id, name) VALUES (2, 'Henry'); " + + "INSERT INTO Customers(id, name) VALUES (3, 'Sam'); " + + "INSERT INTO Customers(id, name) VALUES (4, 'Max'); " + + "CREATE TABLE Orders(id INTEGER, customerId INTEGER); " + + "INSERT INTO Orders(id, customerId) VALUES (1, 3); " + + "INSERT INTO Orders(id, customerId) VALUES (2, 1); ") class MysqlTest { @Test void testScript(@EmbeddedDatabase DataSource dataSource) @@ -46,9 +46,9 @@ void testScript(@EmbeddedDatabase DataSource dataSource) .collect(Collectors.joining("\n")) .replaceAll("#.*?\\r?\\n", ""))) { assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("Henry")) + assertThat(resultSet.getNString(1), equalTo("Henry")); assertThat(resultSet.next(), equalTo(true)); - assertThat(resultSet.getNString(1), equalTo("Max")) + assertThat(resultSet.getNString(1), equalTo("Max")); assertThat(resultSet.next(), equalTo(false)); } } diff --git a/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java b/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java index dffe3c52a..a1a49aed8 100644 --- a/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java +++ b/src/test/java/g0101_0200/s0184_department_highest_salary/MysqlTest.java @@ -22,15 +22,15 @@ engine = Engine.H2, compatibilityMode = CompatibilityMode.MySQL, initialSqls = - "CREATE TABLE Employee(id INTEGER PRIMARY KEY, name VARCHAR, salary INTEGER, departmentId INTEGER); " + - "INSERT INTO Employee(id, name, salary, departmentId) VALUES (1, 'Joe', 70000, 1); " + - "INSERT INTO Employee(id, name, salary, departmentId) VALUES (2, 'Jim', 90000, 1); " + - "INSERT INTO Employee(id, name, salary, departmentId) VALUES (3, 'Henry', 80000, 2); " + - "INSERT INTO Employee(id, name, salary, departmentId) VALUES (4, 'Sam', 60000, 2); " + - "INSERT INTO Employee(id, name, salary, departmentId) VALUES (5, 'Max', 90000, 1); " + - "CREATE TABLE Department(id INTEGER, name VARCHAR); " + - "INSERT INTO Department(id, name) VALUES (1, 'IT'); " + - "INSERT INTO Department(id, name) VALUES (2, 'Sales'); ") + "CREATE TABLE Employee(id INTEGER PRIMARY KEY, name VARCHAR, salary INTEGER, departmentId INTEGER); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (1, 'Joe', 70000, 1); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (2, 'Jim', 90000, 1); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (3, 'Henry', 80000, 2); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (4, 'Sam', 60000, 2); " + + "INSERT INTO Employee(id, name, salary, departmentId) VALUES (5, 'Max', 90000, 1); " + + "CREATE TABLE Department(id INTEGER, name VARCHAR); " + + "INSERT INTO Department(id, name) VALUES (1, 'IT'); " + + "INSERT INTO Department(id, name) VALUES (2, 'Sales'); ") class MysqlTest { @Test void testScript(@EmbeddedDatabase DataSource dataSource)