From 464d47d4dbe28ff6ae95295846ac5a7b84b9afaf Mon Sep 17 00:00:00 2001 From: Jerome Zebua <5338823-jeromeemmanuel@users.noreply.gitlab.com> Date: Mon, 7 Jun 2021 00:20:15 +0700 Subject: [PATCH] Student CLI test --- .../java/softeng/g4/cli/StudentCLITest.java | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/test/java/softeng/g4/cli/StudentCLITest.java b/src/test/java/softeng/g4/cli/StudentCLITest.java index f8abb92..d5f9511 100644 --- a/src/test/java/softeng/g4/cli/StudentCLITest.java +++ b/src/test/java/softeng/g4/cli/StudentCLITest.java @@ -10,7 +10,9 @@ import softeng.g4.user.Admin; import softeng.g4.user.Student; import softeng.g4.user.TeachingAssistant; import softeng.g4.user.UserList; - +import java.io.*; +import org.junit.*; +import java.util.Scanner; import static org.junit.jupiter.api.Assertions.*; class StudentCLITest { @@ -21,6 +23,12 @@ class StudentCLITest { private TeachingAssistant testTa; private Student testStudent; + private final InputStream systemIn = System.in; + private final PrintStream systemOut = System.out; + + private ByteArrayInputStream testIn; + private ByteArrayOutputStream testOut; + @BeforeEach void setUpTearDown() { userList = new UserList(); @@ -38,8 +46,40 @@ class StudentCLITest { "Test Student", Long.valueOf("123456789"), userList); } + @Before + public void setUpOutput() { + testOut = new ByteArrayOutputStream(); + System.setOut(new PrintStream(testOut)); + } + + private void provideInput(String data) { + testIn = new ByteArrayInputStream(data.getBytes()); + System.setIn(testIn); + } + + private String getOutput() { + return testOut.toString(); + } + + @After + public void restoreSystemInputOutput() { + System.setIn(systemIn); + System.setOut(systemOut); + } + @Test void main() { + String data1 = "HELP"; + provideInput(data1); + + StudentCLI.main(new String[1]); + + assertEquals(data1, "HELP"); + + String data2 = "APPOINTMENTS"; + StudentCLI.main(new String[2]); + + assertEquals(data2, "APPOINTMENT"); } @Test -- GitLab