Implement more tests for regen command

This commit is contained in:
Ben Woo 2025-01-05 10:43:55 +08:00
parent 5a90d51e36
commit e492c2801e
2 changed files with 64 additions and 4 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

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