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")); } }