Package net.sourceforge.cruisecontrol.sourcecontrols

Source Code of net.sourceforge.cruisecontrol.sourcecontrols.VssJournalTest

/********************************************************************************
* CruiseControl, a Continuous Integration Toolkit
* Copyright (c) 2001, ThoughtWorks, Inc.
* 651 W Washington Ave. Suite 600
* Chicago, IL 60661 USA
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*     + Redistributions of source code must retain the above copyright
*       notice, this list of conditions and the following disclaimer.
*
*     + 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.
*
*     + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
*       names of its contributors may be used to endorse or promote
*       products derived from this software without specific prior
*       written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
********************************************************************************/
package net.sourceforge.cruisecontrol.sourcecontrols;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import junit.framework.TestCase;
import net.sourceforge.cruisecontrol.CruiseControlException;
import net.sourceforge.cruisecontrol.Modification;

/**
* @author Eli Tucker
*/
public class VssJournalTest extends TestCase {

    private VssJournal element;
   
    public VssJournalTest(String name) {
        super(name);
    }

    protected void setUp() {
        // Set up so that this element will match all tests.
        element = new VssJournal();
        element.setSsDir("/");
        element.setLastBuildDate(new Date(0));
    }

    public void testValidate() {
        VssJournal vj = new VssJournal();

        try {
            vj.validate();
            fail("VssJournal should throw exceptions when required attributes are not set.");
        } catch (CruiseControlException e) {
            assertTrue(true);
        }

        vj.setJournalFile("journalfile");
        vj.setSsDir("ssdir");

        try {
            vj.validate();
            assertTrue(true);
        } catch (CruiseControlException e) {
            fail("VssJournal should not throw exceptions when required attributes are set.");
        }
    }

    public void testSubstringToLastSlash() {
        assertTrue("$/Eclipse/src/main/com/itxc".equals(
         element.substringToLastSlash("$/Eclipse/src/main/com/itxc/eclipse")));
    }
   
    public void testSubstringFromLastSlash() {       
        assertTrue("eclipse".equals(
         element.substringFromLastSlash("$/Eclipse/src/main/com/itxc/eclipse")));
    }

    public void testIsInSsDir() {
        VssJournal element1 = new VssJournal();
        element1.setSsDir("/somedir");
        assertTrue(element1.isInSsDir("$/somedir/Hello/There"));
        // Should be case insensitive
        assertTrue(element1.isInSsDir("$/SomeDir/Another/Directory/page.htm"))
       
        element1.setSsDir("/");
        assertTrue(element1.isInSsDir("$/anythingCouldBeHere/Blah/blah"));
    }
   
    public void testIsBeforeLastBuild() {
        VssJournal element1 = new VssJournal();
        long beforeTime = System.currentTimeMillis();
        long afterTime = beforeTime + 50000;

        element1.setLastBuildDate(new Date(beforeTime));
        assertTrue(!element1.isBeforeLastBuild(new Date(afterTime)));
    }
   
    public void testHandleEntryCheckin() {
        List entry = new ArrayList();
        entry.add("$/AutoBuild/conf/cruisecontrol.properties");
        entry.add("Version: 5");
        entry.add("User: Etucker         Date:  7/06/01  Time:  2:11p");
        entry.add("Checked in");
        entry.add("Comment: Making cc email users when build failed");
       
        Modification mod = element.handleEntry(entry);
        assertEquals(mod.getFileName(), "cruisecontrol.properties");
        assertEquals(mod.getFolderName(), "$/AutoBuild/conf");
        assertEquals(mod.comment, "Comment: Making cc email users when build failed");
        assertEquals(mod.userName, "Etucker");
        assertEquals(mod.type, "vss");

        Modification.ModifiedFile modfile = (Modification.ModifiedFile) mod.files.get(0);
        assertEquals(modfile.action, "checkin");
    }
   
    public void testHandleEntryRename() {
        List entry = new ArrayList();
        entry.add("$/WILD/Client/English");
        entry.add("Version: 15");
        entry.add("User: Ddavis          Date:  7/10/01  Time: 10:41a");
        entry.add("body3.htm renamed to step3.htm ");
       
        Modification mod = element.handleEntry(entry);
        assertEquals(mod.getFileName(), "body3.htm");
        assertEquals(mod.getFolderName(), "$/WILD/Client/English");
        assertEquals(mod.comment, "");
        assertEquals(mod.userName, "Ddavis");
        assertEquals(mod.type, "vss");
       
        Modification.ModifiedFile modfile = (Modification.ModifiedFile) mod.files.get(0);
        assertEquals(modfile.action, "delete");
    }
   
    public void testHandleEntryLabel() {
        List entry = new ArrayList();
        entry.add("$/ThirdPartyComponents/jakarta-ant-1.3/lib");
        entry.add("Version: 7");
        entry.add("User: Etucker         Date:  7/06/01  Time: 10:28a");
        entry.add("Labeled test_label");
        entry.add("Comment: Just testing to see what all gets put in the log file");
       
        Modification mod = element.handleEntry(entry);
       
        assertEquals("Label entry added. Labels shouldn't be added.",
                     null, mod);
    }

}
   
TOP

Related Classes of net.sourceforge.cruisecontrol.sourcecontrols.VssJournalTest

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.