Skip to content

Commit 50ed9e2

Browse files
authored
Merge pull request #3147 from Multiverse/ben/mv5/regen-test
Implement tests for regen command
2 parents 5259f6a + e492c28 commit 50ed9e2

File tree

3 files changed

+121
-1
lines changed

3 files changed

+121
-1
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ dependencies {
136136

137137
// Tests
138138
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21'
139-
testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.22.2'
139+
testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.24.1'
140140
testImplementation('com.googlecode.json-simple:json-simple:1.1.1') {
141141
exclude group: 'junit', module: 'junit'
142142
}

src/main/java/org/mvplugins/multiverse/core/world/helpers/DataStore.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public GameRulesStore copyFrom(LoadedMultiverseWorld world) {
5757
gameRuleMap.put(gameRuleEnum, bukkitWorld.getGameRuleValue(gameRuleEnum));
5858
}
5959
});
60+
Logging.finer("Copied " + gameRuleMap.size() + " game rules from world " + world.getName());
6061
return this;
6162
}
6263

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
package org.mvplugins.multiverse.core.commands
2+
3+
import org.bukkit.Bukkit
4+
import org.bukkit.GameRule
5+
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld
6+
import org.mvplugins.multiverse.core.world.options.CreateWorldOptions
7+
import kotlin.test.*
8+
9+
class RegenCommandTest : AbstractWorldCommandTest() {
10+
11+
private lateinit var testWorld : LoadedMultiverseWorld
12+
13+
@BeforeTest
14+
fun setUp() {
15+
testWorld = worldManager.createWorld(CreateWorldOptions.worldName("test")).get()
16+
}
17+
18+
@Test
19+
fun `Regen world`() {
20+
val previousUID = testWorld.uid
21+
val previousSeed = testWorld.seed
22+
testWorld.scale = 69.5
23+
testWorld.bukkitWorld.map {
24+
it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false)
25+
}
26+
testWorld.bukkitWorld.map {
27+
it.worldBorder.size = 123.4
28+
}
29+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test"))
30+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
31+
32+
val newWorld = worldManager.getLoadedWorld("test").orNull
33+
34+
assertNotNull(newWorld)
35+
assertNotEquals(previousUID, newWorld.uid)
36+
assertEquals(previousSeed, newWorld.seed)
37+
assertEquals(69.5, newWorld.scale)
38+
assertEquals(false, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull)
39+
assertEquals(123.4, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull)
40+
}
41+
42+
@Test
43+
fun `Regen world with specific seed`() {
44+
val previousUID = testWorld.uid
45+
46+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed 456"))
47+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
48+
49+
val newWorld = worldManager.getLoadedWorld("test").orNull
50+
51+
assertNotNull(newWorld)
52+
assertNotEquals(previousUID, newWorld.uid)
53+
assertEquals(456, newWorld.seed)
54+
}
55+
56+
@Test
57+
fun `Regen world with random seed`() {
58+
val previousUID = testWorld.uid
59+
val previousSeed = testWorld.seed
60+
61+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test --seed"))
62+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
63+
64+
val newWorld = worldManager.getLoadedWorld("test").orNull
65+
66+
assertNotNull(newWorld)
67+
assertNotEquals(previousUID, newWorld.uid)
68+
assertNotEquals(previousSeed, newWorld.seed)
69+
}
70+
71+
@Test
72+
fun `Regen world and reset world config`() {
73+
val previousUID = testWorld.uid
74+
testWorld.scale = 69.5
75+
76+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-config"))
77+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
78+
79+
val newWorld = worldManager.getLoadedWorld("test").orNull
80+
81+
assertNotNull(newWorld)
82+
assertNotEquals(previousUID, newWorld.uid)
83+
assertEquals(1.0, newWorld.scale)
84+
}
85+
86+
@Test
87+
fun `Regen world and reset gamerules`() {
88+
val previousUID = testWorld.uid
89+
testWorld.bukkitWorld.map {
90+
it.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false)
91+
}
92+
93+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-gamerules"))
94+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
95+
96+
val newWorld = worldManager.getLoadedWorld("test").orNull
97+
98+
assertNotNull(newWorld)
99+
assertNotEquals(previousUID, newWorld.uid)
100+
assertEquals(true, newWorld.bukkitWorld.map { it.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE) }.orNull)
101+
}
102+
103+
@Test
104+
fun `Regen world and reset world border`() {
105+
val previousUID = testWorld.uid
106+
testWorld.bukkitWorld.map {
107+
it.worldBorder.size = 123.4
108+
}
109+
110+
assertTrue(Bukkit.dispatchCommand(console, "mv regen test --reset-world-border"))
111+
assertTrue(Bukkit.dispatchCommand(console, "mv confirm"))
112+
113+
val newWorld = worldManager.getLoadedWorld("test").orNull
114+
115+
assertNotNull(newWorld)
116+
assertNotEquals(previousUID, newWorld.uid)
117+
assertEquals(6.0E7, newWorld.bukkitWorld.map { it.worldBorder.size }.orNull)
118+
}
119+
}

0 commit comments

Comments
 (0)