uebung4/Test_Passwort_Check_Konsole...

46 lines
1.5 KiB
Java

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