1   package org.apache.maven.surefire.its;
2   
3   
4   import junit.framework.TestCase;
5   import org.apache.maven.it.Verifier;
6   import org.apache.maven.it.util.ResourceExtractor;
7   
8   import java.io.File;
9   import java.util.ArrayList;
10  import java.util.List;
11  
12  /**
13   * Basic suite test using all known versions of JUnit 4.x
14   * 
15   * @author <a href="mailto:dfabulich@apache.org">Dan Fabulich</a>
16   * 
17   */
18  public class Junit4VersionsTest
19      extends TestCase
20  {
21      
22      public void test40 () throws Exception
23      {
24          runJUnitTest( "4.0" );
25      }
26      
27      public void test41 () throws Exception
28      {
29          runJUnitTest( "4.1" );
30      }
31      
32      public void test42 () throws Exception
33      {
34          runJUnitTest( "4.2" );
35      }
36      
37      public void test43 () throws Exception
38      {
39          runJUnitTest( "4.3" );
40      }
41      
42      public void test431 () throws Exception
43      {
44          runJUnitTest( "4.3.1" );
45      }
46      
47      public void test44 () throws Exception
48      {
49          runJUnitTest( "4.4" );
50      }
51      
52      public void runJUnitTest (String version)
53          throws Exception
54      {
55          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/junit4" );
56  
57          Verifier verifier = new Verifier( testDir.getAbsolutePath() );
58          List arguments = new ArrayList();
59          arguments.add( "test" );
60          // DGF we have to pass in the version as a command line argument
61          // and NOT as a system property; otherwise our setting will be ignored
62          arguments.add( "-DjunitVersion=" + version );
63          verifier.executeGoals( arguments );
64          verifier.verifyErrorFreeLog();
65          verifier.resetStreams();
66          
67          ITSuiteResults suite = HelperAssertions.parseTestResults( new File[] { testDir } );
68          HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, suite );
69      }
70  }