refactor: ConfigServiceTest looks normal again
This commit is contained in:
parent
30635b4a21
commit
625383070d
1 changed files with 40 additions and 56 deletions
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue