From 04669ca0084f81ec453d6366128d41f190a165d2 Mon Sep 17 00:00:00 2001 From: danai Date: Sun, 16 Jun 2024 20:15:21 +0200 Subject: [PATCH] =?UTF-8?q?Test=20f=C3=BCr=20User=20und=20WetterService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TravelBuddyApp/pom.xml | 31 +++++-- .../src/test/java/domainTest/UserTest.java | 92 +++++++++++++++++++ .../java/domainTest/WetterServiceTest.java | 34 +++++++ 3 files changed, 148 insertions(+), 9 deletions(-) create mode 100644 TravelBuddyApp/src/test/java/domainTest/UserTest.java create mode 100644 TravelBuddyApp/src/test/java/domainTest/WetterServiceTest.java diff --git a/TravelBuddyApp/pom.xml b/TravelBuddyApp/pom.xml index ea06a2e..d0c2d02 100644 --- a/TravelBuddyApp/pom.xml +++ b/TravelBuddyApp/pom.xml @@ -13,15 +13,9 @@ - org.junit.jupiter - junit-jupiter-api - 5.8.1 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.8.1 + junit + junit + 4.13.1 test @@ -34,6 +28,25 @@ commons-codec 1.15 + + org.junit.jupiter + junit-jupiter-engine + 5.9.3 + test + + + org.junit.jupiter + junit-jupiter-api + 5.9.3 + test + + + + org.junit.platform + junit-platform-commons + 1.9.3 + test + diff --git a/TravelBuddyApp/src/test/java/domainTest/UserTest.java b/TravelBuddyApp/src/test/java/domainTest/UserTest.java new file mode 100644 index 0000000..0ce4dcf --- /dev/null +++ b/TravelBuddyApp/src/test/java/domainTest/UserTest.java @@ -0,0 +1,92 @@ +package domainTest; + +import domain.Auto; +import domain.Ort; +import domain.User; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintWriter; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UserTest { + + private User testUser; + private final String testFilename = "users.txt"; + + @Before + public void setUp() { + Ort ort = new Ort(12345, "Teststadt"); + Auto auto = new Auto("Testauto", 0.12); + testUser = new User("testuser", "password", ort, auto, 80.0, 15.0); + } + + @After + public void tearDown() { + // Löschen der temporären Testdatei nach jedem Test + File file = new File(testFilename); + if (file.exists()) { + file.delete(); + } + } + + @Test + public void testRegistrieren() throws IOException { + // Führe die Registrierung durch + testUser.registrieren(); + + // Überprüfe, ob die Daten korrekt in die Datei geschrieben wurden + try (BufferedReader reader = new BufferedReader(new FileReader(testFilename))) { + String line = reader.readLine(); + assertEquals("testuser," + testUser.getHashedPassword() + ",12345,Teststadt,Testauto,0.12,80.0,15.0", line); + } + } + + + + @Test + public void testEinloggen() throws IOException { + // Vorbereitung der Testdaten in einer temporären Datei + try (PrintWriter writer = new PrintWriter(testFilename)) { + writer.println("testuser," + testUser.getHashedPassword() + ",12345,Teststadt,Testauto,0.12,80.0,15.0"); + } + + // Einloggen des Users + assertTrue(testUser.einloggen()); + + // Überprüfe, ob die Userdaten korrekt gesetzt wurden + assertEquals("Teststadt", testUser.getHeimatstandort().getOrtName()); + assertEquals("Testauto", testUser.getAuto().getName()); + assertEquals(0.12, testUser.getAuto().getCO2AusstossProKm(), 0.001); // Delta für Genauigkeit + assertEquals(80.0, testUser.getDurchschnittsgeschwindigkeitPKW(), 0.001); // Delta für Genauigkeit + assertEquals(15.0, testUser.getDurchschnittsgeschwindigkeitFahrrad(), 0.001); // Delta für Genauigkeit + } + + + + @Test + public void testEinloggen_FalscheDaten() throws IOException { + // Vorbereitung der Testdaten in einer temporären Datei + try (PrintWriter writer = new PrintWriter(testFilename)) { + writer.println("testuser," + testUser.getHashedPassword() + ",12345,Teststadt,Testauto,0.12,80.0,15.0"); + } + + // Ändere Passwort, um ein falsches Einloggen zu erzwingen + testUser.setPassword("wrongpassword"); + + // Einloggen des Users mit falschen Daten + assertFalse(testUser.einloggen()); + } + + + +} diff --git a/TravelBuddyApp/src/test/java/domainTest/WetterServiceTest.java b/TravelBuddyApp/src/test/java/domainTest/WetterServiceTest.java new file mode 100644 index 0000000..3a68113 --- /dev/null +++ b/TravelBuddyApp/src/test/java/domainTest/WetterServiceTest.java @@ -0,0 +1,34 @@ +package domainTest; + +import static org.junit.Assert.assertTrue; +import java.io.IOException; +import org.junit.Test; +import domain.WetterService; + + +public class WetterServiceTest { + + @Test + public void testGetAktuellesWetter() throws IOException, InterruptedException { + String location = "Berlin"; + String expectedWeatherRegex = "Aktuelle Temperatur: \\d+\\.\\d+°C, Wetter: .*"; + + String result = WetterService.getAktuellesWetter(location); + + assertTrue("Expected weather format not found in result", result.matches(expectedWeatherRegex)); + } + + @Test + public void testGetWettervorhersage() throws IOException, InterruptedException { + String location = "Berlin"; + String expectedForecastStart = "3-Tage-Wettervorhersage:"; + + String result = WetterService.getWettervorhersage(location); + + assertTrue("Expected forecast start not found in result", result.startsWith(expectedForecastStart)); + } + + +} + +