package com.processpuzzle.user_session.domain; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import org.junit.After; import org.junit.Test; import com.processpuzzle.application.domain.Application; import com.processpuzzle.application.security.domain.AnonymousUser; import com.processpuzzle.application.security.domain.SystemAdministrator; import com.processpuzzle.litest.testcase.GenericTestSuite; import com.processpuzzle.sharedfixtures.domaintier.RequestContextInMockedApplicationFixture; public class UserRequestManagerTest extends GenericTestSuite<UserRequestContext, RequestContextInMockedApplicationFixture>{ private static final String containerConfigurationPath = null; //private static RequestContextInMockedApplicationFixture requestFixture; protected UserRequestManagerTest() { super( containerConfigurationPath ); } @Test public void createSession() { assertThat( fixture.getAnonymousUserSession(), not( nullValue() )); assertThat( fixture.getSessionHolder().getSession(), equalTo( fixture.getAnonymousUserSession() )); assertThat( fixture.getAnonymousUserSession().getUser(), instanceOf( AnonymousUser.class ) ); } @Test public void destroyUserSession(){ //Implicitly tested in 'afterEachTests()' } @Test public void createUserRequest() { assertThat( fixture.getAnonymousUserRequestContext(), not( nullValue() )); assertThat( fixture.getAnonymousUserRequestContext().getUserSession(), equalTo( fixture.getAnonymousUserSession() )); assertThat( fixture.getAnonymousUserRequestContext().getApplication(), equalTo( fixture.getApplication() )); } @Test public void createAdministratorSession() { //SETUP: Application application = fixture.getApplication(); UserSessionHolder sessionHolder = fixture.getSessionHolder(); //EXCERCISE: UserSession administratorSession = UserRequestManager.getInstance().createAdministratorSession( sessionHolder, application ); //VERIFY: assertThat( administratorSession.getUser(), instanceOf( SystemAdministrator.class )); assertThat( administratorSession.getApplication(), equalTo( application )); } @Test public void destroyUserRequest() { //Implicitily tested in 'afterEachTests()' } @Test public void getCurrentUserRequest() { assertThat( UserRequestManager.getInstance().currentRequestContext(), equalTo( fixture.getAnonymousUserRequestContext() )); } @Test public void getApplicationInContext() { assertThat( UserRequestManager.getInstance().getApplicationInContext(), equalTo( fixture.getApplication() )); } @Test public void getApplicationContext() { assertThat( UserRequestManager.getInstance().getApplicationContext(), equalTo( fixture.getApplicationContext() )); } @After public void afterEachTests() { UserRequestManager.getInstance().desctroyRequestContext( fixture.getAnonymousUserRequestContext() ); UserRequestManager.getInstance().destroySession( fixture.getAnonymousUserSession() ); } }