/** * 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.sp.inmemory; import junit.framework.TestCase; import org.xcmis.spi.CmisConstants; import org.xcmis.spi.ContentStream; import org.xcmis.spi.DocumentData; import org.xcmis.spi.FolderData; import org.xcmis.spi.ObjectData; import org.xcmis.spi.PermissionService; import org.xcmis.spi.PolicyData; import org.xcmis.spi.RelationshipData; import org.xcmis.spi.RenditionManager; import org.xcmis.spi.UserContext; import org.xcmis.spi.model.Property; import org.xcmis.spi.model.PropertyDefinition; import org.xcmis.spi.model.TypeDefinition; import org.xcmis.spi.model.VersioningState; import org.xcmis.spi.model.impl.StringProperty; import java.util.HashMap; import java.util.Map; /** * @author <a href="mailto:andrey.parfonov@exoplatform.com">Andrey Parfonov</a> * @version $Id: BaseTest.java 2 2010-02-04 17:21:49Z andrew00x $ */ public abstract class BaseTest extends TestCase { protected StorageImpl storage; protected FolderData rootFolder; protected final String storageId = "inmem1"; protected TypeDefinition documentTypeDefinition; protected String principal = "root"; public void setUp() throws Exception { super.setUp(); HashMap<String, Object> properties = new HashMap<String, Object>(); properties.put("exo.cmis.changetoken.feature", false); StorageConfiguration configuration = new StorageConfiguration(storageId, storageId, null, -1, -1); storage = new StorageImpl(configuration, RenditionManager.getInstance(), new PermissionService()); UserContext.setCurrent(new UserContext(principal)); rootFolder = (FolderData)storage.getObjectById(storage.getRepositoryInfo().getRootFolderId()); documentTypeDefinition = storage.getTypeDefinition("cmis:document", true); } protected FolderData createFolder(FolderData parent, String name) throws Exception { PropertyDefinition<?> def = PropertyDefinitions.getPropertyDefinition("cmis:folder", CmisConstants.NAME); Map<String, Property<?>> properties = new HashMap<String, Property<?>>(); properties.put(CmisConstants.NAME, new StringProperty(def.getId(), def.getQueryName(), def.getLocalName(), def.getDisplayName(), name)); TypeDefinition typeDefinition = storage.getTypeDefinition("cmis:folder", true); FolderData folder = storage.createFolder(parent, typeDefinition, properties, null, null); return folder; } protected DocumentData createDocument(FolderData parent, String name, TypeDefinition typeDefinition, ContentStream content, VersioningState versioningState) throws Exception { PropertyDefinition<?> def = PropertyDefinitions.getPropertyDefinition("cmis:document", CmisConstants.NAME); Map<String, Property<?>> properties = new HashMap<String, Property<?>>(); properties.put(CmisConstants.NAME, new StringProperty(def.getId(), def.getQueryName(), def.getLocalName(), def.getDisplayName(), name)); DocumentData doc = storage.createDocument(parent, typeDefinition, properties, content, null, null, versioningState); return doc; } protected PolicyData createPolicy(String name, TypeDefinition typeDefinition, String policyText) throws Exception { PropertyDefinition<?> def = PropertyDefinitions.getPropertyDefinition("cmis:policy", CmisConstants.POLICY_TEXT); Map<String, Property<?>> properties = new HashMap<String, Property<?>>(); properties.put(CmisConstants.NAME, new StringProperty(def.getId(), def.getQueryName(), def.getLocalName(), def.getDisplayName(), name)); properties.put(CmisConstants.POLICY_TEXT, new StringProperty(def.getId(), def.getQueryName(), def.getLocalName(), def.getDisplayName(), policyText)); PolicyData policy = storage.createPolicy(null, typeDefinition, properties, null, null); return policy; } public RelationshipData createRelationship(String name, ObjectData source, ObjectData target, TypeDefinition typeDefinition) throws Exception { Map<String, Property<?>> properties = new HashMap<String, Property<?>>(); PropertyDefinition<?> defName = PropertyDefinitions.getPropertyDefinition("cmis:relationship", CmisConstants.NAME); properties.put(CmisConstants.NAME, new StringProperty(defName.getId(), defName.getQueryName(), defName.getLocalName(), defName.getDisplayName(), name)); RelationshipData relationship = storage.createRelationship(source, target, typeDefinition, properties, null, null); return relationship; } }