/** * Copyright (C) 2010 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.xcmis.wssoap; import org.apache.cxf.endpoint.Server; import org.xcmis.core.CmisPropertyStringDefinitionType; import org.xcmis.core.CmisRepositoryInfoType; import org.xcmis.core.CmisTypeDefinitionType; import org.xcmis.core.CmisTypeDocumentDefinitionType; import org.xcmis.core.EnumBaseObjectTypeIds; import org.xcmis.core.EnumCardinality; import org.xcmis.core.EnumContentStreamAllowed; import org.xcmis.core.EnumPropertyType; import org.xcmis.core.EnumUpdatability; import org.xcmis.messaging.CmisExtensionType; import org.xcmis.messaging.CmisRepositoryEntryType; import org.xcmis.messaging.CmisTypeContainer; import org.xcmis.soap.RepositoryServicePort; import org.xcmis.wssoap.impl.RepositoryServicePortImpl; import org.xcmis.wssoap.impl.TypeConverter; import java.math.BigInteger; import java.util.List; public class RepositoryServiceTest extends BaseTest { private RepositoryServicePort port; /** Service name. */ private final static String SERVICE_NAME = "RepositoryService"; /** Address. */ private final static String SERVICE_ADDRESS = "http://localhost:8081/" + SERVICE_NAME; /** Server. */ private Server server; private CmisTypeDocumentDefinitionType article; public void setUp() throws Exception { super.setUp(); server = complexDeployService(SERVICE_ADDRESS, new RepositoryServicePortImpl(), interceptors, null, true); port = getRepositoryService(SERVICE_ADDRESS); assertNotNull(server); assertNotNull(port); //cmis:article article = new CmisTypeDocumentDefinitionType(); article.setBaseId(EnumBaseObjectTypeIds.CMIS_DOCUMENT); article.setControllableACL(false); article.setControllablePolicy(false); article.setCreatable(true); article.setDescription("addition type test"); article.setDisplayName("cmis:article"); article.setFileable(true); article.setFulltextIndexed(false); article.setId("cmis:article"); article.setIncludedInSupertypeQuery(false); article.setLocalName("cmis:article"); article.setParentId("cmis:document"); article.setQueryable(false); article.setQueryName("cmis:article"); article.setContentStreamAllowed(EnumContentStreamAllowed.ALLOWED); article.setVersionable(false); CmisPropertyStringDefinitionType pd = new CmisPropertyStringDefinitionType(); pd.setCardinality(EnumCardinality.SINGLE); pd.setDisplayName("cmis:hello"); pd.setId("cmis:hello"); pd.setInherited(false); pd.setPropertyType(EnumPropertyType.STRING); pd.setUpdatability(EnumUpdatability.READWRITE); article.getPropertyDefinition().add(pd); conn.addType(TypeConverter.getTypeDefinition(article)); } public void testGetRepositories() throws Exception { List<CmisRepositoryEntryType> l = port.getRepositories(new CmisExtensionType()); assertEquals(1, l.size()); } public void testGetRepositoryInfo() throws Exception { CmisRepositoryInfoType info = port.getRepositoryInfo(repositoryId, new CmisExtensionType()); assertEquals(repositoryId, info.getRepositoryId()); } public void testGetTypeDefinition() throws Exception { CmisTypeDefinitionType docType = port.getTypeDefinition(repositoryId, "cmis:document", new CmisExtensionType()); assertNotNull(docType); } public void testGetTypeDescendants() throws Exception { List<CmisTypeContainer> typeDescendants = port.getTypeDescendants(repositoryId, "cmis:document", BigInteger.valueOf(1), true, new CmisExtensionType()); assertEquals(1, typeDescendants.size()); CmisTypeContainer level1 = typeDescendants.get(0); assertEquals("cmis:article", level1.getType().getId()); assertEquals(0, level1.getChildren().size()); // depth limited as 1. } private RepositoryServicePort getRepositoryService(String address) { org.apache.cxf.jaxws.JaxWsProxyFactoryBean client = new org.apache.cxf.jaxws.JaxWsProxyFactoryBean(); client.setServiceClass(RepositoryServicePort.class); client.setAddress(address); Object obj = client.create(); return (RepositoryServicePort)obj; } protected void tearDown() throws Exception { conn.removeType(article.getId()); server.stop(); super.tearDown(); } }