import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; 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(); } @Test void constructor() { assertInstanceOf(PasswordManager.class, pm); } @Test void listVaults() { pm.listVaults(); } @Test void openVault() { pm.openVault(); } @Test void showMenu() { ByteArrayInputStream virtualConsoleInput = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); assertThrowsExactly(NoSuchElementException.class, () -> pm.showMenu(virtualConsoleInput)); } @Test void exitMenu() { pm.showMenu(new ByteArrayInputStream("e\n".getBytes(StandardCharsets.UTF_8))); assertFalse(pm.running); } }