Skip to content

Commit 074255f

Browse files
committed
Fix config changes being applied incorrectly
Affects issues: - Fixed #4514
1 parent 1750082 commit 074255f

4 files changed

Lines changed: 40 additions & 4 deletions

File tree

Plan/common/src/main/java/com/djrapitops/plan/settings/config/changes/ConfigChange.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,7 @@ public MovedValue(String oldPath, String newPath) {
105105
public boolean hasBeenApplied(Config config) {
106106
Optional<ConfigNode> oldNode = config.getNode(oldPath);
107107
Optional<ConfigNode> newNode = config.getNode(newPath);
108-
if (oldNode.isPresent()) {
109-
return false;
110-
}
111-
return newNode.isPresent();
108+
return oldNode.isEmpty() || newNode.isPresent() && !newNode.get().getString().isEmpty();
112109
}
113110

114111
@Override

Plan/common/src/test/java/com/djrapitops/plan/settings/config/changes/ConfigChangeTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,14 @@
2323
import org.junit.jupiter.api.extension.ExtendWith;
2424
import org.junit.jupiter.api.io.TempDir;
2525
import org.mockito.junit.jupiter.MockitoExtension;
26+
import utilities.TestErrorLogger;
27+
import utilities.TestPluginLogger;
28+
import utilities.TestResources;
2629

30+
import java.io.IOException;
31+
import java.nio.file.Files;
2732
import java.nio.file.Path;
33+
import java.util.List;
2834
import java.util.Scanner;
2935

3036
import static org.junit.jupiter.api.Assertions.*;
@@ -145,4 +151,17 @@ void valueIsMoved() {
145151
assertEquals("anotherValue", config.getString("Test.Child"));
146152
}
147153

154+
@Test
155+
void defaultConfigNeedsNoChanges() throws IOException {
156+
config = prepareConfig(new String(TestResources.getJarResourceAsBytes(TestResources.CONFIG_PATH)));
157+
158+
List<String> originalLines = Files.readAllLines(config.getConfigFilePath());
159+
TestPluginLogger logger = new TestPluginLogger();
160+
logger.logMessages(true);
161+
ConfigUpdater updater = new ConfigUpdater(logger, new TestErrorLogger());
162+
updater.applyConfigUpdate(config);
163+
List<String> unmodifiedLines = Files.readAllLines(config.getConfigFilePath());
164+
assertEquals(List.of(), logger.getLogMessages());
165+
assertEquals(originalLines, unmodifiedLines);
166+
}
148167
}

Plan/common/src/testFixtures/java/utilities/TestPluginLogger.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,41 @@
1818

1919
import net.playeranalytics.plugin.server.PluginLogger;
2020

21+
import java.util.ArrayList;
22+
import java.util.List;
23+
2124
public class TestPluginLogger implements PluginLogger {
2225

26+
private final List<String> logMessages = new ArrayList<>();
27+
28+
private boolean addToList = false;
29+
30+
public void logMessages(boolean addToList) {
31+
this.addToList = addToList;
32+
}
33+
34+
public List<String> getLogMessages() {
35+
return logMessages;
36+
}
37+
2338
@Override
2439
public PluginLogger info(String s) {
2540
System.out.println("[INFO] " + s);
41+
if (addToList) logMessages.add(s);
2642
return this;
2743
}
2844

2945
@Override
3046
public PluginLogger warn(String s) {
3147
System.out.println("[WARN] " + s);
48+
if (addToList) logMessages.add(s);
3249
return this;
3350
}
3451

3552
@Override
3653
public PluginLogger error(String s) {
3754
System.out.println("[ERROR] " + s);
55+
if (addToList) logMessages.add(s);
3856
return this;
3957
}
4058

Plan/common/src/testFixtures/java/utilities/TestResources.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
public class TestResources {
3232

33+
public static final String CONFIG_PATH = "/assets/plan/config.yml";
34+
3335
private TestResources() {
3436
/* static method class */
3537
}

0 commit comments

Comments
 (0)