From e492c2801e64f3bddbccc070d82116f504c47a24 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Sun, 5 Jan 2025 10:43:55 +0800 Subject: [PATCH] Implement more tests for regen command --- build.gradle | 2 +- .../core/commands/RegenCommandTest.kt | 66 ++++++++++++++++++- 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index f351a308..64d2d22a 100644 --- a/build.gradle +++ b/build.gradle @@ -136,7 +136,7 @@ dependencies { // Tests testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21' - testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.22.2' + testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.24.1' testImplementation('com.googlecode.json-simple:json-simple:1.1.1') { exclude group: 'junit', module: 'junit' } diff --git a/src/test/java/org/mvplugins/multiverse/core/commands/RegenCommandTest.kt b/src/test/java/org/mvplugins/multiverse/core/commands/RegenCommandTest.kt index 76a4b34f..649f4531 100644 --- a/src/test/java/org/mvplugins/multiverse/core/commands/RegenCommandTest.kt +++ b/src/test/java/org/mvplugins/multiverse/core/commands/RegenCommandTest.kt @@ -15,45 +15,105 @@ class RegenCommandTest : AbstractWorldCommandTest() { testWorld = worldManager.createWorld(CreateWorldOptions.worldName("test")).get() } - @Ignore //todo: Waiting for mockbukkit getGamerules bug to be fixed @Test fun `Regen world`() { + val previousUID = testWorld.uid + val previousSeed = testWorld.seed testWorld.scale = 69.5 testWorld.bukkitWorld.map { it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false) } - val previousSeed = testWorld.seed - + testWorld.bukkitWorld.map { + it.worldBorder.size = 123.4 + } assertTrue(Bukkit.dispatchCommand(console, "mv regen test")) assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + val newWorld = worldManager.getLoadedWorld("test").orNull + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) assertEquals(previousSeed, newWorld.seed) assertEquals(69.5, newWorld.scale) assertEquals(false, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull) + assertEquals(123.4, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull) + } + + @Test + fun `Regen world with specific seed`() { + val previousUID = testWorld.uid + + assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed 456")) + assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + + val newWorld = worldManager.getLoadedWorld("test").orNull + + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) + assertEquals(456, newWorld.seed) + } + + @Test + fun `Regen world with random seed`() { + val previousUID = testWorld.uid + val previousSeed = testWorld.seed + + assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed")) + assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + + val newWorld = worldManager.getLoadedWorld("test").orNull + + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) + assertNotEquals(previousSeed, newWorld.seed) } @Test fun `Regen world and reset world config`() { + val previousUID = testWorld.uid testWorld.scale = 69.5 assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-config")) assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + val newWorld = worldManager.getLoadedWorld("test").orNull + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) assertEquals(1.0, newWorld.scale) } @Test fun `Regen world and reset gamerules`() { + val previousUID = testWorld.uid testWorld.bukkitWorld.map { it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false) } assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-gamerules")) assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + val newWorld = worldManager.getLoadedWorld("test").orNull + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) assertEquals(true, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull) } + + @Test + fun `Regen world and reset world border`() { + val previousUID = testWorld.uid + testWorld.bukkitWorld.map { + it.worldBorder.size = 123.4 + } + + assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-border")) + assertTrue(Bukkit.dispatchCommand(console, "mv confirm")) + + val newWorld = worldManager.getLoadedWorld("test").orNull + + assertNotNull(newWorld) + assertNotEquals(previousUID, newWorld.uid) + assertEquals(6.0E7, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull) + } }