You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ed...@apache.org on 2003/06/25 19:02:25 UTC
cvs commit: cocoon-lenya/src/test/org/apache/lenya/cms/task DocumentCopyTaskTest.java
edith 2003/06/25 10:02:25
Added: src/test/org/apache/lenya/cms/task DocumentCopyTaskTest.java
Log:
test class for the copying of a document
Revision Changes Path
1.1 cocoon-lenya/src/test/org/apache/lenya/cms/task/DocumentCopyTaskTest.java
Index: DocumentCopyTaskTest.java
===================================================================
/*
* <License>
* The Apache Software License
*
* Copyright (c) 2002 lenya. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* 3. All advertising materials mentioning features or use of this software must
* display the following acknowledgment: "This product includes software developed
* by lenya (http://www.lenya.org)"
*
* 4. The name "lenya" must not be used to endorse or promote products derived from
* this software without prior written permission. For written permission, please
* contact contact@lenya.org
*
* 5. Products derived from this software may not be called "lenya" nor may "lenya"
* appear in their names without prior written permission of lenya.
*
* 6. Redistributions of any form whatsoever must retain the following acknowledgment:
* "This product includes software developed by lenya (http://www.lenya.org)"
*
* THIS SOFTWARE IS PROVIDED BY lenya "AS IS" WITHOUT ANY WARRANTY EXPRESS OR IMPLIED,
* INCLUDING THE WARRANTY OF NON-INFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTI-
* BILITY AND FITNESS FOR A PARTICULAR PURPOSE. lenya WILL NOT BE LIABLE FOR ANY DAMAGES
* SUFFERED BY YOU AS A RESULT OF USING THIS SOFTWARE. IN NO EVENT WILL lenya BE LIABLE
* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR LOST PROFITS EVEN IF lenya HAS
* BEEN ADVISED OF THE POSSIBILITY OF THEIR OCCURRENCE. lenya WILL NOT BE LIABLE FOR ANY
* THIRD PARTY CLAIMS AGAINST YOU.
*
* Lenya includes software developed by the Apache Software Foundation, W3C,
* DOM4J Project, BitfluxEditor and Xopus.
* </License>
*/
package org.apache.lenya.cms.task;
import java.io.File;
import java.util.StringTokenizer;
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.lenya.cms.PublicationHelper;
import org.apache.lenya.cms.publication.DefaultSiteTree;
import org.apache.lenya.cms.publication.SiteTree;
import org.apache.lenya.cms.publication.SiteTreeNode;
import org.apache.lenya.cms.rc.RevisionController;
/**
* Class for testing the task to copy a document.
* Extend the AntTask class.
* @author edith
*/
public class DocumentCopyTaskTest extends AntTaskTest {
private long time = 0;
/**
* Creates a new DocumentCopyTaskTest object.
* @param test
*/
public DocumentCopyTaskTest(String test) {
super(test);
}
/**
* Creates a test suite.
* @return Test
**/
public static Test getSuite() {
return new TestSuite(DocumentCopyTaskTest.class);
}
/**
* The main program for the DocumentCopyTaskTest class
*
* @param args The command line arguments
*/
public static void main(String[] args) {
AntTaskTest.initialize(args);
TestRunner.run(getSuite());
}
public static final String FIRST_DOCUMENT_ID = "/tutorial";
public static final String SEC_DOCUMENT_ID = "/features";
public static final String AUTHORING_PATH = "content/authoring".replace('/', File.separatorChar);
public static final String TREE_FILE = "sitetree.xml";
public static final String AUTHORING_RESOURCE = "resources/authoring";
public static final String RCML_DIR = "content/rcml";
public static final String RCBAK_DIR = "content/rcbak";
/**
* @see org.apache.lenya.cms.task.AntTaskTest#getTaskParameters()
**/
protected Parameters getTaskParameters() {
Parameters parameters = super.getTaskParameters();
parameters.setParameter("properties.node.firstdocumentid", FIRST_DOCUMENT_ID);
parameters.setParameter("properties.node.secdocumentid", SEC_DOCUMENT_ID);
return parameters;
}
/**
* Returns the target test.
* @return target.
*/
protected String getTarget() {
return "copyDocument";
}
/**
* prepare the test
*/
protected void prepareTest() throws Exception {
File publicationDirectory = PublicationHelper.getPublication().getDirectory();
String publicationPath = publicationDirectory.getAbsolutePath()+ File.separator;
File authoringDirectory = new File(publicationPath, AUTHORING_PATH);
// TODO generate the resources
// generate the rcml and rcbak files
File rcmlDirectory = new File(publicationPath , RCML_DIR);
File rcbakDirectory = new File(publicationPath , RCBAK_DIR);
RevisionController rc = new RevisionController(rcmlDirectory.getAbsolutePath(), rcbakDirectory.getAbsolutePath(), publicationPath);
String filename = AUTHORING_PATH +FIRST_DOCUMENT_ID + File.separator + "index.xml";
rc.reservedCheckOut(filename, "lenya");
time = rc.reservedCheckIn(filename, "lenya", true);
}
/**
* evaluate the test
*/
protected void evaluateTest() throws Exception {
File publicationDirectory = PublicationHelper.getPublication().getDirectory();
String publicationPath = publicationDirectory.getAbsolutePath();
File authoringDirectory = new File(publicationPath, AUTHORING_PATH);
StringTokenizer st = new StringTokenizer(FIRST_DOCUMENT_ID , "/", true);
int l = st.countTokens();
for (int i=1; i<l; i++) {
st.nextToken();
}
String secdocumentid = SEC_DOCUMENT_ID+"/"+st.nextToken();
String filepath = secdocumentid + File.separator + "index.xml";
File documentFile = new File(authoringDirectory, filepath);
assertTrue(documentFile.exists());
System.out.println("Document was copied: " + documentFile.getAbsolutePath());
File rcmlDirectory = new File(publicationPath , RCML_DIR);
String rcmlFilePath = filepath+".rcml";
File rcmlFile = new File(rcmlDirectory , AUTHORING_PATH + rcmlFilePath);
assertTrue(rcmlFile.exists());
System.out.println("rcml file was copied: " + rcmlFile.getAbsolutePath());
File rcbakDirectory = new File(publicationPath , RCBAK_DIR);
String rcbakFilePath= filepath +".bak." +time ;
File rcbakFile = new File(rcbakDirectory, AUTHORING_PATH + rcbakFilePath);
assertTrue(rcbakFile.exists());
System.out.println("Backup was copied: " + rcbakFile.getAbsolutePath());
//TODO evaluation of meta, workflow
File sitetreeFile = new File(authoringDirectory, TREE_FILE);
SiteTree sitetree = new DefaultSiteTree(sitetreeFile);
SiteTreeNode node = sitetree.getNode(secdocumentid);
assertNotNull(node);
System.out.println("Sitetree node with id "+node.getId()+" was created as child of node with id: " + node.getAbsoluteParentId());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org