1 package org.apache.maven.surefire.its.jiras;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.surefire.its.fixture.OutputValidator;
23 import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase;
24 import org.apache.maven.surefire.its.fixture.SurefireLauncher;
25 import org.junit.Test;
26
27 import static org.junit.Assert.assertFalse;
28
29
30
31
32
33
34 public class Surefire1053SystemPropertiesIT
35 extends SurefireJUnit4IntegrationTestCase
36 {
37 @Test
38 public void checkWarningsFileEncoding()
39 {
40 unpack().sysProp( "file.encoding", "ISO-8859-1" )
41 .executeTest()
42 .verifyErrorFree( 1 )
43 .verifyTextInLog( "file.encoding cannot be set as system property, use <argLine>-D"
44 + "file.encoding=...</argLine> instead" );
45 }
46 @Test
47 public void checkWarningsSysPropTwice() throws Exception
48 {
49 OutputValidator validator = unpack()
50 .argLine( "-DmyArg=myVal2 -Dfile.encoding=ISO-8859-1" )
51 .sysProp( "file.encoding", "ISO-8859-1" )
52 .executeTest()
53 .verifyErrorFree( 1 )
54 .verifyTextInLog( "The system property myArg is configured twice! "
55 + "The property appears in <argLine/> and any of <systemPropertyVariables/>, "
56 + "<systemProperties/> or user property." );
57
58 for ( String line : validator.loadLogLines() )
59 {
60 assertFalse( "no warning for file.encoding not in argLine",
61 line.contains( "file.encoding cannot be set as system property, use <argLine>" ) );
62 assertFalse( "no warning for double definition of file.encoding",
63 line.contains( "The system property file.encoding is configured twice!" ) );
64 }
65
66 }
67
68 private SurefireLauncher unpack()
69 {
70 return unpack( "surefire-1053-system-properties" );
71 }
72 }