From 625383070da7b81419b8a97f5fb017a59d6203d7 Mon Sep 17 00:00:00 2001 From: Mei Chang van der Werff Date: Sat, 10 Jan 2026 20:01:43 +0100 Subject: [PATCH] refactor: ConfigServiceTest looks normal again --- .../java/client/scenes/ConfigServiceTest.java | 96 ++++++++----------- 1 file changed, 40 insertions(+), 56 deletions(-) diff --git a/client/src/test/java/client/scenes/ConfigServiceTest.java b/client/src/test/java/client/scenes/ConfigServiceTest.java index ecd8af5..b743339 100644 --- a/client/src/test/java/client/scenes/ConfigServiceTest.java +++ b/client/src/test/java/client/scenes/ConfigServiceTest.java @@ -9,11 +9,15 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import static org.junit.jupiter.api.Assertions.*; + public class ConfigServiceTest { + @TempDir Path tempDir; + private Path configPath; private ConfigService configService; + @BeforeEach void setUp() throws IOException { configPath = tempDir.resolve("configServiceTest.json"); @@ -25,23 +29,17 @@ public class ConfigServiceTest { assertNotNull(configService.getMapper()); assertNotNull(configService.getConfig()); } + @Test public void constructorFileDNETest(){ Path nonExistentPath = tempDir.resolve("DNE.json"); ConfigService newService = new ConfigService(nonExistentPath); + assertNotNull(newService.getConfig()); - assertEquals("en", newService - .getConfig() - .getLanguage()); - assertEquals("http://localhost:8080", newService. - getConfig().getServerUrl()); - assertTrue(newService.getConfig() - .getFavourites() - .isEmpty()); - assertTrue(newService - .getConfig() - .getShoppingList() - .isEmpty()); + assertEquals("en", newService.getConfig().getLanguage()); + assertEquals("http://localhost:8080", newService.getConfig().getServerUrl()); + assertTrue(newService.getConfig().getFavourites().isEmpty()); + assertTrue(newService.getConfig().getShoppingList().isEmpty()); } @Test public void validJsonLoadTest() throws IOException { @@ -53,66 +51,48 @@ public class ConfigServiceTest { "shoppingList": ["milk", "butter"] } """; + Files.writeString(configPath, json); ConfigService loadedService = new ConfigService(configPath); Config loadedConfig = loadedService.getConfig(); - assertEquals("de", loadedConfig - .getLanguage()); - assertEquals("http://example.com:8080", loadedConfig - .getServerUrl()); - assertEquals(2, loadedConfig - .getFavourites() - .size()); - assertTrue(loadedConfig - .getFavourites() - .contains(123L)); - assertTrue(loadedConfig - .getFavourites() - .contains(456L)); - assertEquals(2, loadedConfig - .getShoppingList() - .size()); - assertTrue(loadedConfig - .getShoppingList() - .contains("milk")); - assertTrue(loadedConfig - .getShoppingList() - .contains("butter")); + + assertEquals("de", loadedConfig.getLanguage()); + assertEquals("http://example.com:8080", loadedConfig.getServerUrl()); + assertEquals(2, loadedConfig.getFavourites().size()); + assertTrue(loadedConfig.getFavourites().contains(123L)); + assertTrue(loadedConfig.getFavourites().contains(456L)); + assertEquals(2, loadedConfig.getShoppingList().size()); + assertTrue(loadedConfig.getShoppingList().contains("milk")); + assertTrue(loadedConfig.getShoppingList().contains("butter")); } @Test public void invalidJsonLoadTest() throws IOException { Files.writeString(configPath, "{ invalid json text"); + assertThrows(RuntimeException.class, () -> { ConfigService corruptedService = new ConfigService(configPath); - corruptedService - .getConfig(); + corruptedService.getConfig(); }); } @Test public void safeTest(){ Config realConfig = new Config(); - realConfig - .setLanguage("de"); - realConfig - .setServerUrl("http://example.com:8080"); - realConfig - .addFavourite(1L); - realConfig - .addFavourite(2L); - realConfig - .setShoppingList(List.of("milk", "bread")); - configService - .setConfig(realConfig); - configService - .save(); + + realConfig.setLanguage("de"); + realConfig.setServerUrl("http://example.com:8080"); + realConfig.addFavourite(1L); + realConfig.addFavourite(2L); + realConfig.setShoppingList(List.of("milk", "bread")); + + configService.setConfig(realConfig); + configService.save(); + ConfigService loadedService = new ConfigService(configPath); - Config loadedConfig = loadedService - .getConfig(); + Config loadedConfig = loadedService.getConfig(); + assertEquals("de", loadedConfig.getLanguage()); - assertEquals("http://example.com:8080", loadedConfig - .getServerUrl()); - assertEquals(2, loadedConfig - .getFavourites().size()); + assertEquals("http://example.com:8080", loadedConfig.getServerUrl()); + assertEquals(2, loadedConfig.getFavourites().size()); assertTrue(loadedConfig.getFavourites().contains(1L)); assertTrue(loadedConfig.getFavourites().contains(2L)); assertEquals(2, loadedConfig.getShoppingList().size()); @@ -122,14 +102,18 @@ public class ConfigServiceTest { @Test public void multipleTimesSaveTest(){ Config realConfig = new Config(); + configService.setConfig(realConfig); configService.save(); + realConfig.setLanguage("de"); configService.save(); realConfig.setServerUrl("http://example.com:8080"); configService.save(); + ConfigService loadedService = new ConfigService(configPath); Config loadedConfig = loadedService.getConfig(); + assertEquals("de", loadedConfig.getLanguage()); assertEquals("http://example.com:8080", loadedConfig.getServerUrl()); }