diff --git a/client/src/main/java/client/utils/Config.java b/client/src/main/java/client/utils/Config.java index 1d879a0..c94dd4c 100644 --- a/client/src/main/java/client/utils/Config.java +++ b/client/src/main/java/client/utils/Config.java @@ -5,14 +5,11 @@ import java.util.List; public class Config { - /* - Sets parameters for what the config file needs with a config - Object that will be used in the ConfigService object - */ + private String language = "en"; private String serverUrl = "http://localhost:8080"; - private List favourites = new ArrayList<>(); + private List favourites = new ArrayList<>(); private List shoppingList = new ArrayList<>(); public Config(){} @@ -25,7 +22,7 @@ public class Config { return shoppingList; } - public List getFavourites() { + public List getFavourites() { return favourites; } @@ -41,7 +38,7 @@ public class Config { this.serverUrl = serverUrl; } - public void setFavourites(List favourites) { + public void setFavourites(List favourites) { this.favourites = favourites; } diff --git a/client/src/main/java/client/utils/ConfigService.java b/client/src/main/java/client/utils/ConfigService.java index 3abe0a5..d1d70c6 100644 --- a/client/src/main/java/client/utils/ConfigService.java +++ b/client/src/main/java/client/utils/ConfigService.java @@ -1,8 +1,7 @@ package client.utils; -import com.fasterxml.jackson.core.exc.StreamReadException; -import com.fasterxml.jackson.databind.DatabindException; + import com.fasterxml.jackson.databind.ObjectMapper; import java.nio.file.Path; @@ -31,21 +30,18 @@ public class ConfigService { */ private void load(){ File file = configPath.toFile(); //reads the config file as file - if(file.exists()){ - try{ - config = mapper.readValue(file, Config.class); //uses Jackson to map the file to the config attribute + if (!file.exists()) { //if file doesn't exist then it creates a config object + config = new Config(); + return; + } - } catch (StreamReadException e) { - throw new RuntimeException(e); - } catch (DatabindException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - else{ - config = new Config(); // if file doesn't exist, it creates one + try{ + config = mapper.readValue(file, Config.class); //uses Jackson to map the file to the config attribute + + } catch (IOException e) { + throw new RuntimeException(e); } + } public Path getConfigPath() { diff --git a/client/src/test/java/client/scenes/ConfigServiceTest.java b/client/src/test/java/client/scenes/ConfigServiceTest.java index d27f7c7..8af3d78 100644 --- a/client/src/test/java/client/scenes/ConfigServiceTest.java +++ b/client/src/test/java/client/scenes/ConfigServiceTest.java @@ -2,10 +2,13 @@ package client.scenes; import client.utils.Config; import client.utils.ConfigService; +import client.utils.ServerUtils; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import java.io.File; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -15,12 +18,23 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; public class ConfigServiceTest { + static ServerUtils dv = new ServerUtils(); + + + private static final long TEST_ID_A = 23412L; + private static final long TEST_ID_B = 25412L; + + @BeforeEach + public void setup(){ + Assumptions.assumeTrue(dv.isServerAvailable(), "Server not available"); + } + /* Tests if the config file loads properly with a prewritten json file */ @Test - public void ConfigServiceFileLoadTest(@TempDir Path tempDir) throws IOException { + public void configServiceFileLoadTest(@TempDir Path tempDir) throws IOException { Path configPath = tempDir.resolve("config.json"); String json = """ @@ -39,9 +53,10 @@ public class ConfigServiceTest { assertEquals("de", config.getLanguage()); assertEquals("http://exmple12.com", config.getServerUrl()); - List x = new ArrayList<>(); - x.add("banana bread"); - x.add("pineapple pie"); + List x = new ArrayList<>(); + + x.add(TEST_ID_A); + x.add(TEST_ID_B); List y = new ArrayList<>(); y.add("milk"); @@ -56,7 +71,7 @@ public class ConfigServiceTest { Tests if the save method saves changes to the config file. */ @Test - public void ConfigSaveTest(@TempDir Path tempDir) throws IOException { + public void configSaveTest(@TempDir Path tempDir) throws IOException { Path configPath = tempDir.resolve("config.json"); ConfigService configService = new ConfigService(configPath); @@ -78,4 +93,4 @@ public class ConfigServiceTest { -} +} \ No newline at end of file diff --git a/client/src/test/java/client/scenes/ConfigTest.java b/client/src/test/java/client/scenes/ConfigTest.java index a05f95d..9c82d34 100644 --- a/client/src/test/java/client/scenes/ConfigTest.java +++ b/client/src/test/java/client/scenes/ConfigTest.java @@ -1,6 +1,9 @@ package client.scenes; import client.utils.Config; +import client.utils.ServerUtils; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.ArrayList; @@ -8,9 +11,21 @@ import java.util.ArrayList; import static org.junit.jupiter.api.Assertions.*; public class ConfigTest { + static ServerUtils dv = new ServerUtils(); + + private static final long FAV_LIST_ID_1 = 1234L; + private static final long FAV_LIST_ID_2 = 1235L; + + + @BeforeEach + public void setup(){ + Assumptions.assumeTrue(dv.isServerAvailable(), "Server not available"); + } + @Test - public void ConfigDefaultValueTest(){ + public void configDefaultValueTest(){ + Config config = new Config(); assertEquals("en", config.getLanguage()); assertEquals("http://localhost:8080", config.getServerUrl()); @@ -19,19 +34,19 @@ public class ConfigTest { } @Test - public void ConfigGetterTest(){ + public void configGetterTest(){ Config config = new Config(); config.setLanguage("nl"); config.setServerUrl("http://localhost:8081"); ArrayList x = new ArrayList<>(); x.add("Lava Cake"); x.add("Brownie"); - config.setFavourites(x); - assertEquals(config.getFavourites(), x); + ArrayList y = new ArrayList<>(); + y.add(FAV_LIST_ID_1); + y.add(FAV_LIST_ID_2); + config.setFavourites(y); + assertEquals(config.getFavourites(), y); config.setShoppingList(x); assertEquals(config.getShoppingList(), x); } - - - -} +} \ No newline at end of file