package com.processpuzzle.sharedfixtures.domaintier; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.domain.Application; import com.processpuzzle.application.security.domain.User; import com.processpuzzle.application.security.domain.UserRepository; import com.processpuzzle.user_session.domain.StaticUserSessionHolder; import com.processpuzzle.user_session.domain.UserRequestManager; import com.processpuzzle.user_session.domain.UserSessionHolder; public class TestUserRequestFixture { private static TestUserRequestFixture soleInstance; private static boolean isConfigured = false; private Application application; private ProcessPuzzleContext applicationContext; private boolean saveUser; protected TestUserRequestFixture( Application application, boolean saveUser ) { super(); this.application = application; this.applicationContext = application.getContext(); } public static TestUserRequestFixture getInstance( Application application ) { return getInstance( application, false ); } public static TestUserRequestFixture getInstance( Application application, boolean saveUser ) { if( !isConfigured ) { soleInstance = new TestUserRequestFixture( application, saveUser ); } return soleInstance; } public void setUp() { User testUser = new User( "ProcessPuzzleTestUser", "ProcessPuzzle" ); if( saveUser ) { UserRepository userRepository = applicationContext.getRepository( UserRepository.class ); userRepository.add( testUser ); } UserRequestManager requestManager = UserRequestManager.getInstance(); UserSessionHolder sessionHolder = new StaticUserSessionHolder(); requestManager.createSession( sessionHolder, testUser, application ); requestManager.createRequestContext( sessionHolder ); isConfigured = true; } public void tearDown() { isConfigured = false; } }