/*
* Copyright (C) 2003-2010 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.services.jcr.usecases;
import org.exoplatform.services.jcr.impl.core.SessionImpl;
import javax.jcr.Item;
import javax.jcr.Node;
import javax.jcr.Session;
/**
* Created by The eXo Platform SAS.
*
* <br>Date:
*
* @author <a href="karpenko.sergiy@gmail.com">Karpenko Sergiy</a>
* @version $Id: TestWorksapceSamenameNodeCopy.java 111 2008-11-11 11:11:11Z serg $
*/
public class TestWorkspaceSamenameNodeCopy extends BaseUsecasesTest
{
private String parentNodeName = null;
public void testWorksapceSamenameNodeCopy() throws Exception
{
parentNodeName = "myNode";
// add node to ws workspace
Session sessionWS = (SessionImpl)repository.login(credentials, "ws");
sessionWS.getRootNode().addNode("myNode", "nt:unstructured");
sessionWS.save();
assertTrue(sessionWS.itemExists("/myNode"));
// copy node to another workspase
Session sessionWS2 = (SessionImpl)repository.login(credentials, "ws2");
sessionWS2.getWorkspace().copy("ws", "/myNode", "/myNode");
assertTrue(sessionWS2.itemExists("/myNode"));
}
public void tearDown() throws Exception
{
if (parentNodeName != null)
{
// clean up workspaces
Session sessionWS = (SessionImpl)repository.login(credentials, "ws");
Item item = sessionWS.getItem("/" + parentNodeName);
item.remove();
sessionWS.save();
Session sessionWS2 = (SessionImpl)repository.login(credentials, "ws2");
item = sessionWS2.getItem("/" + parentNodeName);
item.remove();
sessionWS2.save();
}
parentNodeName = null;
super.tearDown();
}
public void testWorksapceSamenameNodeCopy2() throws Exception
{
parentNodeName = "parent";
// add node to ws workspace
Session sessionWS = (SessionImpl)repository.login(credentials, "ws");
Node parent1 = sessionWS.getRootNode().addNode("parent");
parent1.addNode("myNode", "nt:unstructured");
sessionWS.save();
assertTrue(sessionWS.itemExists("/parent/myNode"));
// copy node to another workspase
Session sessionWS2 = (SessionImpl)repository.login(credentials, "ws2");
Node parent2 = sessionWS2.getRootNode().addNode("parent");
sessionWS2.save();
sessionWS2.getWorkspace().copy("ws", "/parent/myNode", "/parent/myNode");
assertTrue(sessionWS2.itemExists("/parent/myNode"));
}
public void testWorksapceSamenameNodeCopyWithSubNodes() throws Exception
{
parentNodeName = "myNode";
// add node to ws workspace
Session sessionWS = (SessionImpl)repository.login(credentials, "ws");
Node n = sessionWS.getRootNode().addNode("myNode", "nt:unstructured");
n.addNode("subnode", "nt:unstructured");
sessionWS.save();
assertTrue(sessionWS.itemExists("/myNode"));
assertTrue(sessionWS.itemExists("/myNode/subnode"));
// copy node to another workspase
Session sessionWS2 = (SessionImpl)repository.login(credentials, "ws2");
sessionWS2.getWorkspace().copy("ws", "/myNode", "/myNode");
assertTrue(sessionWS2.itemExists("/myNode"));
assertTrue(sessionWS2.itemExists("/myNode/subnode"));
}
}