diff --git a/Test_Passwort_Check.java b/Test_Passwort_Check.java index 52e4bb8..7a8befc 100644 --- a/Test_Passwort_Check.java +++ b/Test_Passwort_Check.java @@ -2,6 +2,8 @@ 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 { @Test public void testPasswortZuKurz() { @@ -11,12 +13,92 @@ public class Test_Passwort_Check { } @Test - public void testPasswortKLeinBuchstaben() { + public void testPasswortKleinBuchstaben() { assertFalse(Passwort_Check.checkKleinBuchstaben("HELLO!WorLD!ICHLIEBEJAVA")); assertFalse(Passwort_Check.checkKleinBuchstaben("QWERTZUoPlYXCVBNMLKJHGFDS")); assertFalse(Passwort_Check.checkKleinBuchstaben("1234567890QWERTZUIOP")); } - - + @Test + public void testPasswortGrossBuchstaben(){ + assertFalse(Passwort_Check.checkKleinBuchstaben("HelloWorldichliebejava")); + } } +public class Passwort_CheckTest { + + @Test + public void testCheckLaenge() { + assertFalse(Passwort_Check.checkLaenge("KurzesPasswort123!")); // < 20 + assertTrue(Passwort_Check.checkLaenge("LangesPasswortMit123!@#")); // >= 20 + } + + @Test + public void testCheckKleinBuchstaben() { + assertFalse(Passwort_Check.checkKleinBuchstaben("ABCDEF123!@#")); // keine Kleinbuchstaben + assertFalse(Passwort_Check.checkKleinBuchstaben("aB123")); // nur 1 Kleinbuchstabe + assertTrue(Passwort_Check.checkKleinBuchstaben("abcDEF123!@#")); // 3 Kleinbuchstaben + } + + @Test + public void testCheckGrossBuchstaben() { + assertFalse(Passwort_Check.checkGrossBuchstaben("abcdef123!@#")); // keine Großbuchstaben + assertFalse(Passwort_Check.checkGrossBuchstaben("aB123")); // nur 1 Großbuchstabe + assertTrue(Passwort_Check.checkGrossBuchstaben("ABCdef123!@#")); // 3 Großbuchstaben + } + + @Test + public void testCheckZiffer() { + assertFalse(Passwort_Check.checkZiffer("abcdefABC!@#")); // keine Ziffern + assertFalse(Passwort_Check.checkZiffer("aB1")); // nur 1 Ziffer + assertTrue(Passwort_Check.checkZiffer("abcABC123!@#")); // 3 Ziffern + } + + @Test + public void testCheckSonderZeichen() { + assertFalse(Passwort_Check.checkSonderZeichen("abcABC123")); // keine Sonderzeichen + assertFalse(Passwort_Check.checkSonderZeichen("abcABC123!@")); // nur 2 Sonderzeichen + assertTrue(Passwort_Check.checkSonderZeichen("abcABC123!@#")); // 3 Sonderzeichen + } +} + + + +public class Passwort_CheckIntegrationTest { + + @Test + public void testMainMitUnsicheremUndSicheremPasswort() { + // 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")); + } +} +