TestRunnerJUnit4Test.java revision 654f21617c60f23069912900a1e1ef11e9e1c742
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, profile = true)
6045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
6145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_Profile() throws Exception {
6245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
6345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
6445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
6545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
6645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .ensureProfilingWasRequested()
6745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
6845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
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_SkipPast() throws Exception {
7645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        Class<?> testClass = testRunnerRule.testClass();
7745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String failingTestName = testClass.getName() + "#simple1";
7845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner("--skipPast", failingTestName);
7945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
8045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
8145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
8245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
8345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
8445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
8545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
8645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
8745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
8845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
8945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SkipPastAll() throws Exception {
9045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        Class<?> testClass = testRunnerRule.testClass();
9145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String failingTestName = testClass.getName() + "#other";
9245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner("--skipPast", failingTestName);
9345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
9445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
9545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults().completedNormally();
9645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
9745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
9845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
9945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
10045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_OneMethod() throws Exception {
10145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple2"};
10245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
10345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
10445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
10545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
10645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
10745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
10845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
10945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
11045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
11145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
11245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_TwoMethod() throws Exception {
11345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple1", "Simple3"};
11445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
11545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
11645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
11745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
11845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
11945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
12045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
12145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
12245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
12345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest2.class)
12445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
12545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest2_WrongMethod() throws Exception {
12645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String args = "testSimple5";
12745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
12845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
12945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
13045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
13145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("testSimple5",
13245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "junit.framework.AssertionFailedError: Method \"" + args
13345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + "\" not found\n")
13445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
13545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
13645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
13745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = ExtendedSimpleTest2.class)
13845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
13945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_ExtendedSimple2() throws Exception {
14045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
14145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
14245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
14345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
14445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
14545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
14645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
14745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple4")
14845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
14945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
15045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
15145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(
15245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin            testClass = ExtendedSimpleTest2.class,
15345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin            testClassOrPackage = "vogar.target.junit4.ExtendedSimpleTest2#simple2")
15445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
15545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_ExtendedSimple2_QualifiedAndMethodNames() throws Exception {
15645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String[] args = {"simple1", "simple4"};
15745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(args);
15845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
15945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
16045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
16145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
16245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
16345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple4")
16445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
16545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
16645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
16745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SimpleTest.class)
16845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
16945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SimpleTest() throws Exception {
17045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
17145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
17245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
17345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
17445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .forTestClass(SimpleTest3.class)
17545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple")
17645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
17745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
17845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
17945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = FailTest.class)
18045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
18145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_FailTest() throws Exception {
18245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
18345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
18445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
18545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
18645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("failure",
18745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.AssertionError: failed.\n")
18845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("success")
18945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("throwAnotherExpectedException")
19045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("throwException", "java.lang.RuntimeException: exception\n")
19145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("throwExpectedException")
19245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
19345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
19445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
19545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = FailConstructorTest.class)
19645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
19745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_FailConstructorTest() throws Exception {
19845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
19945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
20045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
20145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
20245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("testSuccess", ""
20345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        + "java.lang.IllegalStateException: Constructor failed\n")
20445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
20545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
20645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
20745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = SuiteTest.class)
20845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
20945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_SuiteTest() throws Exception {
21045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
21145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
21245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
213654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // The order is different from previous version of Vogar as that sorted a flattened list
214654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // but JUnit has it organized as a hierarchy and sorts each level so classes which are on
215654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // a separate level, like SimpleTest2 and SimpleTest3 are not sorted relative to each
216654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        // other.
21745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
218654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .forTestClass(SimpleTest3.class)
219654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("simple")
22045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .forTestClass(SimpleTest2.class)
22145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("Simple3")
22245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple1")
22345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("simple2")
22445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
22545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
22645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
22745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LongTest.class, timeout = 1)
22845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
22945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LongTest_WithTimeout() throws Exception {
23045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
23145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
23245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
23345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Note, that this doesn't complete normally. That's correct behavior as that will trigger
23445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // the vogar process to restart the VM and run the tests from after this one.
23545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
23645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure("test", "java.util.concurrent.TimeoutException\n")
23745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .aborted();
23845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
23945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
24045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LongTest2.class)
24145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
24245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LongTest2_WithoutTimeout() throws Exception {
24345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
24445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
24545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
24645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
24745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test1")
24845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test2")
24945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test3")
25045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test4")
25145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test5")
25245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test6")
25345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test7")
25445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test8")
25545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
25645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
25745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
25845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = TestMethodWithParameterTest.class)
25945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
26045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_TestMethodWithParameterTest() throws Exception {
26145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
26245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
26345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
26445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String methodName = "parameterized";
26545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
26645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure(methodName,
26745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.Exception: Method " + methodName
26845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + " should have no parameters\n")
26945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
27045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
27145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
27245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = TestMethodWithParameterTest.class)
27345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
27445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_TestMethodWithParameterTest_Requested() throws Exception {
27545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        String methodName = "parameterized";
27645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner(methodName);
27745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
27845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
27945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Ignores tests with no parameters.
28045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
28145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .failure(methodName,
28245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                        "java.lang.Exception: Method " + methodName
28345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                                + " should have no parameters\n")
28445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
28545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
28645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
28745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = NoMethodTest.class)
28845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
28945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_NoMethodTest() throws Exception {
29045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
29145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
29245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
29345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        // Ignores tests with no parameters.
29445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
29545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .unsupported()
29645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
29745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
29845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
29945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = AnnotatedTestMethodsTest.class)
30045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
30145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_AnnotatedTestMethodsTest() throws Exception {
30245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
30345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
30445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
30545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
30645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("test1", "Before\nTest 1\nAfter\n")
30745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
30845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
30945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
310654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    @TestRunnerProperties(testClass = AnnotatedMethodsTest.class)
311654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    @Test
312654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    public void testRunner_AnnotatedMethodsTest() throws Exception {
313654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
314654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        runner.run();
315654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin
316654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin        expectedResults()
317654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Before Class\n")
318654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test1", "Before\nTest 1\nAfter\n")
319654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test2", "Before\nTest 2\nAfter\n")
320654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("After Class\n")
321654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .completedNormally();
322654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin    }
323654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin
32445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = LazyTestCreationTest.class)
32545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
32645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_LazyTestCreationTest() throws Exception {
32745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
32845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
32945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
33045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
331654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Creating\n")
332654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test1")
333654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .text("Creating\n")
334654f21617c60f23069912900a1e1ef11e9e1c742Paul Duffin                .success("test2")
33545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
33645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
33745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
33845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // =========================================================================================
33945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // Place all JUnit4 specific test methods after this one.
34045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    // =========================================================================================
34145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
34245b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @TestRunnerProperties(testClass = HasIgnoredTest.class)
34345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    @Test
34445b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    public void testRunner_HasIgnoredTest() throws Exception {
34545b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
34645b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        runner.run();
34745b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin
34845b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin        expectedResults()
34945b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .success("working")
35045b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin                .completedNormally();
35145b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin    }
352878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin
353878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    @TestRunnerProperties(testClass = MockitoFieldTest.class)
354878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    @Test
355878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    public void testRunner_MockitoFieldTest() throws Exception {
356878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        TestRunner runner = testRunnerRule.createTestRunner();
357878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        runner.run();
358878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin
359878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin        expectedResults()
360878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin                .success("test")
361878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin                .completedNormally();
362878d59e5772566363eb560cb6669c968d2c3d05bPaul Duffin    }
36345b3ffb2d3d0c310718926c1acc69f5bf946ee3fPaul Duffin}
364