/**
* $Id: ServiceTestManager.java 113492 2012-09-24 21:05:30Z azeckoski@unicon.net $
* $URL: https://source.sakaiproject.org/svn/entitybroker/trunk/impl/src/test/org/sakaiproject/entitybroker/impl/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.impl;
import org.sakaiproject.entitybroker.access.EntityViewAccessProviderManager;
import org.sakaiproject.entitybroker.access.HttpServletAccessProviderManager;
import org.sakaiproject.entitybroker.dao.EntityBrokerDao;
import org.sakaiproject.entitybroker.entityprovider.EntityProviderManager;
import org.sakaiproject.entitybroker.entityprovider.extension.RequestGetterWrite;
import org.sakaiproject.entitybroker.entityprovider.extension.RequestStorageWrite;
import org.sakaiproject.entitybroker.impl.entityprovider.EntityProviderManagerImpl;
import org.sakaiproject.entitybroker.mocks.data.TestData;
import org.sakaiproject.entitybroker.providers.EntityPropertiesService;
import org.sakaiproject.entitybroker.providers.ExternalIntegrationProvider;
import org.sakaiproject.entitybroker.util.core.EntityProviderMethodStoreImpl;
import org.sakaiproject.entitybroker.util.external.ExternalIntegrationProviderMock;
/**
* 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)
*/
@SuppressWarnings("deprecation")
public class ServiceTestManager {
private static ServiceTestManager instance;
public static ServiceTestManager getInstance() {
if (instance == null) {
instance = new ServiceTestManager( new TestData(), null );
}
return instance;
}
public static void setInstance(ServiceTestManager sts) {
instance = sts;
}
private EntityBrokerCoreServiceManager entityBrokerCoreServiceManager;
public EntityBrokerCoreServiceManager getEntityBrokerCoreServiceManager() {
return entityBrokerCoreServiceManager;
}
public RequestStorageWrite requestStorage;
public RequestGetterWrite requestGetter;
public EntityProviderMethodStoreImpl entityProviderMethodStore;
public EntityPropertiesService entityPropertiesService;
public EntityProviderManagerImpl entityProviderManager;
public EntityBrokerManagerImpl entityBrokerManager;
public HttpServletAccessProviderManager httpServletAccessProviderManager;
public EntityViewAccessProviderManager entityViewAccessProviderManager;
public EntityMetaPropertiesService entityMetaPropertiesService;
public EntityTaggingService entityTaggingService;
public ExternalIntegrationProvider externalIntegrationProvider;
public TestData td;
public TestData getTestData() {
return td;
}
public ServiceTestManager(TestData td) {
this(td, null);
}
public ServiceTestManager(TestData td, EntityBrokerDao dao) {
this.td = td;
this.externalIntegrationProvider = new ExternalIntegrationProviderMock();
this.entityBrokerCoreServiceManager = new EntityBrokerCoreServiceManager(dao, true);
// init the variables for the getters
this.requestGetter = this.entityBrokerCoreServiceManager.getRequestGetter();
this.entityPropertiesService = this.entityBrokerCoreServiceManager.getEntityPropertiesService();
this.httpServletAccessProviderManager = this.entityBrokerCoreServiceManager.getHttpServletAccessProviderManager();
this.entityViewAccessProviderManager = this.entityBrokerCoreServiceManager.getEntityViewAccessProviderManager();
this.entityProviderMethodStore = (EntityProviderMethodStoreImpl) this.entityBrokerCoreServiceManager.getEntityProviderMethodStore();
this.requestStorage = this.entityBrokerCoreServiceManager.getRequestStorage();
this.entityProviderManager = (EntityProviderManagerImpl) this.entityBrokerCoreServiceManager.getEntityProviderManager();
this.entityBrokerManager = (EntityBrokerManagerImpl) this.entityBrokerCoreServiceManager.getEntityBrokerManager();
this.entityBrokerManager.setExternalIntegrationProvider(this.externalIntegrationProvider);
this.entityMetaPropertiesService = this.entityBrokerCoreServiceManager.getEntityMetaPropertiesService();
this.entityTaggingService = this.entityBrokerCoreServiceManager.getEntityTaggingService();
initTestProviders(this.entityProviderManager, this.td);
setInstance(this);
}
public void initTestProviders(EntityProviderManager entityProviderManager, TestData td) {
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
}
}