/**
* 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.CmisObjectType;
import org.xcmis.core.EnumIncludeRelationships;
import org.xcmis.messaging.CmisExtensionType;
import org.xcmis.messaging.CmisObjectInFolderContainerType;
import org.xcmis.messaging.CmisObjectInFolderListType;
import org.xcmis.messaging.CmisObjectListType;
import org.xcmis.messaging.CmisObjectParentsType;
import org.xcmis.soap.NavigationServicePort;
import org.xcmis.wssoap.impl.NavigationServicePortImpl;
import java.math.BigInteger;
import java.util.List;
public class NavigationServiceTest extends BaseTest
{
private NavigationServicePort port;
/** Service name. */
private final static String SERVICE_NAME = "NavigationService";
/** Address. */
private final static String SERVICE_ADDRESS = "http://localhost:8081/" + SERVICE_NAME;
/** Server. */
private Server server;
public void setUp() throws Exception
{
super.setUp();
server =
complexDeployService(SERVICE_ADDRESS, new NavigationServicePortImpl(), interceptors, null, true);
port = getNavigationService(SERVICE_ADDRESS);
assertNotNull(server);
assertNotNull(port);
}
public void testGetChilren() throws Exception
{
for (int i = 0; i < 3; i++)
{
createDocument(testFolderId, "doc" + i);
}
CmisObjectInFolderListType children = port.getChildren(//
repositoryId, //
testFolderId, //
null, // Filter
null, // OrderBy
false, // Allowable action
EnumIncludeRelationships.NONE, null, // Renditions
true, // Path-segment
null, // Max items
null, // Skip count
null // Extension
);
assertNotNull(children);
assertEquals(3, children.getObjects().size());
}
public void testGetFolderParent() throws Exception
{
String id = createFolder(testFolderId, "folder");
CmisObjectType parent = port.getFolderParent(repositoryId, id, null, new CmisExtensionType());
assertEquals(testFolderId, getObjectId(parent));
}
public void testGetDescendants() throws Exception
{
String id = testFolderId;
for (int i = 0; i < 3; i++)
{
id = createFolder(id, "folder" + i);
}
List<CmisObjectInFolderContainerType> resp2 =
port.getDescendants(repositoryId, testFolderId, BigInteger.valueOf(3), null, false,
EnumIncludeRelationships.NONE, null, false, new CmisExtensionType());
assertNotNull(resp2);
}
public void testGetObjectParents() throws Exception
{
String id = createDocument(testFolderId, "doc");
List<CmisObjectParentsType> parents = port.getObjectParents(//
repositoryId, //
id, //
null, // Property filter
false, // Allowable actions
EnumIncludeRelationships.NONE, //
null, // Rendition filter
true, // Include relative path segments
null // Extension
);
assertEquals(1, parents.size());
assertEquals(testFolderId, getObjectId(parents.get(0).getObject()));
}
public void testGetCheckedoutDocs() throws Exception
{
String id = createDocument(testFolderId, "doc");
conn.checkout(id);
CmisObjectListType checkedout = port.getCheckedOutDocs(//
repositoryId, //
testFolderId, //
null, // Property Filter
null, // OrderBy
false, // Allowable actions
EnumIncludeRelationships.NONE, //
null, // Rendition Filter
null, // Max items
null, // Skip count
null // Extension
);
assertNotNull(checkedout);
assertEquals(BigInteger.ONE, checkedout.getNumItems());
}
public void testGetFolderTree() throws Exception
{
String lev1 = createFolder(testFolderId, "folder1");
List<CmisObjectInFolderContainerType> tree = port.getFolderTree(//
repositoryId, //
testFolderId, //
BigInteger.valueOf(-1), // depth
null, // Property Filter
false, // Allowable actions
EnumIncludeRelationships.NONE, //
null, // Rendition filter
true, // Include path-segments
null // Extension
);
assertNotNull(tree);
assertEquals(lev1, getObjectId(tree.get(0).getObjectInFolder().getObject()));
}
private NavigationServicePort getNavigationService(String address)
{
org.apache.cxf.jaxws.JaxWsProxyFactoryBean client = new org.apache.cxf.jaxws.JaxWsProxyFactoryBean();
client.setServiceClass(NavigationServicePort.class);
client.setAddress(address);
Object obj = client.create();
return (NavigationServicePort)obj;
}
protected void tearDown() throws Exception
{
server.stop();
super.tearDown();
}
}