View Javadoc
1   package org.apache.maven.surefire.its;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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  /**
28   * Test include/exclude from files.
29   * <br>
30   * Based on {@link IncludesExcludesIT}.
31   */
32  public class IncludesExcludesFromFileIT
33      extends SurefireJUnit4IntegrationTestCase
34  {
35      private SurefireLauncher unpack()
36      {
37          return unpack( "/includes-excludes-from-file" );
38      }
39  
40      @Test
41      public void testSimple()
42      {
43          testWithProfile( "simple" );
44      }
45  
46      @Test
47      public void testSimpleMixed()
48      {
49          testWithProfile( "simple-mixed" );
50      }
51  
52      @Test
53      public void testRegex()
54      {
55          testWithProfile( "regex" );
56      }
57  
58      @Test
59      public void testPath()
60      {
61          testWithProfile( "path" );
62      }
63  
64      @Test
65      public void testMissingExcludes()
66      {
67          expectBuildFailure("missing-excludes-file", "Failed to load list from file", "no-such-excludes-file");
68      }
69  
70      @Test
71      public void testMissingIncludes()
72      {
73          expectBuildFailure( "missing-includes-file", "Failed to load list from file", "no-such-includes-file" );
74      }
75  
76      private void testWithProfile( String profile )
77      {
78          final OutputValidator outputValidator = unpack().
79                  activateProfile( profile ).executeTest().verifyErrorFree( 2 );
80  
81          outputValidator.getTargetFile( "testTouchFile.txt" ).assertFileExists();
82          outputValidator.getTargetFile( "defaultTestTouchFile.txt" ).assertFileExists();
83      }
84  
85      private void expectBuildFailure( final String profile, final String... messages )
86      {
87          final OutputValidator outputValidator = unpack().activateProfile( profile )
88              .maven().withFailure().executeTest();
89  
90          for ( String message : messages )
91          {
92              outputValidator.verifyTextInLog( message );
93          }
94      }
95  }