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