1 package org.apache.maven.plugin.surefire.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.FileOutputStream;
24 import java.io.IOException;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27 import java.util.List;
28 import java.util.Properties;
29 import java.util.jar.JarFile;
30 import java.util.zip.ZipEntry;
31 import java.util.zip.ZipOutputStream;
32
33 import junit.framework.TestCase;
34
35 import org.apache.maven.artifact.Artifact;
36 import org.apache.maven.artifact.DefaultArtifact;
37 import org.apache.maven.artifact.versioning.VersionRange;
38 import org.apache.maven.plugin.MojoExecutionException;
39 import org.apache.maven.surefire.testset.TestSetFailedException;
40 import org.apache.maven.surefire.util.ScanResult;
41
42
43
44
45 public class DependenciesScannerTest
46 extends TestCase
47 {
48 public void testLocateTestClasses()
49 throws Exception
50 {
51 File testFile = writeTestFile();
52
53
54 Artifact artifact = new DefaultArtifact(
55 "org.surefire.dependency", "test-jar",
56 VersionRange.createFromVersion("1.0"), "test", "jar", "tests", null);
57 artifact.setFile(testFile);
58
59 List<String> scanDependencies = new ArrayList<String>();
60 scanDependencies.add("org.surefire.dependency:test-jar");
61
62 List<String> include = new ArrayList<String>();
63 include.add( "**/*A.java" );
64 List<String> exclude = new ArrayList<String>();
65
66 DependencyScanner scanner = new DependencyScanner(
67 DependencyScanner.filter(Arrays.asList(artifact), scanDependencies),
68 include, exclude, new ArrayList<String>() );
69
70 ScanResult classNames = scanner.scan();
71 assertNotNull( classNames );
72 System.out.println( "classNames " + classNames.toString() );
73 assertEquals( 1, classNames.size() );
74 System.out.println(classNames.getClassName(0));
75
76 Properties props = new Properties();
77 classNames.writeTo( props );
78 assertEquals( 1, props.size() );
79 }
80
81 private File writeTestFile() throws Exception {
82 File output = new File("target/DependenciesScannerTest-tests.jar");
83 output.delete();
84
85 ZipOutputStream out = new ZipOutputStream(new FileOutputStream(output));
86
87 out.putNextEntry(new ZipEntry("org/test/TestA.class"));
88 out.closeEntry();
89 out.putNextEntry(new ZipEntry("org/test/TestB.class"));
90 out.closeEntry();
91 out.close();
92 return output;
93 }
94 }