source: other-projects/trunk/gs3-release-maker/apache-ant-1.6.5/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java@ 14627

Last change on this file since 14627 was 14627, checked in by oranfry, 17 years ago

initial import of the gs3-release-maker

File size: 5.0 KB
Line 
1/*
2 * Copyright 2003-2004 The Apache Software Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18package org.apache.tools.ant.filters;
19
20import java.io.File;
21import java.io.IOException;
22
23import org.apache.tools.ant.BuildFileTest;
24import org.apache.tools.ant.taskdefs.condition.Os;
25import org.apache.tools.ant.util.FileUtils;
26
27/**
28 * JUnit Testcases for ConcatReader
29 */
30public class ConcatFilterTest extends BuildFileTest {
31
32 private static FileUtils fu = FileUtils.newFileUtils();
33 private static final String lSep =
34 Os.isFamily("mac") ? "\r" : System.getProperty("line.separator");
35
36 private static final String FILE_PREPEND_WITH =
37 "this-should-be-the-first-line" + lSep
38 + "Line 1" + lSep
39 + "Line 2" + lSep
40 + "Line 3" + lSep
41 + "Line 4" + lSep
42 ;
43
44 private static final String FILE_PREPEND =
45 "Line 1" + lSep
46 + "Line 2" + lSep
47 + "Line 3" + lSep
48 + "Line 4" + lSep
49 + "Line 5" + lSep
50 ;
51
52 private static final String FILE_APPEND_WITH =
53 "Line 57" + lSep
54 + "Line 58" + lSep
55 + "Line 59" + lSep
56 + "Line 60" + lSep
57 + "this-should-be-the-last-line" + lSep
58 ;
59
60 private static final String FILE_APPEND =
61 "Line 56" + lSep
62 + "Line 57" + lSep
63 + "Line 58" + lSep
64 + "Line 59" + lSep
65 + "Line 60" + lSep
66 ;
67
68
69 public ConcatFilterTest(String name) {
70 super(name);
71 }
72
73 public void setUp() {
74 configureProject("src/etc/testcases/filters/concat.xml");
75 }
76
77 public void tearDown() {
78 executeTarget("cleanup");
79 }
80
81 public void testFilterReaderNoArgs() throws IOException {
82 executeTarget("testFilterReaderNoArgs");
83 File expected = getProject().resolveFile("input/concatfilter.test");
84 File result = getProject().resolveFile("result/concat.FilterReaderNoArgs.test");
85 assertTrue("testFilterReaderNoArgs: Result not like expected", fu.contentEquals(expected, result));
86 }
87
88 public void testFilterReaderBefore() {
89 doTest("testFilterReaderPrepend", FILE_PREPEND_WITH, FILE_APPEND);
90 }
91
92 public void testFilterReaderAfter() {
93 doTest("testFilterReaderAppend", FILE_PREPEND, FILE_APPEND_WITH);
94 }
95
96 public void testFilterReaderBeforeAfter() {
97 doTest("testFilterReaderPrependAppend", FILE_PREPEND_WITH, FILE_APPEND_WITH);
98 }
99
100 public void testConcatFilter() {
101 doTest("testConcatFilter", FILE_PREPEND, FILE_APPEND);
102 }
103
104 public void testConcatFilterBefore() {
105 doTest("testConcatFilterPrepend", FILE_PREPEND_WITH, FILE_APPEND);
106 }
107
108 public void testConcatFilterAfter() {
109 doTest("testConcatFilterAppend", FILE_PREPEND, FILE_APPEND_WITH);
110 }
111
112 public void testConcatFilterBeforeAfter() {
113 doTest("testConcatFilterPrependAppend", FILE_PREPEND_WITH, FILE_APPEND_WITH);
114 }
115
116
117 /**
118 * Executes a target and checks the beginning and the ending of a file.
119 * The filename depends on the target name: target name <i>testHelloWorld</i>
120 * will search for a file <i>result/concat.HelloWorld.test</i>.
121 * @param target The target to invoke
122 * @param expectedStart The string which should be at the beginning of the file
123 * @param expectedEnd The string which should be at the end of the file
124 */
125 protected void doTest(String target, String expectedStart, String expectedEnd) {
126 executeTarget(target);
127 String resultContent = read("result/concat." + target.substring(4) + ".test");
128 assertTrue("First 5 lines differs.", resultContent.startsWith(expectedStart));
129 assertTrue("Last 5 lines differs.", resultContent.endsWith(expectedEnd));
130 }
131
132
133 /**
134 * Wrapper for FileUtils.readFully().
135 * Additionally it resolves the filename according the the projects basedir
136 * and closes the used reader.
137 * @param filename The name of the file to read
138 * @return the content of the file or <i>null</i> if something goes wrong
139 */
140 protected String read(String filename) {
141 String content = null;
142 try {
143 File file = getProject().resolveFile(filename);
144 java.io.FileReader rdr = new java.io.FileReader(file);
145 content = fu.readFully(rdr);
146 rdr.close();
147 rdr = null;
148 } catch (Exception e) {
149 e.printStackTrace();
150 }
151 return content;
152 }
153
154}
Note: See TracBrowser for help on using the repository browser.