package com.processpuzzle.application.domain; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeThat; import org.junit.Test; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.security.domain.PredefinedUser; import com.processpuzzle.application.security.domain.UserRepository; import com.processpuzzle.user_session.domain.UserRequestManager; public class NotInstalledApplicationTest extends ApplicationTest<Application, NotInstalledApplicationFixture> { private ProcessPuzzleContext applicationContext; @Override public void beforeEachTest() { super.beforeEachTest(); assumeThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.stopped ) ); assumeThat( sut.getInstallationStatus(), equalTo( Application.InstallationStatus.notInstalled ) ); try{ sut.install(); applicationContext = UserRequestManager.getInstance().getApplicationContext(); userRepository = (UserRepository) applicationContext.getRepository( UserRepository.class ); }catch( ApplicationException e ){ e.printStackTrace(); } } public void afterEachTests() throws Exception { sut.unInstall(); assertThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.stopped ) ); assertThat( sut.getInstallationStatus(), equalTo( Application.InstallationStatus.notInstalled ) ); } @Test public void testInstall() throws ApplicationException { // SETUP: Implicit setup. // EXERCISE: See beforeEachTest() // VERIFY: assumeThat( sut.getExecutionStatus(), equalTo( Application.ExecutionStatus.running ) ); assertThat( "Application calls ProcessPuzzle.setUp() to initialize context.", applicationContext.isConfigured(), is( true ) ); assertThat( "Installation defines 'Anonymous' user.", userRepository.findUserByName( PredefinedUser.ANONYMOUS.getUserName() ), not( nullValue() ) ); assertThat( "Installation defines 'Administrator' user.", userRepository.findUserByName( PredefinedUser.SYSTEM_ADMINISTRATOR.getUserName() ), not( nullValue() ) ); assertThat( "Installation defines default user.", sut.authenticateUser( DEFAULT_USER_NAME, DEFAULT_USER_PASSWORD ), not( nullValue() ) ); assertTrue( "Application stores in a history what had happend.", sut.getHistorySize() >= 1 ); //TEAD DOWN: sut.stop(); } }