145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin/*
245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * Copyright (C) 2016 The Android Open Source Project
345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin *
445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * Licensed under the Apache License, Version 2.0 (the "License");
545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * you may not use this file except in compliance with the License.
645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * You may obtain a copy of the License at
745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin *
845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin *      http://www.apache.org/licenses/LICENSE-2.0
945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin *
1045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * Unless required by applicable law or agreed to in writing, software
1145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * distributed under the License is distributed on an "AS IS" BASIS,
1245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * See the License for the specific language governing permissions and
1445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * limitations under the License.
1545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin */
1645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
1745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinpackage vogar.target.junit4;
1845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
1945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport org.junit.Test;
2045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport org.junit.runner.RunWith;
2145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport org.junit.runners.JUnit4;
2245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport vogar.target.AbstractTestRunnerTest;
2345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport vogar.target.TestRunner;
2445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinimport vogar.target.TestRunnerProperties;
2545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
2645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin/**
2745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin * Tests for using TestRunner to run JUnit 4 classes.
2845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin */
2945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin@RunWith(JUnit4.class)
3045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffinpublic class TestRunnerJUnit4Test extends AbstractTestRunnerTest {
3145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
3245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = ChangeDefaultLocaleTest.class)
3345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
3445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_ChangeDefaultLocaleTest() throws Exception {
3545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
3645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
3745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
3845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Note, that this doesn't complete normally. That's correct behavior as that will trigger
3945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // the vogar process to restart the VM and run the tests from after this one.
4045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
4145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("testDefault_Locale_CANADA")
4245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("testDefault_Locale_CHINA")
4345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
4445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
4545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
4645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
4745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
4845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2() throws Exception {
4945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
5045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
5145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
5245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
5345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
5445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
5545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
5645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
5745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
5845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
5945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
6045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
6145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SkipPast() throws Exception {
6245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        Class<?> testClass = testRunnerRule.testClass();
6345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String failingTestName = testClass.getName() + "#simple1";
6445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner("--skipPast", failingTestName);
6545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
6645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
6745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
6845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
6945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
7045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
7145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
7245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
7345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
7445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
7545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SkipPastAll() throws Exception {
7645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        Class<?> testClass = testRunnerRule.testClass();
7745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String failingTestName = testClass.getName() + "#other";
7845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner("--skipPast", failingTestName);
7945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
8045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
8145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults().completedNormally();
8245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
8345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
8445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
8545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
8645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_OneMethod() throws Exception {
8745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple2"};
8845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
8945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
9045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
9145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
9245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
9345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
9445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
9545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
9645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
9745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
9845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_TwoMethod() throws Exception {
9945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple1", "Simple3"};
10045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
10145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
10245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
10345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
10445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
10545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
10645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
10745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
10845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
10945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
11045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
11145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_WrongMethod() throws Exception {
11245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String args = "testSimple5";
11345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
11445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
11545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
11645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
11745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("testSimple5",
11845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "junit.framework.AssertionFailedError: Method \"" + args
11945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + "\" not found\n")
12045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
12145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
12245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
12345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = ExtendedSimpleTest2.class)
12445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
12545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_ExtendedSimple2() throws Exception {
12645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
12745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
12845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
12945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
13045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
13145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
13245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
13345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple4")
13445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
13545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
13645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
13745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(
13845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin            testClass = ExtendedSimpleTest2.class,
13945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin            testClassOrPackage = "vogar.target.junit4.ExtendedSimpleTest2#simple2")
14045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
14145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_ExtendedSimple2_QualifiedAndMethodNames() throws Exception {
14245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple1", "simple4"};
14345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
14445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
14545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
14645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
14745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
14845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
14945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple4")
15045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
15145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
15245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
15345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest.class)
15445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
15545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest() throws Exception {
15645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
15745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
15845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
15945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
16045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .forTestClass(SimpleTest3.class)
16145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple")
16245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
16345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
16445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
16545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = FailTest.class)
16645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
16745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_FailTest() throws Exception {
16845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
16945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
17045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
17145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
17245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("failure",
17345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.AssertionError: failed.\n")
17445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("success")
17545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("throwAnotherExpectedException")
17645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("throwException", "java.lang.RuntimeException: exception\n")
17745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("throwExpectedException")
17845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
17945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
18045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
18145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = FailConstructorTest.class)
18245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
18345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_FailConstructorTest() throws Exception {
18445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
18545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
18645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
18745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
18845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("testSuccess", ""
18945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        + "java.lang.IllegalStateException: Constructor failed\n")
19045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
19145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
19245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
19345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SuiteTest.class)
19445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
19545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SuiteTest() throws Exception {
19645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
19745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
19845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
199654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // The order is different from previous version of Vogar as that sorted a flattened list
200654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // but JUnit has it organized as a hierarchy and sorts each level so classes which are on
201654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // a separate level, like SimpleTest2 and SimpleTest3 are not sorted relative to each
202654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // other.
20345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
204654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .forTestClass(SimpleTest3.class)
205654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("simple")
20645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .forTestClass(SimpleTest2.class)
20745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
20845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
20945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
21045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
21145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
21245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
21345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LongTest.class, timeout = 1)
21445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
21545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LongTest_WithTimeout() throws Exception {
21645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
21745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
21845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
21945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Note, that this doesn't complete normally. That's correct behavior as that will trigger
22045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // the vogar process to restart the VM and run the tests from after this one.
22145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
22245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("test", "java.util.concurrent.TimeoutException\n")
22345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .aborted();
22445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
22545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
22645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LongTest2.class)
22745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
22845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LongTest2_WithoutTimeout() throws Exception {
22945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
23045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
23145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
23245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
23345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test1")
23445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test2")
23545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test3")
23645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test4")
23745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test5")
23845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test6")
23945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test7")
24045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test8")
24145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
24245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
24345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
24445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = TestMethodWithParameterTest.class)
24545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
24645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_TestMethodWithParameterTest() throws Exception {
24745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
24845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
24945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
25045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String methodName = "parameterized";
25145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
25245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure(methodName,
25345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.Exception: Method " + methodName
25445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + " should have no parameters\n")
25545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
25645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
25745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
25845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = TestMethodWithParameterTest.class)
25945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
26045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_TestMethodWithParameterTest_Requested() throws Exception {
26145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String methodName = "parameterized";
26245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(methodName);
26345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
26445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
26545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Ignores tests with no parameters.
26645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
26745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure(methodName,
26845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.Exception: Method " + methodName
26945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + " should have no parameters\n")
27045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
27145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
27245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
27345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = NoMethodTest.class)
27445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
27545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_NoMethodTest() throws Exception {
27645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
27745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
27845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
27945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Ignores tests with no parameters.
28045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
28145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .unsupported()
28245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
28345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
28445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
28545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = AnnotatedTestMethodsTest.class)
28645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
28745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_AnnotatedTestMethodsTest() throws Exception {
28845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
28945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
29045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
29145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
29245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test1", "Before\nTest 1\nAfter\n")
29345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
29445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
29545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
296654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    @TestRunnerProperties(testClass = AnnotatedMethodsTest.class)
297654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    @Test
298654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    public void testRunner_AnnotatedMethodsTest() throws Exception {
299654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
300654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        runner.run();
301654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin
302654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        expectedResults()
303654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Before Class\n")
304654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test1", "Before\nTest 1\nAfter\n")
305654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test2", "Before\nTest 2\nAfter\n")
306654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("After Class\n")
307654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .completedNormally();
308654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    }
309654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin
31045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LazyTestCreationTest.class)
31145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
31245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LazyTestCreationTest() throws Exception {
31345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
31445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
31545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
31645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
317654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Creating\n")
318654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test1")
319654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Creating\n")
320654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test2")
32145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
32245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
32345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
32445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // =========================================================================================
32545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // Place all JUnit4 specific test methods after this one.
32645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // =========================================================================================
32745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
32845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = HasIgnoredTest.class)
32945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
33045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_HasIgnoredTest() throws Exception {
33145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
33245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
33345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
33445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
33545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("working")
33645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
33745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
338878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin
339878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    @TestRunnerProperties(testClass = MockitoFieldTest.class)
340878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    @Test
341878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    public void testRunner_MockitoFieldTest() throws Exception {
342878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
343878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        runner.run();
344878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin
345878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        expectedResults()
346878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin                .success("test")
347878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin                .completedNormally();
348878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    }
349fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin
350fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin    @TestRunnerProperties(testClass = AssumeTest.class)
351fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin    @Test
352fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin    public void testRunner_AssumeTest() throws Exception {
353fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
354fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin        runner.run();
355fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin
356fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin        expectedResults()
357fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin                .success("assumesCorrectly", "Assumption was correct\n")
358fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin                .success("assumesIncorrectly")
359fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin                .completedNormally();
360fafe03401cb88a17240e83a93c33b3a079e40d92Paul Duffin    }
36145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin}
362