001: /*
002: * ====================================================================
003: *
004: * The Apache Software License, Version 1.1
005: *
006: * Copyright (c) 1999-2003 The Apache Software Foundation.
007: * All rights reserved.
008: *
009: * Redistribution and use in source and binary forms, with or without
010: * modification, are permitted provided that the following conditions
011: * are met:
012: *
013: * 1. Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * 2. Redistributions in binary form must reproduce the above copyright
017: * notice, this list of conditions and the following disclaimer in
018: * the documentation and/or other materials provided with the
019: * distribution.
020: *
021: * 3. The end-user documentation included with the redistribution, if
022: * any, must include the following acknowledgement:
023: * "This product includes software developed by the
024: * Apache Software Foundation (http://www.apache.org/)."
025: * Alternately, this acknowledgement may appear in the software itself,
026: * if and wherever such third-party acknowledgements normally appear.
027: *
028: * 4. The names "The Jakarta Project", "Commons", and "Apache Software
029: * Foundation" must not be used to endorse or promote products derived
030: * from this software without prior written permission. For written
031: * permission, please contact apache@apache.org.
032: *
033: * 5. Products derived from this software may not be called "Apache"
034: * nor may "Apache" appear in their names without prior written
035: * permission of the Apache Software Foundation.
036: *
037: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
038: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
039: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
040: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
041: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
042: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
043: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
044: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
045: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
046: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
047: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
048: * SUCH DAMAGE.
049: * ====================================================================
050: *
051: * This software consists of voluntary contributions made by many
052: * individuals on behalf of the Apache Software Foundation. For more
053: * information on the Apache Software Foundation, please see
054: * <http://www.apache.org/>.
055: *
056: */
057:
058: package org.apache.commons.jrcs.rcs;
059:
060: import java.util.Date;
061:
062: import junit.framework.TestCase;
063:
064: /**
065: * Basic test for the formatter.
066: *
067: * @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a>
068: */
069: public class KeywordsFormatTest extends TestCase {
070: private static final KeywordsFormat FORMATTER = new KeywordsFormat();
071: private static final String RCS_KEYWORDS = "$Id: KeywordsFormatTest.java 2967 2005-10-26 10:52:33Z ian@caret.cam.ac.uk $\n"
072: + "$Header: /home/projects/jrcs/scm/jrcs/src/test/org/apache/commons/jrcs/rcs/KeywordsFormatTest.java,v 1.3 2003/10/13 07:58:44 rdonkin Exp $\n"
073: + "$Source: /home/projects/jrcs/scm/jrcs/src/test/org/apache/commons/jrcs/rcs/KeywordsFormatTest.java,v $\n"
074: + "$RCSfile: KeywordsFormatTest.java,v $\n"
075: + "$Revision: 2967 $\n"
076: + "$Date: 2005-10-26 06:52:33 -0400 (Wed, 26 Oct 2005) $\n"
077: + "$Author: ian@caret.cam.ac.uk $\n"
078: + "$State: Exp $\n"
079: + "$Locker: $\n";
080: // don't get bitten by rcs keywords it should not be interpreted
081: private static final String RCS_CLEAN_KEYWORDS = "$" + "Id$\n"
082: + "$" + "Header$\n" + "$" + "Source$\n" + "$"
083: + "RCSfile$\n" + "$" + "Revision$\n" + "$" + "Date$\n"
084: + "$" + "Author$\n" + "$" + "State$\n" + "$" + "Locker$\n";
085:
086: private static final Object[] REVISION_INFO = new Object[] {
087: "a/b/c/d/File.ext", "File.ext", "1.1", new Date(),
088: "theauthor", "thestate", "thelocker" };
089:
090: private static final String RCS_NOW = FORMATTER.Id_FORMAT
091: .format(REVISION_INFO)
092: + "\n"
093: + FORMATTER.Header_FORMAT.format(REVISION_INFO)
094: + "\n"
095: + FORMATTER.Source_FORMAT.format(REVISION_INFO)
096: + "\n"
097: + FORMATTER.RCSFile_FORMAT.format(REVISION_INFO)
098: + "\n"
099: + FORMATTER.Revision_FORMAT.format(REVISION_INFO)
100: + "\n"
101: + FORMATTER.Date_FORMAT.format(REVISION_INFO)
102: + "\n"
103: + FORMATTER.Author_FORMAT.format(REVISION_INFO)
104: + "\n"
105: + FORMATTER.State_FORMAT.format(REVISION_INFO)
106: + "\n"
107: + FORMATTER.Locker_FORMAT.format(REVISION_INFO) + "\n";
108:
109: public KeywordsFormatTest(String s) {
110: super (s);
111: }
112:
113: public void testReset() throws Exception {
114: String result = FORMATTER.reset(RCS_KEYWORDS);
115: assertEquals(RCS_CLEAN_KEYWORDS, result);
116: }
117:
118: public void testUpdate() throws Exception {
119: String result = FORMATTER.update(RCS_KEYWORDS, REVISION_INFO);
120: assertEquals(RCS_NOW, result);
121: }
122: }
|