80 lines
1.7 KiB
Java
80 lines
1.7 KiB
Java
package test.container;
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
import org.gcube.smartgears.context.application.ApplicationContext;
|
|
import org.gcube.smartgears.context.container.ContainerContext;
|
|
import org.gcube.smartgears.lifecycle.application.ApplicationState;
|
|
import org.gcube.smartgears.lifecycle.container.ContainerState;
|
|
import org.gcube.smartgears.managers.ContainerManager;
|
|
import org.junit.After;
|
|
import org.junit.Before;
|
|
import org.junit.Ignore;
|
|
import org.junit.Test;
|
|
|
|
import app.SomeApp;
|
|
|
|
public class ContainerLifecycleTest {
|
|
|
|
|
|
SomeApp app;
|
|
|
|
|
|
@Before
|
|
public void init() {
|
|
app = new SomeApp();
|
|
}
|
|
|
|
@After
|
|
public void teardown() {
|
|
app.stop();
|
|
}
|
|
|
|
@Test
|
|
public void containerGoesToPartActiveWhenAppFails() {
|
|
|
|
|
|
ApplicationContext actx = app.start();
|
|
|
|
ContainerContext ctx = actx.container();
|
|
|
|
assertEquals(ContainerState.active,ctx.lifecycle().state());
|
|
|
|
actx.lifecycle().moveTo(ApplicationState.failed);
|
|
|
|
assertEquals(ContainerState.partActive,ctx.lifecycle().state());
|
|
}
|
|
|
|
@Test
|
|
public void containerGoesToPartActiveWhenAppStops() {
|
|
|
|
ApplicationContext actx = app.start();
|
|
|
|
ContainerContext ctx = actx.container();
|
|
|
|
assertEquals(ContainerState.active,ctx.lifecycle().state());
|
|
|
|
actx.lifecycle().moveTo(ApplicationState.stopped);
|
|
|
|
assertEquals(ContainerState.partActive,ctx.lifecycle().state());
|
|
}
|
|
|
|
|
|
//used interactively to study shutdown
|
|
@Ignore
|
|
@Test
|
|
public void containerShutsdown() throws Exception {
|
|
|
|
ApplicationContext actx = app.start();
|
|
|
|
ContainerContext ctx = actx.container();
|
|
|
|
assertEquals(ContainerState.active,ctx.lifecycle().state());
|
|
|
|
ContainerManager.instance.stop(true);
|
|
app.stop();
|
|
|
|
Thread.sleep(10000);
|
|
}
|
|
}
|