package com.aol.micro.server.servers;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.context.ApplicationContext;
import com.aol.micro.server.servers.grizzly.GrizzlyApplication;
import com.aol.micro.server.servers.model.AllData;
import com.aol.micro.server.servers.model.ServerData;
public class ServerRunnerTest {
private ServerRunner serverRunner;
private GrizzlyApplication serverApplication1;
private GrizzlyApplication serverApplication2;
private ServerData[] registered;
volatile int server1Count =0;
volatile int server2Count =0;
@Before
public void setUp() {
server1Count =0;
server2Count =0;
ServerData data1 = new ServerData(8080,Arrays.asList(), Mockito.mock(ApplicationContext.class), "url1", () -> "app-context");
ServerData data2 = new ServerData(8081, Arrays.asList(), Mockito.mock(ApplicationContext.class), "url2", () -> "test-context");
serverApplication1 = new GrizzlyApplication(AllData.builder().serverData(data1).build()){
@Override
public void run(CompletableFuture start,JaxRsServletConfigurer jaxRsConfigurer, CompletableFuture end) {
server1Count++;
start.complete(true);
}
};
serverApplication2 = new GrizzlyApplication(AllData.builder().serverData(data2).build()){
@Override
public void run(CompletableFuture start,JaxRsServletConfigurer jaxRsConfigurer,CompletableFuture end) {
server2Count++;
start.complete(true);
}
};
serverRunner = new ServerRunner( (array) -> {registered = array; } ,
Arrays.asList(serverApplication1, serverApplication2), new CompletableFuture());
}
@Test
public void testRun() {
serverRunner.run();
assertThat(server1Count,is(1));
assertThat(server2Count,is(1));
}
}