package com.processpuzzle.sharedfixtures.domaintier; import static org.mockito.Mockito.*; import org.mockito.Mock; import com.processpuzzle.application.configuration.domain.PersistenceContext; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.domain.Application; import com.processpuzzle.application.security.domain.AnonymousUser; import com.processpuzzle.application.security.domain.SystemAdministrator; import com.processpuzzle.application.security.domain.UserRepository; import com.processpuzzle.internalization.domain.ProcessPuzzleLocale; import com.processpuzzle.litest.fixture.GenericTestFixture; import com.processpuzzle.litest.fixture.TransientFreshFixture; import com.processpuzzle.user_session.domain.StaticUserSessionHolder; import com.processpuzzle.user_session.domain.UserRequestContext; import com.processpuzzle.user_session.domain.UserRequestManager; import com.processpuzzle.user_session.domain.UserSession; import com.processpuzzle.user_session.domain.UserSessionHolder; public class RequestContextInMockedApplicationFixture extends GenericTestFixture<UserRequestContext> implements TransientFreshFixture<UserRequestContext> { private static UserRequestManager requestManager; private static UserSessionHolder sessionHolder; @Mock private static UserRepository userRepository; @Mock private static AnonymousUser anonymousUser; @Mock private static SystemAdministrator systemAdministrator; @Mock private static Application application; @Mock private static ProcessPuzzleContext applicationContext; @Mock private static PersistenceContext persistenceContext; private UserRequestContext anonymousRequestContext; private UserRequestContext administratorRequestContext; private UserSession anonymousUserSession; private UserSession administratorSession; public RequestContextInMockedApplicationFixture() { super(); } public UserSession getAnonymousUserSession() { return anonymousUserSession; } public UserSession getAdministratorSesssion() { return administratorSession; } public UserRequestContext getAnonymousUserRequestContext() { return anonymousRequestContext; } public UserRequestContext getAdministratorRequestContext() { return administratorRequestContext; } public Application getApplication() { return application; } public ProcessPuzzleContext getApplicationContext() { return applicationContext; } public UserSessionHolder getSessionHolder() { return sessionHolder; } public AnonymousUser getAnonymousUser() { return anonymousUser; } public SystemAdministrator getSystemAdministrator() { return systemAdministrator; } @Override protected void configureAfterSutInstantiation() { } @Override protected void configureBeforeSutInstantiation() { userRepository = mock( UserRepository.class ); anonymousUser = mock( AnonymousUser.class ); systemAdministrator = mock( SystemAdministrator.class ); application = mock( Application.class ); applicationContext = mock( ProcessPuzzleContext.class ); persistenceContext = mock( PersistenceContext.class ); when( anonymousUser.getPrefferedLocale() ).thenReturn( new ProcessPuzzleLocale( "hu", "HU" ) ); when( application.getContext() ).thenReturn( applicationContext ); when( applicationContext.getPersistenceContext() ).thenReturn( persistenceContext ); when( persistenceContext.getRepositoryInstance( UserRepository.class )).thenReturn( userRepository ); when( userRepository.findAnonymousUser() ).thenReturn( anonymousUser ); when( userRepository.findSystemAdministrator() ).thenReturn( systemAdministrator ); sessionHolder = new StaticUserSessionHolder(); requestManager = UserRequestManager.getInstance(); anonymousUserSession = requestManager.createSession( sessionHolder, anonymousUser, application ); anonymousRequestContext = requestManager.createRequestContext( sessionHolder ); // administratorSession = requestManager.createSession( sessionHolder, systemAdministrator ); // administratorRequestContext = requestManager.createRequestContext( sessionHolder, application ); } @Override protected UserRequestContext instantiateSUT() { return anonymousRequestContext; } @Override protected void releaseResources() { // TODO Auto-generated method stub } }