package main.server;
import base.CaseConfig;
import base.CaseServer;
import main.CaseProcessor;
import org.junit.Assert;
import org.junit.Test;
import base.TestCase;
import static org.mockito.Mockito.*;
/**
* @author v.chibrikov
*/
public class CaseServerTest {
@Test
public void serverHangTest() {
CaseConfig cfg = mock(CaseConfig.class);
when(cfg.getStartWaitPeriod()).thenReturn(100);
when(cfg.getServerStartCommand()).thenReturn("java -jar src/main/tests/samples/hanged.jar");
when(cfg.getStartedMessage()).thenReturn("Server started");
TestCase testCase = mock(TestCase.class);
when(testCase.test(cfg)).thenReturn(true);
CaseServer caseServer = new CaseServerImpl(cfg);
CaseProcessor caseProcessor = new CaseProcessor(cfg, caseServer, testCase);
boolean result = caseProcessor.process();
verify(testCase, times(0)).test(cfg);
Assert.assertFalse(result);
if (caseServer.getOut().contains("OUTPUT"))
Assert.assertTrue(caseServer.getOut().contains("hanged"));
}
}