From cba0ba69246253866f7aa2f50f20b91fcf7bb3dd Mon Sep 17 00:00:00 2001 From: AndreasW <1720808@stud.hs-mannheim.de> Date: Tue, 27 May 2025 15:01:49 +0200 Subject: [PATCH] JUnit aufgeteillt --- ...ck.java => Test_Passwort_Check_Gesamt.java | 2 +- Test_Passwort_Check_Konsole.java | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) rename Test_Passwort_Check.java => Test_Passwort_Check_Gesamt.java (98%) create mode 100644 Test_Passwort_Check_Konsole.java diff --git a/Test_Passwort_Check.java b/Test_Passwort_Check_Gesamt.java similarity index 98% rename from Test_Passwort_Check.java rename to Test_Passwort_Check_Gesamt.java index cc08c70..f13d1d1 100644 --- a/Test_Passwort_Check.java +++ b/Test_Passwort_Check_Gesamt.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.*; import java.io.*; -public class Test_Passwort_Check { +public class Test_Passwort_Check_Gesamt { @Test public void testPasswortZuKurz() { assertFalse(Passwort_Check.checkLaenge("Hello Wolrd")); diff --git a/Test_Passwort_Check_Konsole.java b/Test_Passwort_Check_Konsole.java new file mode 100644 index 0000000..d182e16 --- /dev/null +++ b/Test_Passwort_Check_Konsole.java @@ -0,0 +1,45 @@ +import org.junit.jupiter.api.Test; +// import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.*; + +public class Test_Passwort_Check_Konsole { + + @Test + public void testMain() { + // Simulierte Benutzereingaben (1. Versuch unsicher, 2. Versuch sicher) + String simulatedInput = String.join("\n", + "kurz123", // zu kurz + "PasswortMit2BUCHSTABEN", // kein Sonderzeichen, keine Ziffern + "AbcAbcAbc123!@#", // zu kurz + "abcABC123!@#abcABC123!@#", // gültiges Passwort + "" + ); + + // Eingabe simulieren + ByteArrayInputStream in = new ByteArrayInputStream(simulatedInput.getBytes()); + System.setIn(in); + + // Ausgabe abfangen + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + PrintStream originalOut = System.out; + System.setOut(new PrintStream(outContent)); + + // Main-Methode ausführen + Passwort_Check.main(new String[]{}); + + // Wiederherstellen der Originalstreams + System.setOut(originalOut); + System.setIn(System.in); + + String output = outContent.toString(); + + // Wichtige Ausgaben überprüfen + assertTrue(output.contains("Passwort ist zu kurz!")); + assertTrue(output.contains("Es fehlen Ziffern!") || output.contains("Es fehlen Sonderzeichen!")); + assertTrue(output.contains("Passwort ist sicher.")); + assertTrue(output.contains("...und Tschüss")); + } +} +