package main;
import base.CaseConfig;
import base.CaseServer;
import org.junit.Assert;
import org.junit.Test;
import base.TestCase;
import static org.mockito.Mockito.*;
/**
* @author v.chibrikov
*/
public class CaseProcessorTest {
@Test
public void passedTest() {
CaseConfig cfg = mock(CaseConfig.class);
TestCase testCase = mock(TestCase.class);
when(testCase.test(cfg)).thenReturn(true);
CaseServer caseServer = mock(CaseServer.class);
when(caseServer.joinTillStarted()).thenReturn(true);
CaseProcessor caseProcessor = new CaseProcessor(cfg, caseServer, testCase);
boolean result = caseProcessor.process();
verify(caseServer, times(1)).run();
verify(caseServer, times(1)).joinTillStarted();
verify(caseServer, times(1)).stop();
verify(testCase, times(1)).test(cfg);
Assert.assertTrue(result);
}
@Test
public void timeOutTest() {
CaseConfig cfg = mock(CaseConfig.class);
TestCase testCase = mock(TestCase.class);
when(testCase.test(cfg)).thenReturn(true);
CaseServer caseServer = mock(CaseServer.class);
when(caseServer.joinTillStarted()).thenReturn(false);
String timeoutLog = "Time out";
when(caseServer.joinTillStarted()).thenReturn(false);
when(caseServer.getOut()).thenReturn(timeoutLog);
CaseProcessor caseProcessor = new CaseProcessor(cfg, caseServer, testCase);
boolean result = caseProcessor.process();
verify(caseServer, times(1)).run();
verify(caseServer, times(1)).joinTillStarted();
verify(caseServer, times(1)).stop();
verify(testCase, times(0)).test(cfg);
Assert.assertFalse(result);
Assert.assertEquals(timeoutLog, caseProcessor.getServerOut());
}
}