From 5cf2db55b06ca96cb4448e7c2b46112e9e5d07ad Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 21:57:34 +0200 Subject: [PATCH 1/7] Add integration tests for each repository --- build.gradle.kts | 3 +- .../DeliveryRepositoryIntegrationTest.java | 65 ++++++++++++++++++ .../ItemStorageRepositoryIntegrationTest.java | 64 ++++++++++++++++++ .../LockerRepositoryIntegrationTest.java | 1 - ...arcelContentRepositoryIntegrationTest.java | 57 ++++++++++++++++ .../UserRepositoryIntegrationTest.java | 67 +++++++++++++++++++ 6 files changed, 255 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java create mode 100644 src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java create mode 100644 src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java create mode 100644 src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java diff --git a/build.gradle.kts b/build.gradle.kts index c46f7a62..cf18d623 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ repositories { dependencies { // minecraft development api - compileOnly("org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT") + compileOnly("org.spigotmc:spigot-api:1.21.8-R0.1-SNAPSHOT") implementation("net.kyori:adventure-platform-bukkit:4.4.0") implementation("net.kyori:adventure-text-minimessage:4.23.0") implementation("dev.rollczi:litecommands-bukkit:3.10.2") @@ -80,6 +80,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:5.13.3") testImplementation("org.junit.jupiter:junit-jupiter-params:5.13.3") + testCompileOnly("org.spigotmc:spigot-api:1.21.8-R0.1-SNAPSHOT") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.13.3") testRuntimeOnly("org.junit.platform:junit-platform-launcher") diff --git a/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java new file mode 100644 index 00000000..851c3988 --- /dev/null +++ b/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java @@ -0,0 +1,65 @@ +package com.eternalcode.parcellockers.database; + +import com.eternalcode.parcellockers.TestScheduler; +import com.eternalcode.parcellockers.configuration.ConfigurationManager; +import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration; +import com.eternalcode.parcellockers.delivery.Delivery; +import com.eternalcode.parcellockers.delivery.repository.DeliveryRepository; +import com.eternalcode.parcellockers.delivery.repository.DeliveryRepositoryOrmLite; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; + +import java.io.File; +import java.nio.file.Path; +import java.time.Instant; +import java.util.Optional; +import java.util.UUID; +import java.util.logging.Logger; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Testcontainers +class DeliveryRepositoryIntegrationTest extends IntegrationTestSpec{ + + @Container + private static final MySQLContainer mySQLContainer = new MySQLContainer(DockerImageName.parse("mysql:latest")); + + @TempDir + private Path tempDir; + + private DatabaseManager databaseManager; + + @Test + void test() { + File dataFolder = tempDir.resolve("ParcelLockers").toFile(); + PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + DatabaseManager databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); + this.databaseManager = databaseManager; + DeliveryRepository deliveryRepository = new DeliveryRepositoryOrmLite(databaseManager, new TestScheduler()); + + Delivery delivery = new Delivery(UUID.randomUUID(), Instant.now()); + deliveryRepository.save(delivery); + + Optional deliveryOptional = await(deliveryRepository.find(delivery.parcel())); + assertTrue(deliveryOptional.isPresent(), "Delivery should be present"); + assertEquals(delivery.parcel(), deliveryOptional.get().parcel()); + + deliveryRepository.remove(delivery.parcel()); + Optional removedDelivery = await(deliveryRepository.find(delivery.parcel())); + assertTrue(removedDelivery.isEmpty(), "Delivery should be removed"); + } + + @AfterEach + void tearDown() { + if (this.databaseManager != null) { + this.databaseManager.disconnect(); + } + } + +} diff --git a/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java new file mode 100644 index 00000000..a847bedf --- /dev/null +++ b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java @@ -0,0 +1,64 @@ +package com.eternalcode.parcellockers.database; + +import com.eternalcode.parcellockers.TestScheduler; +import com.eternalcode.parcellockers.configuration.ConfigurationManager; +import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration; +import com.eternalcode.parcellockers.itemstorage.ItemStorage; +import com.eternalcode.parcellockers.itemstorage.repository.ItemStorageRepository; +import com.eternalcode.parcellockers.itemstorage.repository.ItemStorageRepositoryOrmLite; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.utility.DockerImageName; + +import java.io.File; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.logging.Logger; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +class ItemStorageRepositoryIntegrationTest extends IntegrationTestSpec { + + @Container + private static final MySQLContainer mySQLContainer = new MySQLContainer(DockerImageName.parse("mysql:latest")); + + @TempDir + private Path tempDir; + + private DatabaseManager databaseManager; + + @Test + void test() { + File dataFolder = tempDir.resolve("ParcelLockers").toFile(); + PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + this.databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); + ItemStorageRepository itemStorageRepository = new ItemStorageRepositoryOrmLite(databaseManager, new TestScheduler()); + + ItemStorage itemStorage = new ItemStorage(UUID.randomUUID(), List.of(new ItemStack(Material.GOLD_BLOCK, 64))); + itemStorageRepository.save(itemStorage); + Optional retrievedItemStorage = await(itemStorageRepository.find(itemStorage.owner())); + assertTrue(retrievedItemStorage.isPresent(), "ItemStorage should be present"); + assertTrue(retrievedItemStorage.get().items().contains(new ItemStack(Material.GOLD_BLOCK, 64)), + "ItemStorage should contain the saved item"); + + itemStorageRepository.remove(itemStorage.owner()); + Optional removedItemStorage = await(itemStorageRepository.find(itemStorage.owner())); + assertTrue(removedItemStorage.isEmpty(), "ItemStorage should be removed"); + } + + + @AfterEach + void tearDown() { + if (this.databaseManager != null) { + this.databaseManager.disconnect(); + } + } + +} diff --git a/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java index 4412f7e1..dbd5ec86 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java @@ -52,7 +52,6 @@ void test() { String description = "Parcel locker description."; Position position = new Position(1, 2, 3, "world"); - parcelLockerRepository.save(new Locker(uuid, description, position)); Optional parcelLocker = await(parcelLockerRepository.findByUUID(uuid)); diff --git a/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java new file mode 100644 index 00000000..5fce78c5 --- /dev/null +++ b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java @@ -0,0 +1,57 @@ +package com.eternalcode.parcellockers.database; + +import com.eternalcode.parcellockers.TestScheduler; +import com.eternalcode.parcellockers.configuration.ConfigurationManager; +import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration; +import com.eternalcode.parcellockers.content.ParcelContent; +import com.eternalcode.parcellockers.content.repository.ParcelContentRepository; +import com.eternalcode.parcellockers.content.repository.ParcelContentRepositoryOrmLite; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.io.File; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.logging.Logger; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class ParcelContentRepositoryIntegrationTest extends IntegrationTestSpec { + + @TempDir + private Path tempDir; + + private DatabaseManager databaseManager; + + @Test + void test() { + File dataFolder = tempDir.resolve("ParcelLockers").toFile(); + PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + this.databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); + + ParcelContentRepository parcelContentRepository = new ParcelContentRepositoryOrmLite(databaseManager, new TestScheduler()); + + ParcelContent parcelContent = new ParcelContent(UUID.randomUUID(), List.of(new ItemStack(Material.GOLD_BLOCK, 64))); + parcelContentRepository.save(parcelContent); + Optional retrievedParcelContent = await(parcelContentRepository.findByUUID(parcelContent.uniqueId())); + assertTrue(retrievedParcelContent.isPresent(), "ParcelContent should be present"); + + parcelContentRepository.remove(parcelContent.uniqueId()); + Optional removedParcelContent = await(parcelContentRepository.findByUUID(parcelContent.uniqueId())); + assertFalse(removedParcelContent.isPresent(), "ParcelContent should be removed"); + } + + @AfterEach + void tearDown() { + if (this.databaseManager != null) { + this.databaseManager.disconnect(); + } + } + +} diff --git a/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java new file mode 100644 index 00000000..ca194865 --- /dev/null +++ b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java @@ -0,0 +1,67 @@ +package com.eternalcode.parcellockers.database; + +import com.eternalcode.parcellockers.TestScheduler; +import com.eternalcode.parcellockers.configuration.ConfigurationManager; +import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration; +import com.eternalcode.parcellockers.shared.Page; +import com.eternalcode.parcellockers.user.User; +import com.eternalcode.parcellockers.user.repository.UserRepository; +import com.eternalcode.parcellockers.user.repository.UserRepositoryOrmLite; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.io.File; +import java.nio.file.Path; +import java.util.Optional; +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Testcontainers +class UserRepositoryIntegrationTest extends IntegrationTestSpec { + + @Container + private static final MySQLContainer container = new MySQLContainer(); + + @TempDir + private Path tempDir; + + private DatabaseManager databaseManager; + + @Test + void test() { + File dataFolder = tempDir.resolve("ParcelLockers").toFile(); + PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + DatabaseManager databaseManager = new DatabaseManager(config, null, dataFolder); + this.databaseManager = databaseManager; + + UserRepository userRepository = new UserRepositoryOrmLite(databaseManager, new TestScheduler()); + + UUID userUuid = UUID.randomUUID(); + String username = "testUser"; + User user = new User(userUuid, username); + + userRepository.save(user); + + Optional userOptional = await(userRepository.getUser(userUuid)); + assertTrue(userOptional.isPresent()); + User retrievedUser = userOptional.get(); + assertEquals(retrievedUser.uuid(), userUuid); + + userRepository.getPage(new Page(0, 10)) + .thenAccept(userPageResult -> assertTrue(userPageResult.users().stream().anyMatch(u -> u.uuid().equals(userUuid)))); + } + + @AfterEach + void tearDown() { + if (this.databaseManager != null) { + this.databaseManager.disconnect(); + } + } + +} From 83bc093867b22b7f8d63429463dcde23820f20eb Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:05:24 +0200 Subject: [PATCH 2/7] Adjust to coderabbit suggestions --- .../database/UserRepositoryIntegrationTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java index ca194865..f0cd571a 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java @@ -5,6 +5,7 @@ import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration; import com.eternalcode.parcellockers.shared.Page; import com.eternalcode.parcellockers.user.User; +import com.eternalcode.parcellockers.user.repository.UserPageResult; import com.eternalcode.parcellockers.user.repository.UserRepository; import com.eternalcode.parcellockers.user.repository.UserRepositoryOrmLite; import org.junit.jupiter.api.AfterEach; @@ -53,8 +54,8 @@ void test() { User retrievedUser = userOptional.get(); assertEquals(retrievedUser.uuid(), userUuid); - userRepository.getPage(new Page(0, 10)) - .thenAccept(userPageResult -> assertTrue(userPageResult.users().stream().anyMatch(u -> u.uuid().equals(userUuid)))); + UserPageResult pageResult = await(userRepository.getPage(new Page(0, 10))); + assertTrue(pageResult.users().stream().anyMatch(u -> u.uuid().equals(userUuid))); } @AfterEach From b4c8b623c433282813c96f718c3bb2eef371423d Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:05:44 +0200 Subject: [PATCH 3/7] Change runServer minecraftVersion property to 1.21.8 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index cf18d623..33baf6ea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -113,7 +113,7 @@ tasks.withType { tasks { runServer { - minecraftVersion("1.21.7") + minecraftVersion("1.21.8") } clean { From 1bf656ea274643e42af324867cb910ad0ce5613f Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:10:59 +0200 Subject: [PATCH 4/7] Add missing @Testcontainers annotations --- .../database/ItemStorageRepositoryIntegrationTest.java | 2 ++ .../database/ParcelContentRepositoryIntegrationTest.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java index a847bedf..e54f4c19 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java @@ -13,6 +13,7 @@ import org.junit.jupiter.api.io.TempDir; import org.testcontainers.containers.MySQLContainer; import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.File; @@ -24,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; +@Testcontainers class ItemStorageRepositoryIntegrationTest extends IntegrationTestSpec { @Container diff --git a/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java index 5fce78c5..6a7dc830 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java @@ -11,6 +11,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; import java.nio.file.Path; @@ -22,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +@Testcontainers class ParcelContentRepositoryIntegrationTest extends IntegrationTestSpec { @TempDir From 1956385d7e8fceec40684b67a37a2c724e770bfa Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:24:09 +0200 Subject: [PATCH 5/7] Revert minecraftVersion to 1.21.7 --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 33baf6ea..91b27d9f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ repositories { dependencies { // minecraft development api - compileOnly("org.spigotmc:spigot-api:1.21.8-R0.1-SNAPSHOT") + compileOnly("org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT") implementation("net.kyori:adventure-platform-bukkit:4.4.0") implementation("net.kyori:adventure-text-minimessage:4.23.0") implementation("dev.rollczi:litecommands-bukkit:3.10.2") @@ -80,7 +80,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:5.13.3") testImplementation("org.junit.jupiter:junit-jupiter-params:5.13.3") - testCompileOnly("org.spigotmc:spigot-api:1.21.8-R0.1-SNAPSHOT") + testCompileOnly("org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.13.3") testRuntimeOnly("org.junit.platform:junit-platform-launcher") @@ -113,7 +113,7 @@ tasks.withType { tasks { runServer { - minecraftVersion("1.21.8") + minecraftVersion("1.21.7") } clean { From 03cef34bfdf89588c105209d9bcc70c9e8b96799 Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:30:04 +0200 Subject: [PATCH 6/7] Downgrade minecraft to 1.21.5 due to adventure incompatibility --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 91b27d9f..de466a59 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ repositories { dependencies { // minecraft development api - compileOnly("org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT") + compileOnly("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT") implementation("net.kyori:adventure-platform-bukkit:4.4.0") implementation("net.kyori:adventure-text-minimessage:4.23.0") implementation("dev.rollczi:litecommands-bukkit:3.10.2") @@ -80,7 +80,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:5.13.3") testImplementation("org.junit.jupiter:junit-jupiter-params:5.13.3") - testCompileOnly("org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT") + testCompileOnly("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.13.3") testRuntimeOnly("org.junit.platform:junit-platform-launcher") @@ -113,7 +113,7 @@ tasks.withType { tasks { runServer { - minecraftVersion("1.21.7") + minecraftVersion("1.21.5") } clean { From 5526bf437fd3e52761808b9c02e9d6f947fce580 Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Tue, 22 Jul 2025 13:48:08 +0200 Subject: [PATCH 7/7] Explicitly specify the database type as MYSQL in config --- build.gradle.kts | 7 +++++-- .../database/DeliveryRepositoryIntegrationTest.java | 1 + .../database/ItemStorageRepositoryIntegrationTest.java | 1 + .../database/LockerRepositoryIntegrationTest.java | 1 + .../database/ParcelContentRepositoryIntegrationTest.java | 6 ++++++ .../database/ParcelRepositoryIntegrationTest.java | 1 + .../database/UserRepositoryIntegrationTest.java | 1 + 7 files changed, 16 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index de466a59..c698384b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -80,13 +80,16 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:5.13.3") testImplementation("org.junit.jupiter:junit-jupiter-params:5.13.3") - testCompileOnly("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.13.3") testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation("org.testcontainers:junit-jupiter:1.21.3") testImplementation("org.testcontainers:mysql:1.21.3") testImplementation("mysql:mysql-connector-java:8.0.33") + + testImplementation("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT") + testImplementation("net.kyori:adventure-platform-bukkit:4.4.0") + testImplementation("net.kyori:adventure-text-minimessage:4.23.0") + testImplementation("net.dzikoysk:cdn:1.14.9") } java { diff --git a/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java index 851c3988..e83679f3 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/DeliveryRepositoryIntegrationTest.java @@ -39,6 +39,7 @@ class DeliveryRepositoryIntegrationTest extends IntegrationTestSpec{ void test() { File dataFolder = tempDir.resolve("ParcelLockers").toFile(); PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + config.settings.databaseType = DatabaseType.MYSQL; DatabaseManager databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); this.databaseManager = databaseManager; DeliveryRepository deliveryRepository = new DeliveryRepositoryOrmLite(databaseManager, new TestScheduler()); diff --git a/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java index e54f4c19..9cd20a40 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/ItemStorageRepositoryIntegrationTest.java @@ -40,6 +40,7 @@ class ItemStorageRepositoryIntegrationTest extends IntegrationTestSpec { void test() { File dataFolder = tempDir.resolve("ParcelLockers").toFile(); PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + config.settings.databaseType = DatabaseType.MYSQL; this.databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); ItemStorageRepository itemStorageRepository = new ItemStorageRepositoryOrmLite(databaseManager, new TestScheduler()); diff --git a/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java index dbd5ec86..ef2eca4f 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/LockerRepositoryIntegrationTest.java @@ -42,6 +42,7 @@ class LockerRepositoryIntegrationTest extends IntegrationTestSpec { void test() { File dataFolder = tempDir.resolve("ParcelLockers").toFile(); PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + config.settings.databaseType = DatabaseType.MYSQL; DatabaseManager databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); this.databaseManager = databaseManager; LockerCache cache = new LockerCache(); diff --git a/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java index 6a7dc830..75a7f6af 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/ParcelContentRepositoryIntegrationTest.java @@ -11,7 +11,10 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; import java.io.File; import java.nio.file.Path; @@ -26,6 +29,9 @@ @Testcontainers class ParcelContentRepositoryIntegrationTest extends IntegrationTestSpec { + @Container + private static final MySQLContainer mySQLContainer = new MySQLContainer(DockerImageName.parse("mysql:latest")); + @TempDir private Path tempDir; diff --git a/src/test/java/com/eternalcode/parcellockers/database/ParcelRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/ParcelRepositoryIntegrationTest.java index c0220f4a..cf4493ce 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/ParcelRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/ParcelRepositoryIntegrationTest.java @@ -45,6 +45,7 @@ class ParcelRepositoryIntegrationTest extends IntegrationTestSpec { void test() { File dataFolder = tempDir.resolve("ParcelLockers").toFile(); PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + config.settings.databaseType = DatabaseType.MYSQL; DatabaseManager databaseManager = new DatabaseManager(config, Logger.getLogger("ParcelLockers"), dataFolder); this.databaseManager = databaseManager; ParcelCache cache = new ParcelCache(); diff --git a/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java index f0cd571a..f409cebc 100644 --- a/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java +++ b/src/test/java/com/eternalcode/parcellockers/database/UserRepositoryIntegrationTest.java @@ -38,6 +38,7 @@ class UserRepositoryIntegrationTest extends IntegrationTestSpec { void test() { File dataFolder = tempDir.resolve("ParcelLockers").toFile(); PluginConfiguration config = new ConfigurationManager(dataFolder).load(new PluginConfiguration()); + config.settings.databaseType = DatabaseType.MYSQL; DatabaseManager databaseManager = new DatabaseManager(config, null, dataFolder); this.databaseManager = databaseManager;