KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > ant > types > optional > depend > ClassFileSetTest


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
18 package org.apache.tools.ant.types.optional.depend;
19
20 import java.io.File JavaDoc;
21 import java.io.FileReader JavaDoc;
22 import java.io.IOException JavaDoc;
23 import java.util.Date JavaDoc;
24 import java.util.Vector JavaDoc;
25 import java.util.Enumeration JavaDoc;
26 import java.util.Hashtable JavaDoc;
27 import org.apache.tools.ant.BuildFileTest;
28 import org.apache.tools.ant.Project;
29 import org.apache.tools.ant.types.FileSet;
30 import org.apache.tools.ant.DirectoryScanner;
31
32 /**
33  * Testcase for the Classfileset optional type.
34  *
35  */

36 public class ClassFileSetTest extends BuildFileTest {
37     public static final String JavaDoc RESULT_FILESET = "result";
38
39     public ClassFileSetTest(String JavaDoc 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 JavaDoc[] scannedFiles = scanner.getIncludedFiles();
61         Hashtable JavaDoc files = new Hashtable JavaDoc();
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 JavaDoc[] scannedFiles = scanner.getIncludedFiles();
86         Hashtable JavaDoc files = new Hashtable JavaDoc();
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 JavaDoc[] scannedFiles = scanner.getIncludedFiles();
107         Hashtable JavaDoc files = new Hashtable JavaDoc();
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 JavaDoc[] scannedFiles = scanner.getIncludedFiles();
133         Hashtable JavaDoc files = new Hashtable JavaDoc();
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 JavaDoc[] scannedFiles = scanner.getIncludedFiles();
160         Hashtable JavaDoc files = new Hashtable JavaDoc();
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 }
176
Popular Tags