/*
* Copyright (C) 2003-2012 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.exoplatform.ecms.test;
import java.io.StringWriter;
import javax.jcr.RepositoryException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import org.apache.commons.lang.StringUtils;
import org.exoplatform.common.http.HTTPMethods;
import org.exoplatform.component.test.ConfigurationUnit;
import org.exoplatform.component.test.ConfiguredBy;
import org.exoplatform.component.test.ContainerScope;
import org.exoplatform.ecms.test.mock.MockRestService;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.resources.LocaleConfigService;
import org.exoplatform.services.rest.impl.ContainerResponse;
import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
import org.exoplatform.services.security.IdentityConstants;
/**
* Created by The eXo Platform SAS
* @author : Pham Duy Dong
* dongpd@exoplatform.com
*/
@ConfiguredBy({
@ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.portal-configuration.xml"),
@ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.identity-configuration.xml"),
@ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/standalone/ecms-test-configuration.xml"),
@ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/portal/mock-rest-configuration.xml")
})
public class DummyECMSTestCase extends BaseECMSResourceTestCase {
private final String MOCK_RESOURCE_URL = "/mock/guest";
public void setUp() throws Exception {
super.setUp();
MockRestService restService = (MockRestService) this.container.getComponentInstanceOfType(MockRestService.class);
this.binder.addResource(restService, null);
applySystemSession();
}
public void testInitServices() throws Exception {
assertNotNull(repositoryService);
assertEquals(repositoryService.getDefaultRepository().getConfiguration().getName(),
"repository");
assertEquals(repositoryService.getDefaultRepository()
.getConfiguration()
.getDefaultWorkspaceName(), "collaboration");
assertNotNull(container);
// assertEquals(repositoryService.getCurrentRepository().getWorkspaceNames().length, 4);
assertNotNull(getService(LocaleConfigService.class));
// System.out.println("Num of workspace: " + repositoryService.getCurrentRepository().getWorkspaceNames().length);
// System.out.println("Num of node types: " + repositoryService.getCurrentRepository().getNodeTypeManager().getAllNodeTypes().getSize());
// System.out.println("Num of locales: " + getService(LocaleConfigService.class).getLocalConfigs().size());
// System.out.println("hibernate" + (getService(HibernateService.class) == null));
// System.out.println("Cache: " + (getService(CacheService.class) == null));
// System.out.println("Document Reader : " + (getService(DocumentReaderService.class) == null));
// System.out.println("DescriptionService : " + (getService(DescriptionService.class) == null));
// System.out.println("DataStorage : " + (getService(DataStorage.class) == null));
// System.out.println("TransactionManagerLookup : " + (getService(TransactionManagerLookup.class)));
// System.out.println("TransactionService : " + (getService(TransactionService.class)));
// System.out.println("POMSessionManager : " + (getService(POMSessionManager.class)));
// System.out.println("ChromatticManager : " + (getService(ChromatticManager.class)));
// System.out.println("PicketLinkIDMService : " + (getService(PicketLinkIDMService.class)));
// System.out.println("PicketLinkIDMCacheService : " + (getService(PicketLinkIDMCacheService.class)));
// System.out.println("ResourceCompressor : " + (getService(ResourceCompressor.class)));
// System.out.println("ModelDataStorage : " + (getService(ModelDataStorage.class)));
// System.out.println("NavigationService : " + (getService(NavigationService.class)));
// System.out.println("JTAUserTransactionLifecycleService : " + (getService(JTAUserTransactionLifecycleService.class)));
// System.out.println("SkinService : " + (getService(SkinService.class)));
// System.out.println("PortalContainerInfo : " + (getService(PortalContainerInfo.class)));
// System.out.println("LogConfigurationInitializer : " + (getService(LogConfigurationInitializer.class)));
}
public void testInitializedServices() {
assertNotNull(this.container);
assertNotNull(this.orgService);
assertNotNull(this.repositoryService);
assertNotNull(this.sessionProviderService_);
}
public void testApplySession() throws RepositoryConfigurationException, RepositoryException{
assertNotNull(this.session);
assertNotNull(this.repository);
assertEquals(IdentityConstants.SYSTEM, session.getUserID());
applyUserSession("john", "gtn", COLLABORATION_WS);
assertNotNull(this.session);
assertEquals("john", session.getUserID());
applyUserSession("john", "gtn", DMSSYSTEM_WS);
assertNotNull(this.session);
assertEquals("john", session.getUserID());
}
public void testAchieveResource() throws Exception{
StringWriter writer = new StringWriter().append("name=guest");
byte[] data = writer.getBuffer().toString().getBytes("UTF-8");
MultivaluedMap<String, String> h = new MultivaluedMapImpl();
h.putSingle("content-type", MediaType.APPLICATION_FORM_URLENCODED.toString());
h.putSingle("content-length", "" + data.length);
ContainerResponse response = service(HTTPMethods.POST.toString(), MOCK_RESOURCE_URL, StringUtils.EMPTY, h, data);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
assertEquals("Registed guest", response.getEntity().toString());
response = service(HTTPMethods.GET.toString(), MOCK_RESOURCE_URL + "?name=guest", StringUtils.EMPTY, null, null);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
assertEquals("Hello guest", response.getEntity().toString());
response = service(HTTPMethods.DELETE.toString(), MOCK_RESOURCE_URL + "?name=guest", StringUtils.EMPTY, null, null);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
assertEquals("Removed guest", response.getEntity().toString());
}
public void tearDown() throws Exception {
super.tearDown();
}
}