You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.nio.charset.StandardCharsets; import java.util.NoSuchElementException;
import static org.junit.jupiter.api.Assertions.*;
class PasswordManagerTest {
static PasswordManager pm;
@BeforeAll static void init() { pm = new PasswordManager(); }
@BeforeEach void reset() { pm.outputStream = System.out; pm.inputStream = System.in; }
@Test void constructor() { assertInstanceOf(PasswordManager.class, pm); }
@Test void listVaults() { pm.listVaults(); }
@Test void openVault() { pm.openVault(); }
@Test void menuNavigationListVaults() { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); pm.inputStream = new ByteArrayInputStream("l\n".getBytes(StandardCharsets.UTF_8)); pm.outputStream = outputStream; pm.showMenu(); assertTrue(outputStream.toString().endsWith("Vaults:\n")); }
@Test void menuNavigationOpenVault() { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); pm.inputStream = new ByteArrayInputStream("v 0\n".getBytes(StandardCharsets.UTF_8)); pm.outputStream = outputStream; pm.showMenu(); assertFalse(outputStream.toString().endsWith("-- vaults not implemented yet\n")); }
@Test void showMenu() { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); pm.inputStream = getEmptyStringInputStream(); pm.outputStream = outputStream; assertThrowsExactly(NoSuchElementException.class, () -> pm.showMenu()); assertTrue(outputStream.toString().startsWith("\nciip Gruppe 8")); }
@Test void exitMenu() { pm.inputStream = new ByteArrayInputStream("e\n".getBytes(StandardCharsets.UTF_8)); pm.showMenu(); assertFalse(pm.running); }
@Test void doNotExitMenuAfterWrongInput() { pm.inputStream = new ByteArrayInputStream("__\n".getBytes(StandardCharsets.UTF_8)); pm.showMenu(); assertTrue(pm.running);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); pm.inputStream = getEmptyStringInputStream(); pm.outputStream = outputStream;
assertThrowsExactly(NoSuchElementException.class, () -> pm.showMenu()); assertTrue(outputStream.toString().startsWith("\nciip Gruppe 8")); }
private ByteArrayInputStream getEmptyStringInputStream() { return new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); } }
|