@Test public void shouldRemoveKilledProcessFromList() { processManager.processKilled(processTwo); assertThat(processManager.getProcessMap().size(), is(1)); assertThat(processManager.getProcessMap().containsKey(processOne), is(true)); }
@Test public void processListForDisplayShouldBeSameAsTheCurrentProcessList() throws Exception { processManager = new ProcessManager(); ProcessWrapper processWrapperOne = mock(ProcessWrapper.class); Process processOne = mock(Process.class); ProcessWrapper processWrapperTwo = mock(ProcessWrapper.class); Process processTwo = mock(Process.class); ConcurrentMap<Process, ProcessWrapper> processMap = processManager.getProcessMap(); processMap.put(processOne, processWrapperOne); processMap.put(processTwo, processWrapperTwo); Collection<ProcessWrapper> processWrappersForDisplay = processManager.currentProcessListForDisplay(); assertThat(processWrappersForDisplay, is(processMap.values())); }
@Before public void setUp() { processManager = new ProcessManager() { @Override Process startProcess(ProcessBuilder processBuilder, String msgCommandInfo) { return processStartedByManager; } }; processStartedByManager = mock(Process.class); when(processStartedByManager.getInputStream()).thenReturn(mock(InputStream.class)); when(processStartedByManager.getErrorStream()).thenReturn(mock(InputStream.class)); when(processStartedByManager.getOutputStream()).thenReturn(mock(OutputStream.class)); processOne = mock(Process.class); processTwo = mock(Process.class); when(processOne.getInputStream()).thenReturn(mock(InputStream.class)); when(processOne.getErrorStream()).thenReturn(mock(InputStream.class)); when(processOne.getOutputStream()).thenReturn(mock(OutputStream.class)); when(processOne.exitValue()).thenThrow(new IllegalStateException()); when(processTwo.exitValue()).thenThrow(new IllegalStateException()); when(processTwo.getInputStream()).thenReturn(mock(InputStream.class)); when(processTwo.getErrorStream()).thenReturn(mock(InputStream.class)); when(processTwo.getOutputStream()).thenReturn(mock(OutputStream.class)); ConcurrentMap<Process, ProcessWrapper> processMap = processManager.getProcessMap(); wrapperForProcessOne = new ProcessWrapper(processOne, "tag1", null, inMemoryConsumer(), "utf-8", "ERROR: "); processMap.put(processOne, wrapperForProcessOne); wrapperForProcessTwo = new ProcessWrapper(processTwo, "tag2", null, inMemoryConsumer(), "utf-8", "ERROR: "); processMap.put(processTwo, wrapperForProcessTwo); }
@Test public void shouldGetIdleTimeForGivenProcess() { processManager = new ProcessManager(); ProcessWrapper processWrapperOne = mock(ProcessWrapper.class); Process processOne = mock(Process.class); ProcessWrapper processWrapperTwo = mock(ProcessWrapper.class); Process processTwo = mock(Process.class); ConcurrentMap<Process, ProcessWrapper> processMap = processManager.getProcessMap(); processMap.put(processOne, processWrapperOne); processMap.put(processTwo, processWrapperTwo); when(processWrapperOne.getProcessTag()).thenReturn("tag1"); when(processWrapperOne.getIdleTime()).thenReturn(200L); when(processWrapperTwo.getProcessTag()).thenReturn("tag2"); when(processWrapperTwo.getIdleTime()).thenReturn(100L); long timeout = processManager.getIdleTimeFor("tag2"); assertThat(timeout, is(100L)); }
@Test public void shouldAddToProcessListWhenNewProcessCreated() { processManager.createProcess(new String[]{"echo", "message"}, "echo 'message'", null, new HashMap<>(), new EnvironmentVariableContext(), inMemoryConsumer(), "test-tag", "utf-8", "ERROR: "); assertThat(processManager.getProcessMap().size(), is(3)); }