1 package org.apache.maven.surefire.its;
2
3
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.IOException;
7 import java.util.ArrayList;
8 import java.util.Properties;
9
10 import junit.framework.TestCase;
11
12 import org.apache.maven.it.Verifier;
13 import org.apache.maven.it.util.ResourceExtractor;
14
15
16
17
18
19
20
21 public class WorkingDirectoryTest
22 extends TestCase
23 {
24
25 private File testDir;
26 private File childTestDir;
27 private File targetDir;
28 private File outFile;
29
30 public void setUp() throws IOException {
31 testDir = ResourceExtractor.simpleExtractResources( getClass(), "/working-directory" );
32 childTestDir = new File( testDir, "child" );
33 targetDir = new File( childTestDir, "target" );
34 outFile = new File( targetDir, "out.txt" );
35 outFile.delete();
36 }
37
38 public void testWorkingDirectory ()
39 throws Exception
40 {
41 Verifier verifier = new Verifier( testDir.getAbsolutePath() );
42 verifier.executeGoal( "test" );
43 verifier.verifyErrorFreeLog();
44 verifier.resetStreams();
45
46 HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
47 verifyOutputDirectory( childTestDir );
48 }
49
50 public void verifyOutputDirectory( File childTestDir )
51 throws IOException
52 {
53 assertTrue( "out.txt doesn't exist: " + outFile.getAbsolutePath(), outFile.exists() );
54 Properties p = new Properties();
55 FileInputStream is = new FileInputStream( outFile );
56 p.load( is );
57 is.close();
58 String userDirPath = p.getProperty( "user.dir" );
59 assertNotNull( "user.dir was null in property file", userDirPath );
60 File userDir = new File( userDirPath );
61 assertEquals( "wrong user.dir", childTestDir.getAbsolutePath(), userDir.getAbsolutePath() );
62 }
63
64 public void testWorkingDirectoryNoFork()
65 throws Exception
66 {
67 Verifier verifier = new Verifier( testDir.getAbsolutePath() );
68 ArrayList goals = new ArrayList();
69 goals.add( "test");
70 goals.add( "-DforkMode=never" );
71 verifier.executeGoals( goals );
72 verifier.verifyErrorFreeLog();
73 verifier.resetStreams();
74
75 HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
76 verifyOutputDirectory( childTestDir );
77 }
78
79 public void testWorkingDirectoryChildOnly()
80 throws Exception
81 {
82 Verifier verifier = new Verifier( childTestDir.getAbsolutePath() );
83 verifier.executeGoal( "test" );
84 verifier.verifyErrorFreeLog();
85 verifier.resetStreams();
86
87 HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
88 verifyOutputDirectory( childTestDir );
89 }
90
91
92
93 public void testWorkingDirectoryChildOnlyNoFork()
94 throws Exception
95 {
96
97 Verifier verifier = new Verifier( childTestDir.getAbsolutePath() );
98 ArrayList goals = new ArrayList();
99 goals.add( "test");
100 goals.add( "-DforkMode=never" );
101 verifier.executeGoals( goals );
102 verifier.verifyErrorFreeLog();
103 verifier.resetStreams();
104
105 HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
106 verifyOutputDirectory( childTestDir );
107 }
108 }