KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > cruisecontrol > ModificationTest


1 /********************************************************************************
2  * CruiseControl, a Continuous Integration Toolkit
3  * Copyright (c) 2001, ThoughtWorks, Inc.
4  * 651 W Washington Ave. Suite 600
5  * Chicago, IL 60661 USA
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * + Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * + Redistributions in binary form must reproduce the above
16  * copyright notice, this list of conditions and the following
17  * disclaimer in the documentation and/or other materials provided
18  * with the distribution.
19  *
20  * + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
21  * names of its contributors may be used to endorse or promote
22  * products derived from this software without specific prior
23  * written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
29  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  ********************************************************************************/

37 package net.sourceforge.cruisecontrol;
38
39 import java.text.SimpleDateFormat JavaDoc;
40 import java.util.Date JavaDoc;
41
42 import junit.framework.TestCase;
43
44 public class ModificationTest extends TestCase {
45
46     public void testToXml() {
47         Date JavaDoc modifiedTime = new Date JavaDoc();
48         SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc("MM/dd/yyyy");
49         Modification mod = new Modification();
50
51         Modification.ModifiedFile modfile = mod.createModifiedFile("File\"Name&", "Folder'Name");
52         modfile.action = "checkin";
53
54         mod.modifiedTime = modifiedTime;
55         mod.userName = "User<>Name";
56         mod.comment = "Comment";
57
58         String JavaDoc base =
59             "<modification type=\"unknown\">"
60                 + "<file action=\"checkin\"><filename>File\"Name&amp;</filename>"
61                 + "<project>Folder'Name</project></file>"
62                 + "<date>" + formatter.format(modifiedTime) + "</date>"
63                 + "<user>User&lt;&gt;Name</user>"
64                 + "<comment><![CDATA[Comment]]></comment>";
65         String JavaDoc closingTag = "</modification>";
66         String JavaDoc expected = base + closingTag;
67
68         assertEquals(expected, mod.toXml(formatter));
69
70         String JavaDoc expectedWithEmail =
71             base + "<email>foo.bar@quuuux.quuux.quux.qux</email>" + closingTag;
72         mod.emailAddress = "foo.bar@quuuux.quuux.quux.qux";
73
74         assertEquals(expectedWithEmail, mod.toXml(formatter));
75     }
76
77     public void testBadComment() {
78         Date JavaDoc modifiedTime = new Date JavaDoc();
79         SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc("MM/dd/yyyy");
80         Modification mod = new Modification();
81
82         Modification.ModifiedFile modfile = mod.createModifiedFile("File\"Name&", "Folder'Name");
83         modfile.action = "checkin";
84
85         mod.modifiedTime = modifiedTime;
86         mod.userName = "User<>Name";
87         mod.comment = "Attempting to heal the wounded build.\0x18";
88
89         String JavaDoc base =
90             "<modification type=\"unknown\">"
91             + "<file action=\"checkin\"><filename>File\"Name&amp;</filename>"
92             + "<project>Folder'Name</project></file>"
93             + "<date>" + formatter.format(modifiedTime) + "</date>"
94             + "<user>User&lt;&gt;Name</user>"
95             + "<comment><![CDATA[Unable to parse comment. It contains illegal data.]]></comment>";
96         String JavaDoc closingTag = "</modification>";
97         String JavaDoc expected = base + closingTag;
98
99         assertEquals(expected, mod.toXml(formatter));
100     }
101
102     public void testToElementAndBack() throws Exception JavaDoc {
103         Date JavaDoc modifiedTime = new Date JavaDoc();
104         SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc("MM/dd/yyyy");
105         Modification mod = new Modification();
106
107         Modification.ModifiedFile modfile = mod.createModifiedFile("File\"Name&", "Folder'Name");
108         modfile.action = "checkin";
109
110         mod.modifiedTime = modifiedTime;
111         mod.userName = "User<>Name";
112         mod.comment = "Attempting to heal the wounded build.\0x18";
113
114         Modification modification = new Modification();
115         modification.fromElement(mod.toElement(formatter), formatter);
116         mod.equals(modification);
117         
118         // Test getFullPath() of Modificaiton object.
119
assertEquals("Folder'Name/File\"Name&", modification.getFullPath());
120     }
121 }
Popular Tags