/** * Copyright (C) 2003-2008 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.service; import org.exoplatform.commons.chromattic.ChromatticManager; import org.exoplatform.component.test.AbstractKernelTest; import org.exoplatform.component.test.ConfigurationUnit; import org.exoplatform.component.test.ConfiguredBy; import org.exoplatform.component.test.ContainerScope; import org.exoplatform.container.PortalContainer; import org.exoplatform.container.component.ComponentRequestLifecycle; import org.exoplatform.services.organization.OrganizationService; import org.exoplatform.services.rest.impl.ApplicationContextImpl; import org.exoplatform.services.rest.impl.ProviderBinder; import org.exoplatform.services.rest.impl.RequestHandlerImpl; import org.exoplatform.services.rest.impl.ResourceBinder; /** * @author <a href="mailto:andrew00x@gmail.com">Andrey Parfonov</a> * @version $Id: $ */ @ConfiguredBy( { @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.test.jcr-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.test.organization-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.ks.webservice.test-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.portal-configuration1.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.portal-configuration2.xml") }) public abstract class BaseTest extends AbstractKernelTest { protected PortalContainer container; protected ProviderBinder providers; protected ResourceBinder binder; protected RequestHandlerImpl requestHandler; protected OrganizationService orgService; protected ChromatticManager chromatticManager; public void setUp() throws Exception { container = PortalContainer.getInstance(); chromatticManager = (ChromatticManager) container.getComponentInstanceOfType(ChromatticManager.class); orgService = (OrganizationService) container.getComponentInstanceOfType(OrganizationService.class); binder = (ResourceBinder) container.getComponentInstanceOfType(ResourceBinder.class); requestHandler = (RequestHandlerImpl) container.getComponentInstanceOfType(RequestHandlerImpl.class); ProviderBinder.setInstance(new ProviderBinder()); providers = ProviderBinder.getInstance(); // System.out.println("##########################"+providers); ApplicationContextImpl.setCurrent(new ApplicationContextImpl(null, null, providers)); binder.clear(); } protected void start() { ((ComponentRequestLifecycle) orgService).startRequest(container); } protected void stop() { ((ComponentRequestLifecycle) orgService).endRequest(container); } public void tearDown() throws Exception { } public boolean registry(Object resource) throws Exception { // container.registerComponentInstance(resource); return binder.bind(resource); } public boolean registry(Class<?> resourceClass) throws Exception { // container.registerComponentImplementation(resourceClass.getName(), resourceClass); return binder.bind(resourceClass); } public boolean unregistry(Object resource) { // container.unregisterComponentByInstance(resource); return binder.unbind(resource.getClass()); } public boolean unregistry(Class<?> resourceClass) { // container.unregisterComponent(resourceClass.getName()); return binder.unbind(resourceClass); } }