46 lines
1.5 KiB
Java
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"));
|
|
}
|
|
}
|
|
|