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_Gesamt { @Test public void testPasswortZuKurz() { assertFalse(Passwort_Check.checkLaenge("Hello Wolrd")); assertFalse(Passwort_Check.checkLaenge("qwertzuiopasdfghjkl")); assertFalse(Passwort_Check.checkLaenge("1234567890qwertzuio")); } @Test public void testPasswortKleinBuchstaben() { assertFalse(Passwort_Check.checkKleinBuchstaben("HELLO!WorLD!ICHLIEBEJAVA")); assertFalse(Passwort_Check.checkKleinBuchstaben("QWERTZUoPlYXCVBNMLKJHGFDS")); assertFalse(Passwort_Check.checkKleinBuchstaben("1234567890QWERTZUIOP")); } @Test public void testPasswortGrossBuchstaben(){ assertTrue(Passwort_Check.checkKleinBuchstaben("HelloWorldichliebejava")); } @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 } @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")); } }