Merge pull request #3147 from Multiverse/ben/mv5/regen-test

Implement tests for regen command
This commit is contained in:
Ben Woo 2025-01-05 10:48:52 +08:00 committed by GitHub
commit 50ed9e29d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 121 additions and 1 deletions

View File

@ -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'
}

View File

@ -57,6 +57,7 @@ public interface DataStore<T> {
gameRuleMap.put(gameRuleEnum, bukkitWorld.getGameRuleValue(gameRuleEnum));
}
});
Logging.finer("Copied " + gameRuleMap.size() + " game rules from world " + world.getName());
return this;
}

View File

@ -0,0 +1,119 @@
package org.mvplugins.multiverse.core.commands
import org.bukkit.Bukkit
import org.bukkit.GameRule
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld
import org.mvplugins.multiverse.core.world.options.CreateWorldOptions
import kotlin.test.*
class RegenCommandTest : AbstractWorldCommandTest() {
private lateinit var testWorld : LoadedMultiverseWorld
@BeforeTest
fun setUp() {
testWorld = worldManager.createWorld(CreateWorldOptions.worldName("test")).get()
}
@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)
}
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)
}
}