source: other-projects/trunk/gs3-release-maker/apache-ant-1.6.5/src/testcases/org/apache/tools/ant/types/optional/depend/ClassFileSetTest.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: 6.9 KB
Line 
1/*
2 * Copyright 2001-2005 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.types.optional.depend;
19
20import java.io.File;
21import java.io.FileReader;
22import java.io.IOException;
23import java.util.Date;
24import java.util.Vector;
25import java.util.Enumeration;
26import java.util.Hashtable;
27import org.apache.tools.ant.BuildFileTest;
28import org.apache.tools.ant.Project;
29import org.apache.tools.ant.types.FileSet;
30import org.apache.tools.ant.DirectoryScanner;
31
32/**
33 * Testcase for the Classfileset optional type.
34 *
35 */
36public class ClassFileSetTest extends BuildFileTest {
37 public static final String RESULT_FILESET = "result";
38
39 public ClassFileSetTest(String name) {
40 super(name);
41 }
42
43 public void setUp() {
44 // share the setup for testing the depend task
45 configureProject("src/etc/testcases/taskdefs/optional/depend/depend.xml");
46 }
47
48 public void tearDown() {
49 executeTarget("clean");
50 }
51
52 /**
53 * Test basic classfileset
54 */
55 public void testBasicSet() {
56 Project p = getProject();
57 executeTarget("testbasicset");
58 FileSet resultFileSet = (FileSet)p.getReference(RESULT_FILESET);
59 DirectoryScanner scanner = resultFileSet.getDirectoryScanner(p);
60 String[] scannedFiles = scanner.getIncludedFiles();
61 Hashtable files = new Hashtable();
62 for (int i = 0; i < scannedFiles.length; ++i) {
63 files.put(scannedFiles[i], scannedFiles[i]);
64 }
65 assertEquals("Classfileset did not pick up expected number of "
66 + "class files", 4, files.size());
67 assertTrue("Result did not contain A.class",
68 files.containsKey("A.class"));
69 assertTrue("Result did not contain B.class",
70 files.containsKey("B.class"));
71 assertTrue("Result did not contain C.class",
72 files.containsKey("C.class"));
73 assertTrue("Result did not contain D.class",
74 files.containsKey("D.class"));
75 }
76
77 /**
78 * Test small classfileset
79 */
80 public void testSmallSet() {
81 Project p = getProject();
82 executeTarget("testsmallset");
83 FileSet resultFileSet = (FileSet)p.getReference(RESULT_FILESET);
84 DirectoryScanner scanner = resultFileSet.getDirectoryScanner(p);
85 String[] scannedFiles = scanner.getIncludedFiles();
86 Hashtable files = new Hashtable();
87 for (int i = 0; i < scannedFiles.length; ++i) {
88 files.put(scannedFiles[i], scannedFiles[i]);
89 }
90 assertEquals("Classfileset did not pick up expected number of "
91 + "class files", 2, files.size());
92 assertTrue("Result did not contain B.class",
93 files.containsKey("B.class"));
94 assertTrue("Result did not contain C.class",
95 files.containsKey("C.class"));
96 }
97
98 /**
99 * Test combo classfileset
100 */
101 public void testComboSet() {
102 Project p = getProject();
103 executeTarget("testcomboset");
104 FileSet resultFileSet = (FileSet)p.getReference(RESULT_FILESET);
105 DirectoryScanner scanner = resultFileSet.getDirectoryScanner(p);
106 String[] scannedFiles = scanner.getIncludedFiles();
107 Hashtable files = new Hashtable();
108 for (int i = 0; i < scannedFiles.length; ++i) {
109 files.put(scannedFiles[i], scannedFiles[i]);
110 }
111 assertEquals("Classfileset did not pick up expected number of "
112 + "class files", 1, files.size());
113 assertTrue("Result did not contain C.class",
114 files.containsKey("C.class"));
115 }
116
117 /**
118 * Test that you can pass a classfileset by reference to a fileset.
119 */
120 public void testByReference() {
121 executeTarget("testbyreference");
122 }
123
124 /**
125 * Test that classes included in a method "System.out.println(MyClass.class)" are included.
126 */
127 public void testMethodParam() {
128 Project p = getProject();
129 executeTarget("testmethodparam");
130 FileSet resultFileSet = (FileSet)p.getReference(RESULT_FILESET);
131 DirectoryScanner scanner = resultFileSet.getDirectoryScanner(p);
132 String[] scannedFiles = scanner.getIncludedFiles();
133 Hashtable files = new Hashtable();
134 for (int i = 0; i < scannedFiles.length; ++i) {
135 files.put(scannedFiles[i], scannedFiles[i]);
136 }
137 assertEquals("Classfileset did not pick up expected number of "
138 + "class files", 5, files.size());
139 assertTrue("Result did not contain A.class",
140 files.containsKey("A.class"));
141 assertTrue("Result did not contain B.class",
142 files.containsKey("B.class"));
143 assertTrue("Result did not contain C.class",
144 files.containsKey("C.class"));
145 assertTrue("Result did not contain D.class",
146 files.containsKey("D.class"));
147 assertTrue("Result did not contain E.class",
148 files.containsKey("E.class"));
149 }
150
151 /**
152 * Test that classes included in a method "System.out.println(Outer.Inner.class)" are included.
153 */
154 public void testMethodParamInner() {
155 Project p = getProject();
156 executeTarget("testmethodparaminner");
157 FileSet resultFileSet = (FileSet)p.getReference(RESULT_FILESET);
158 DirectoryScanner scanner = resultFileSet.getDirectoryScanner(p);
159 String[] scannedFiles = scanner.getIncludedFiles();
160 Hashtable files = new Hashtable();
161 for (int i = 0; i < scannedFiles.length; ++i) {
162 files.put(scannedFiles[i], scannedFiles[i]);
163 }
164 assertEquals("Classfileset did not pick up expected number of "
165 + "class files", 4, files.size());
166 assertTrue("Result did not contain test" + File.separator + "Outer$Inner.class",
167 files.containsKey("test" + File.separator + "Outer$Inner.class"));
168 assertTrue("Result did not contain test" + File.separator + "Outer.class",
169 files.containsKey("test" + File.separator + "Outer.class"));
170 assertTrue("Result did not contain test" + File.separator + "ContainsOnlyInner.class",
171 files.containsKey("test" + File.separator + "ContainsOnlyInner.class"));
172 assertTrue("Result did not contain test" + File.separator + "ContainsOnlyInner.class",
173 files.containsKey("test" + File.separator + "MethodParam.class"));
174 }
175}
Note: See TracBrowser for help on using the repository browser.