From c097e02369390d71997f6bd0764c6bffa49db213 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Sat, 2 Nov 2024 15:49:54 +0200 Subject: [PATCH 1/3] Improved task 3220 --- .../MysqlTest.kt | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt diff --git a/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt new file mode 100644 index 000000000..495ea3407 --- /dev/null +++ b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt @@ -0,0 +1,80 @@ +package g3201_3300.s3220_odd_and_even_transactions + +import org.hamcrest.CoreMatchers +import org.hamcrest.MatcherAssert +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 java.io.BufferedReader +import java.io.FileNotFoundException +import java.io.FileReader +import java.sql.SQLException +import java.util.stream.Collectors +import javax.sql.DataSource + +@EmbeddedDatabaseTest( + compatibilityMode = CompatibilityMode.MySQL, + initialSqls = [ + ( + "CREATE TABLE transactions(transaction_id INTEGER PRIMARY KEY, amount INTEGER" + + ", transaction_date DATE); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (1, 150, '2024-07-01'); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (2, 200, '2024-07-01'); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (3, 75, '2024-07-01'); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (4, 300, '2024-07-02'); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (5, 50, '2024-07-02'); " + + "INSERT INTO transactions(transaction_id, amount, transaction_date)" + + " VALUES (6, 120, '2024-07-03'); " + ) + ] +) +internal class MysqlTest { + @Test + @Throws(SQLException::class, FileNotFoundException::class) + fun testScript(@EmbeddedDatabase dataSource: DataSource) { + dataSource.getConnection().use { connection -> + connection.createStatement().use { statement -> + statement.executeQuery( + BufferedReader( + FileReader( + "src/main/kotlin/g3201_3300/" + + "s3220_odd_and_even_transactions/script.sql" + ) + ) + .lines() + .collect(Collectors.joining("\n")) + .replace("#.*?\\r?\\n".toRegex(), "") + ).use { resultSet -> + MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) + MatcherAssert.assertThat( + resultSet.getNString(1), + CoreMatchers.equalTo("2024-07-01") + ) + MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("75")) + MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("350")) + MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) + MatcherAssert.assertThat( + resultSet.getNString(1), + CoreMatchers.equalTo("2024-07-02") + ) + MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("0")) + MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("350")) + MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) + MatcherAssert.assertThat( + resultSet.getNString(1), + CoreMatchers.equalTo("2024-07-03") + ) + MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("0")) + MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("120")) + MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(false)) + } + } + } + } +} From 2e190a896ea094de70d7d93e28f87ecf5e156237 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Sat, 2 Nov 2024 15:54:29 +0200 Subject: [PATCH 2/3] Improved import --- .../MysqlTest.kt | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt index 495ea3407..309d0d6c9 100644 --- a/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt +++ b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt @@ -1,7 +1,7 @@ package g3201_3300.s3220_odd_and_even_transactions -import org.hamcrest.CoreMatchers -import org.hamcrest.MatcherAssert +import org.hamcrest.CoreMatchers.equalTo +import org.hamcrest.MatcherAssert.assertThat import org.junit.jupiter.api.Test import org.zapodot.junit.db.annotations.EmbeddedDatabase import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest @@ -51,28 +51,28 @@ internal class MysqlTest { .collect(Collectors.joining("\n")) .replace("#.*?\\r?\\n".toRegex(), "") ).use { resultSet -> - MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) - MatcherAssert.assertThat( + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - CoreMatchers.equalTo("2024-07-01") + equalTo("2024-07-01") ) - MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("75")) - MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("350")) - MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) - MatcherAssert.assertThat( + assertThat(resultSet.getNString(2), equalTo("75")) + assertThat(resultSet.getNString(3), equalTo("350")) + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - CoreMatchers.equalTo("2024-07-02") + equalTo("2024-07-02") ) - MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("0")) - MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("350")) - MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(true)) - MatcherAssert.assertThat( + assertThat(resultSet.getNString(2), equalTo("0")) + assertThat(resultSet.getNString(3), equalTo("350")) + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - CoreMatchers.equalTo("2024-07-03") + equalTo("2024-07-03") ) - MatcherAssert.assertThat(resultSet.getNString(2), CoreMatchers.equalTo("0")) - MatcherAssert.assertThat(resultSet.getNString(3), CoreMatchers.equalTo("120")) - MatcherAssert.assertThat(resultSet.next(), CoreMatchers.equalTo(false)) + assertThat(resultSet.getNString(2), equalTo("0")) + assertThat(resultSet.getNString(3), equalTo("120")) + assertThat(resultSet.next(), equalTo(false)) } } } From 9c18334f595eab7077c43868c79c5bfa1be935af Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Sat, 2 Nov 2024 15:57:37 +0200 Subject: [PATCH 3/3] Improved code --- .../MysqlTest.kt | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt index 309d0d6c9..3314d6bfe 100644 --- a/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt +++ b/src/test/kotlin/g3201_3300/s3220_odd_and_even_transactions/MysqlTest.kt @@ -38,7 +38,7 @@ internal class MysqlTest { @Test @Throws(SQLException::class, FileNotFoundException::class) fun testScript(@EmbeddedDatabase dataSource: DataSource) { - dataSource.getConnection().use { connection -> + dataSource.connection.use { connection -> connection.createStatement().use { statement -> statement.executeQuery( BufferedReader( @@ -51,28 +51,28 @@ internal class MysqlTest { .collect(Collectors.joining("\n")) .replace("#.*?\\r?\\n".toRegex(), "") ).use { resultSet -> - assertThat(resultSet.next(), equalTo(true)) - assertThat( + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - equalTo("2024-07-01") + equalTo("2024-07-01") ) - assertThat(resultSet.getNString(2), equalTo("75")) - assertThat(resultSet.getNString(3), equalTo("350")) - assertThat(resultSet.next(), equalTo(true)) - assertThat( + assertThat(resultSet.getNString(2), equalTo("75")) + assertThat(resultSet.getNString(3), equalTo("350")) + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - equalTo("2024-07-02") + equalTo("2024-07-02") ) - assertThat(resultSet.getNString(2), equalTo("0")) - assertThat(resultSet.getNString(3), equalTo("350")) - assertThat(resultSet.next(), equalTo(true)) - assertThat( + assertThat(resultSet.getNString(2), equalTo("0")) + assertThat(resultSet.getNString(3), equalTo("350")) + assertThat(resultSet.next(), equalTo(true)) + assertThat( resultSet.getNString(1), - equalTo("2024-07-03") + equalTo("2024-07-03") ) - assertThat(resultSet.getNString(2), equalTo("0")) - assertThat(resultSet.getNString(3), equalTo("120")) - assertThat(resultSet.next(), equalTo(false)) + assertThat(resultSet.getNString(2), equalTo("0")) + assertThat(resultSet.getNString(3), equalTo("120")) + assertThat(resultSet.next(), equalTo(false)) } } }