From 7fa860326bfb357d6a02b908a083ba2395b7279f Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Wed, 4 Mar 2026 16:03:46 +0100 Subject: [PATCH] Feat: Added SettingsTest --- .../team6/models/SettingsTest.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/models/SettingsTest.java diff --git a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/models/SettingsTest.java b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/models/SettingsTest.java new file mode 100644 index 0000000..3221be5 --- /dev/null +++ b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/models/SettingsTest.java @@ -0,0 +1,72 @@ +package ntnu.systemutvikling.team6.models; + +import ntnu.sytemutvikling.team6.models.Language; +import ntnu.sytemutvikling.team6.models.Settings; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class SettingsTest { + + @Test + void testDefaultConstructorSetsStandardValues() { + Settings settings = new Settings(); + + assertTrue(settings.isLightMode()); + assertEquals(Language.ENGLISH, settings.getLanguage()); + assertFalse(settings.isAnonymous()); + } + + @Test + void testCustomConstructorSetsValuesCorrectly() { + Settings settings = new Settings(false, Language.ENGLISH, true); + + assertFalse(settings.isLightMode()); + assertEquals(Language.ENGLISH, settings.getLanguage()); + assertTrue(settings.isAnonymous()); + } + + @Test + void testConstructorThrowsExceptionWhenLanguageIsNull() { + assertThrows(IllegalArgumentException.class, + () -> new Settings(true, null, false)); + } + + @Test + void testToggleLightMode() { + Settings settings = new Settings(true, Language.ENGLISH, false); + + settings.toggleLightMode(); + assertFalse(settings.isLightMode()); + + settings.toggleLightMode(); + assertTrue(settings.isLightMode()); + } + + @Test + void testToggleAnonymousMode() { + Settings settings = new Settings(true, Language.ENGLISH, false); + + settings.toggleAnonymousMode(); + assertTrue(settings.isAnonymous()); + + settings.toggleAnonymousMode(); + assertFalse(settings.isAnonymous()); + } + + @Test + void testChangeLanguageSuccessfully() { + Settings settings = new Settings(); + + settings.changeLanguage(Language.ENGLISH); + assertEquals(Language.ENGLISH, settings.getLanguage()); + } + + @Test + void testChangeLanguageThrowsExceptionWhenNull() { + Settings settings = new Settings(); + + assertThrows(IllegalArgumentException.class, + () -> settings.changeLanguage(null)); + } +} \ No newline at end of file