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.

169 lines
4.9 KiB

  1. import org.junit.jupiter.api.BeforeAll;
  2. import org.junit.jupiter.api.BeforeEach;
  3. import org.junit.jupiter.api.Test;
  4. import org.mockito.Mockito;
  5. import java.io.ByteArrayInputStream;
  6. import java.io.ByteArrayOutputStream;
  7. import java.nio.charset.StandardCharsets;
  8. import java.util.NoSuchElementException;
  9. import static org.junit.jupiter.api.Assertions.*;
  10. public class VaultTest {
  11. //Vault vlt = new Vault();
  12. static Vault vlt;
  13. @BeforeAll
  14. static void init() {
  15. vlt = new Vault();
  16. }
  17. @BeforeEach
  18. void reset() {
  19. vlt.outputS = System.out;
  20. vlt.inputS = System.in;
  21. }
  22. @Test
  23. void addCredentialTest() { vlt.addCredential();}
  24. @Test
  25. void showCredential() {vlt.showCredential();}
  26. @Test
  27. void getAsJson() {vlt.getAsJson();}
  28. @Test
  29. void loadFromJson() {vlt.loadFromJson();}
  30. @Test
  31. void openConfigureMenu() {
  32. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  33. vlt.inputS = new ByteArrayInputStream("__\n".getBytes(StandardCharsets.UTF_8));
  34. vlt.outputS = outputStream;
  35. vlt.configure();
  36. assertTrue(outputStream.toString().startsWith("Configure:"));
  37. }
  38. @Test
  39. void exitConfigurationMenu(){
  40. vlt.inputS = new ByteArrayInputStream("e".getBytes(StandardCharsets.UTF_8));
  41. vlt.configure();
  42. assertFalse(vlt.config);
  43. }
  44. @Test
  45. void doNotExitConfigAfterWrongInput() {
  46. vlt.inputS = new ByteArrayInputStream("__\n".getBytes(StandardCharsets.UTF_8));
  47. vlt.configure();
  48. assertTrue(vlt.config);
  49. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  50. vlt.inputS = getEmptyStringInputStream();
  51. vlt.outputS = outputStream;
  52. assertThrowsExactly(NoSuchElementException.class, () -> vlt.configure());
  53. assertTrue(outputStream.toString().startsWith("Configure:"));
  54. }
  55. @Test
  56. void openSetPWLengthMenuItem() {
  57. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  58. vlt.inputS = new ByteArrayInputStream("l\n7".getBytes(StandardCharsets.UTF_8));
  59. vlt.outputS = outputStream;
  60. vlt.configure();
  61. assertEquals(7, vlt.PWLength);
  62. assertTrue(outputStream.toString().contains("Set"));
  63. }
  64. @Test
  65. void setPWLength() {
  66. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  67. vlt.outputS = outputStream;
  68. vlt.setPWLength("7");
  69. assertEquals(7, vlt.PWLength);
  70. assertTrue(outputStream.toString().contains("now:"));
  71. }
  72. @Test
  73. void openSetCapitalsMenuItem() {
  74. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  75. vlt.inputS = new ByteArrayInputStream("h\nyes".getBytes(StandardCharsets.UTF_8));
  76. vlt.outputS = outputStream;
  77. vlt.configure();
  78. assertTrue(vlt.haveCapitals = true);
  79. }
  80. @Test
  81. void setCapitals() {
  82. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  83. vlt.outputS = outputStream;
  84. vlt.setCapital("yes");
  85. assertTrue(vlt.haveCapitals = true);
  86. assertTrue(outputStream.toString().contains("contain"));
  87. vlt.outputS = outputStream;
  88. vlt.setCapital("no");
  89. assertFalse(vlt.haveCapitals = false);
  90. assertTrue(outputStream.toString().contains("don´t"));
  91. }
  92. @Test
  93. void openSetSpecialCharsMenuItem() {
  94. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  95. vlt.inputS = new ByteArrayInputStream("h\nyes".getBytes(StandardCharsets.UTF_8));
  96. vlt.outputS = outputStream;
  97. vlt.configure();
  98. assertTrue(vlt.hasSpecialChars = true);
  99. }
  100. @Test
  101. void setSpecialCharTest() {
  102. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  103. vlt.outputS = outputStream;
  104. vlt.setSpecialChar("yes");
  105. assertTrue(vlt.hasSpecialChars = true);
  106. vlt.outputS = outputStream;
  107. vlt.setSpecialChar("no");
  108. assertFalse(vlt.hasSpecialChars = false);
  109. assertTrue(outputStream.toString().contains("don´t"));
  110. }
  111. @Test
  112. void openSetNumbersMenuItem() {
  113. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  114. vlt.inputS = new ByteArrayInputStream("h\nyes".getBytes(StandardCharsets.UTF_8));
  115. vlt.outputS = outputStream;
  116. vlt.configure();
  117. assertTrue(vlt.hasNumbers = true);
  118. }
  119. @Test
  120. void setNumbersTest() {
  121. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  122. vlt.outputS = outputStream;
  123. vlt.setNumbers("yes");
  124. assertTrue(vlt.hasNumbers = true);
  125. assertTrue(outputStream.toString().contains("contain"));
  126. vlt.outputS = outputStream;
  127. vlt.setNumbers("no");
  128. assertFalse(vlt.hasNumbers = false);
  129. assertTrue(outputStream.toString().contains("don´t"));
  130. }
  131. private ByteArrayInputStream getEmptyStringInputStream() {
  132. return new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8));
  133. }
  134. }