jobserv/src/test/java/JobServ/ProcessManagerTest.java

180 lines
3.9 KiB
Java
Raw Normal View History

/*
* ProcessManagerTest
*
* v1.0
*
* May 22, 2019
*/
package JobServ;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
2019-05-23 14:00:15 -07:00
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
2019-05-23 14:00:15 -07:00
import static org.junit.Assert.assertNotEquals;
/*
* ProcessManagerTest
* Class that performs positive and negative unit tests
* of every public method in ProcessManager. This not
* only unit tests ProcessManager but also integration
* tests it with ProcessController.
*/
public class ProcessManagerTest {
ProcessManager manager;
/*
* ProcessManagerTest constructor
* initializes the process manager
*/
public ProcessManagerTest() {
manager = new ProcessManager();
}
/*
* addProcessTest()
* positive unit test for newProcess
*/
@Test
public void addProcessesTest() {
2019-05-23 14:00:15 -07:00
int pid = manager.newProcess("sleep 1");
assertNotEquals(-2, pid);
manager.shutdown();
}
/*
* getStatusTest
2019-05-23 14:00:15 -07:00
* unit test for getStatus
*/
@Test
public void getStatusTest() {
2019-05-23 14:00:15 -07:00
int pid = manager.newProcess("sleep 1");
int status = manager.getProcessStatus(pid);
assertEquals(0, status);
manager.shutdown();
}
2019-05-23 14:00:15 -07:00
/*
* getOldStatusTest
* do finished processes return 1
*/
@Test
public void getOldStatusTest() {
int pid = manager.newProcess("echo 'test'");
try{
Thread.sleep(200);
} catch (InterruptedException e) {
//
}
int status = manager.getProcessStatus(pid);
assertEquals(1, status);
manager.shutdown();
}
/*
* getUnknownStatusTest()
* ensures 2 is returned when a status is not known
*/
@Test
public void getUnknownStatusTest() {
int status = manager.getProcessStatus(400);
assertEquals(3, status);
2019-05-23 14:00:15 -07:00
}
/*
* getReturnTest()
* test of process returns
*/
@Test
public void getReturnTest() {
int pid = manager.newProcess("sleep .5");
int ret = manager.getProcessReturn(pid);
assertEquals(256, ret);
try {
Thread.sleep(550);
} catch (InterruptedException e) {
//
}
ret = manager.getProcessReturn(pid);
assertNotEquals(ret, 256);
assertNotEquals(ret, 257);
assertNotEquals(ret, 258);
manager.shutdown();
}
/*
* getUNknownProcessReturn
* tests process return for unknown processes
*/
@Test
public void getUnknownProcessReturnTest() {
int ret = manager.getProcessReturn(502);
assertEquals(258, ret);
manager.shutdown();
}
/*
* getProcessOutputTest()
* verifies output is grabbed correctly from processes
*/
@Test
public void getProcessOutputTest() {
int pid = manager.newProcess("echo test");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
//
}
String out = manager.getProcessOutput(pid);
assertEquals("test\n", out); // calls string.equals()
manager.shutdown();
}
/*
* getUnknownOutputTest()
* verifies correct information is returned when
* output is requested of an unknown process
*/
@Test
public void getUnknownOutputTest() {
String out = manager.getProcessOutput(532);
assertEquals("[-] ERROR: Process not found", out);
manager.shutdown();
}
/*
* killProcessTest()
* ensures killing a process works
* also tests if getProcessStatus returns 2
2019-05-23 14:00:15 -07:00
*/
@Test
public void killProcessTest() {
int pid = manager.newProcess("sleep 10");
int ret = manager.killProcess(pid);
assertEquals(1, ret);
2019-05-23 14:00:15 -07:00
int status = manager.getProcessStatus(pid);
assertEquals(2, status);
manager.shutdown();
2019-05-23 14:00:15 -07:00
}
}