package com.processpuzzle.application.domain; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertThat; import static org.junit.Assume.assumeThat; import org.junit.Test; public class InstalledAndRunningApplicationTest extends ApplicationTest<Application, InstalledAndStoppedApplicationFixture> { @Override public void beforeEachTest() { super.beforeEachTest(); try{ sut.start(); }catch( ApplicationException e ){ e.printStackTrace(); } assumeThat( sut.getInstallationStatus(), equalTo( Application.InstallationStatus.installed )); assumeThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.running )); } @Test( expected = ReinstallationException.class ) public void install_whenApplicationAlreadyInstalled_throwsException() throws ApplicationException { sut.install(); } @Test public void start_whenApplicationIsRunning_doesNothing() throws ApplicationException { sut.start(); assertThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.running )); } @Test public void stop_setsExecutionStatusToStopped() { sut.stop(); //VERIFY: assertThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.stopped )); } @Test public void stop_tearDownApplicationContext(){ sut.stop(); assertThat( sut.applicationContext, nullValue() ); } @Test public void unInstall_setsExecutionStatusToStopped() throws ApplicationException { sut.unInstall(); assertThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.stopped )); } @Test public void unInstall_setsInstallationStatusToUnInstalled() throws ApplicationException { sut.unInstall(); assertThat( sut.getInstallationStatus(), equalTo( Application.InstallationStatus.notInstalled )); } @Test public void loginUser() throws ApplicationException { //VERIFY: assertThat( sut.loginUser( "admin", "admin" ), is( true )); assertThat( sut.loginUser("bla", "bla"), is( false )); } }