Package org.apache.lenya.cms.task

Source Code of org.apache.lenya.cms.task.DocumentRenameTaskTest

/*
* Copyright  1999-2004 The Apache Software Foundation
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/

/* $Id: DocumentRenameTaskTest.java,v 1.6 2004/03/04 15:41:10 egli Exp $  */

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.Publication;
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 rename a document.
*/
public class DocumentRenameTaskTest extends AntTaskTest {
  private long time = 0;

  /**
     * Creates a new DocumentRenameTaskTest object.
   * @param test the test
   */
  public DocumentRenameTaskTest(String test) {
    super(test);
  }

  /**
   * Creates a test suite.
   * @return Test
   **/
  public static Test getSuite() {
    return new TestSuite(DocumentRenameTaskTest.class);
  }

  /**
   * The main program for the DocumentRenameTaskTest 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 = "/doctypes/simple-document";
  public static final String SEC_DOCUMENT_ID = "newname";
  public static final String FIRST_AREA = "authoring";
  public static final String SEC_AREA = "authoring";
  public static final String AUTHORING_PATH = "content/authoring".replace('/', File.separatorChar);
  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);
    parameters.setParameter("properties.firstarea", FIRST_AREA);
    parameters.setParameter("properties.secarea", SEC_AREA);
    return parameters;
  }
   
  /**
   * Returns the target test.
   * @return target.
   */
  protected String getTarget() {
    return "renameDocument";
  }

  /**
   * prepare the test
     *
     * @throws Exception if an error occurs
   */
  protected void prepareTest() throws Exception {
    File publicationDirectory = PublicationHelper.getPublication().getDirectory();
        String publicationPath = publicationDirectory.getAbsolutePath()+ File.separator;
    String filename = AUTHORING_PATH +FIRST_DOCUMENT_ID + File.separator + "index_de.xml";
   
    // 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);
    rc.reservedCheckOut(filename, "lenya");  
    time = rc.reservedCheckIn(filename, "lenya", true);  

    // TODO generate the workflow, meta 
  }

  /**
   * evaluate the test
     *
     * @throws Exception if an error occurs
   */
  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 , "/");
    int l = st.countTokens();
        String secdocumentid = "";
    for (int i=1; i<l; i++) {
      secdocumentid= secdocumentid + "/" + st.nextToken();
    }
    secdocumentid = secdocumentid + "/" + SEC_DOCUMENT_ID;     
    System.out.println("the second document id" + secdocumentid);

    String filepath = secdocumentid + File.separator + "index_de.xml"
    String en_filepath = secdocumentid + File.separator + "index_en.xml"
    String firstfilepath = FIRST_DOCUMENT_ID + File.separator + "index_de.xml"
    String firsten_filepath = FIRST_DOCUMENT_ID + File.separator + "index_en.xml"

        //evaluate the file
    File documentFile = new File(authoringDirectory, filepath);
    assertTrue(documentFile.exists());
    System.out.println("Document was copied: " + documentFile.getAbsolutePath());
    File en_documentFile = new File(authoringDirectory, en_filepath);
    assertTrue(en_documentFile.exists());
    System.out.println("Document was copied: " + en_documentFile.getAbsolutePath());
    File firstdocumentFile = new File(authoringDirectory, firstfilepath);
    assertFalse(firstdocumentFile.exists());
    System.out.println("Document was deleted: " + firstdocumentFile.getAbsolutePath());
    File firsten_documentFile = new File(authoringDirectory, firsten_filepath);
    assertFalse(firsten_documentFile.exists());
    System.out.println("Document was deleted: " + firsten_documentFile.getAbsolutePath());

        //evaluate the rcml
    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());

    String firstRcmlFilePath = firstfilepath+".rcml";
    File firstRcmlFile = new File(rcmlDirectory , AUTHORING_PATH + firstRcmlFilePath);
    assertFalse(firstRcmlFile.exists());
    System.out.println("rcml file was deleted: " + firstRcmlFile.getAbsolutePath());

        //evaluate the backup
    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());

    String firstRcbakFilePath= firstfilepath +".bak." +time ;
    File firstRcbakFile = new File(rcbakDirectory, AUTHORING_PATH + firstRcbakFilePath);
    assertFalse(firstRcbakFile.exists());
    System.out.println("Backup was deleted: " + firstRcbakFile.getAbsolutePath());

    //TODO evaluation of meta, workflow
       
        //evaluate the node
    SiteTree sitetree = PublicationHelper.getPublication().getSiteTree(Publication.AUTHORING_AREA);
    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());
    SiteTreeNode firstnode = sitetree.getNode(FIRST_DOCUMENT_ID);
    assertNull(firstnode);
    System.out.println("Sitetree node for document id "+FIRST_DOCUMENT_ID+" was deleted");

    }
}
TOP

Related Classes of org.apache.lenya.cms.task.DocumentRenameTaskTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.