/** * $Id: ServiceTestManager.java 113492 2012-09-24 21:05:30Z azeckoski@unicon.net $ * $URL: https://source.sakaiproject.org/svn/entitybroker/trunk/rest/src/test/org/sakaiproject/entitybroker/rest/ServiceTestManager.java $ * TestManager.java - entity-broker - Jul 23, 2008 6:27:29 PM - azeckoski ************************************************************************** * Copyright (c) 2008, 2009 The Sakai Foundation * * Licensed under the Educational Community License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sakaiproject.entitybroker.rest; import org.sakaiproject.entitybroker.impl.EntityBrokerImpl; import org.sakaiproject.entitybroker.impl.EntityBrokerManagerImpl; import org.sakaiproject.entitybroker.impl.entityprovider.EntityProviderManagerImpl; import org.sakaiproject.entitybroker.mocks.EntityViewAccessProviderManagerMock; import org.sakaiproject.entitybroker.mocks.HttpServletAccessProviderManagerMock; import org.sakaiproject.entitybroker.mocks.data.TestData; import org.sakaiproject.entitybroker.providers.EntityPropertiesService; import org.sakaiproject.entitybroker.providers.ExternalIntegrationProvider; import org.sakaiproject.entitybroker.rest.EntityActionsManager; import org.sakaiproject.entitybroker.rest.EntityBatchHandler; import org.sakaiproject.entitybroker.rest.EntityDescriptionManager; import org.sakaiproject.entitybroker.rest.EntityEncodingManager; import org.sakaiproject.entitybroker.rest.EntityHandlerImpl; import org.sakaiproject.entitybroker.rest.EntityRedirectsManager; import org.sakaiproject.entitybroker.util.core.EntityPropertiesServiceSimple; import org.sakaiproject.entitybroker.util.core.EntityProviderMethodStoreImpl; import org.sakaiproject.entitybroker.util.external.ExternalIntegrationProviderMock; import org.sakaiproject.entitybroker.util.request.RequestGetterImpl; import org.sakaiproject.entitybroker.util.request.RequestStorageImpl; /** * This creates all the needed services (as if it were the component manager), * this will let us create the objects we need without too much confusion and ensure * we are using the same ones * * @author Aaron Zeckoski (azeckoski @ gmail.com) */ public class ServiceTestManager { private static volatile ServiceTestManager instance; public static ServiceTestManager getInstance() { if (instance == null) { instance = new ServiceTestManager( new TestData() ); } return instance; } public static void setInstance(ServiceTestManager sts) { instance = sts; } private EntityBrokerRESTServiceManager entityBrokerRESTServiceManager; public EntityBrokerRESTServiceManager getEntityBrokerRESTServiceManager() { return entityBrokerRESTServiceManager; } private HttpServletAccessProviderManagerMock httpServletAccessProviderManager; private EntityViewAccessProviderManagerMock entityViewAccessProviderManager; private RequestStorageImpl requestStorage; private RequestGetterImpl requestGetter; private EntityProviderMethodStoreImpl entityProviderMethodStore; private EntityPropertiesService entityPropertiesService; private EntityProviderManagerImpl entityProviderManager; public EntityBrokerManagerImpl entityBrokerManager; public EntityBrokerImpl entityBroker; public ExternalIntegrationProvider externalIntegrationProvider; public EntityActionsManager entityActionsManager; public EntityEncodingManager entityEncodingManager; public EntityRedirectsManager entityRedirectsManager; public EntityBatchHandler entityBatchHandler; public EntityDescriptionManager entityDescriptionManager; public EntityHandlerImpl entityRequestHandler; public EntityRESTProviderBase entityRESTProvider; public TestData td; public TestData getTestData() { return td; } public ServiceTestManager(TestData td) { this.td = td; initializeCoreServiceMocks(); initializeRESTServices(); setInstance(this); } public void initializeRESTServices() { this.entityBrokerRESTServiceManager = new EntityBrokerRESTServiceManager(this.entityBrokerManager, this.httpServletAccessProviderManager); // get out the services from the service manager this.entityActionsManager = this.entityBrokerRESTServiceManager.getEntityActionsManager(); this.entityBatchHandler = this.entityBrokerRESTServiceManager.getEntityBatchHandler(); this.entityDescriptionManager = this.entityBrokerRESTServiceManager.getEntityDescriptionManager(); this.entityEncodingManager = this.entityBrokerRESTServiceManager.getEntityEncodingManager(); this.entityRedirectsManager = this.entityBrokerRESTServiceManager.getEntityRedirectsManager(); this.entityRequestHandler = this.entityBrokerRESTServiceManager.getEntityRequestHandler(); this.entityRESTProvider = this.entityBrokerRESTServiceManager.getEntityRESTProvider(); } public void initializeCoreServiceMocks() { requestGetter = new RequestGetterImpl(); externalIntegrationProvider = new ExternalIntegrationProviderMock(); entityPropertiesService = new EntityPropertiesServiceSimple(); httpServletAccessProviderManager = new HttpServletAccessProviderManagerMock(); entityViewAccessProviderManager = new EntityViewAccessProviderManagerMock(); entityProviderMethodStore = new EntityProviderMethodStoreImpl(); requestStorage = new RequestStorageImpl(requestGetter); entityActionsManager = new EntityActionsManager(entityProviderMethodStore); entityRedirectsManager = new EntityRedirectsManager(entityBrokerManager, entityProviderMethodStore, requestStorage); entityProviderManager = new EntityProviderManagerImpl(requestStorage, requestGetter, entityPropertiesService, entityProviderMethodStore); entityProviderManager.registerEntityProvider(td.entityProvider1); entityProviderManager.registerEntityProvider(td.entityProvider1T); entityProviderManager.registerEntityProvider(td.entityProvider2); entityProviderManager.registerEntityProvider(td.entityProvider3); entityProviderManager.registerEntityProvider(td.entityProvider4); entityProviderManager.registerEntityProvider(td.entityProvider5); entityProviderManager.registerEntityProvider(td.entityProvider6); entityProviderManager.registerEntityProvider(td.entityProvider7); entityProviderManager.registerEntityProvider(td.entityProvider8); entityProviderManager.registerEntityProvider(td.entityProviderA); entityProviderManager.registerEntityProvider(td.entityProviderA1); entityProviderManager.registerEntityProvider(td.entityProviderA2); entityProviderManager.registerEntityProvider(td.entityProviderA3); entityProviderManager.registerEntityProvider(td.entityProviderU1); entityProviderManager.registerEntityProvider(td.entityProviderU2); entityProviderManager.registerEntityProvider(td.entityProviderU3); entityProviderManager.registerEntityProvider(td.entityProviderTag); entityProviderManager.registerEntityProvider(td.entityProviderB1); entityProviderManager.registerEntityProvider(td.entityProviderB2); entityProviderManager.registerEntityProvider(td.entityProviderS1); // add new providers here entityBrokerManager = new EntityBrokerManagerImpl(entityProviderManager, entityPropertiesService, entityViewAccessProviderManager, externalIntegrationProvider); entityBroker = new EntityBrokerImpl(entityProviderManager, entityBrokerManager, requestStorage); } }