xref: /aosp_15_r20/external/junit-params/src/test/java/junitparams/RulesTest.java (revision b2c653efad15baf736c94ef04454e05088f2cbb7)
1*b2c653efSSorin Basca package junitparams;
2*b2c653efSSorin Basca 
3*b2c653efSSorin Basca import org.junit.Rule;
4*b2c653efSSorin Basca import org.junit.Test;
5*b2c653efSSorin Basca import org.junit.rules.ErrorCollector;
6*b2c653efSSorin Basca import org.junit.rules.ExpectedException;
7*b2c653efSSorin Basca import org.junit.rules.TemporaryFolder;
8*b2c653efSSorin Basca import org.junit.rules.TestName;
9*b2c653efSSorin Basca import org.junit.rules.TestRule;
10*b2c653efSSorin Basca import org.junit.rules.TestWatcher;
11*b2c653efSSorin Basca import org.junit.rules.Timeout;
12*b2c653efSSorin Basca import org.junit.runner.JUnitCore;
13*b2c653efSSorin Basca import org.junit.runner.Result;
14*b2c653efSSorin Basca import org.junit.runner.RunWith;
15*b2c653efSSorin Basca 
16*b2c653efSSorin Basca import static org.assertj.core.api.Assertions.*;
17*b2c653efSSorin Basca 
18*b2c653efSSorin Basca @RunWith(JUnitParamsRunner.class)
19*b2c653efSSorin Basca public class RulesTest {
20*b2c653efSSorin Basca     @Rule
21*b2c653efSSorin Basca     public TemporaryFolder folder = new TemporaryFolder();
22*b2c653efSSorin Basca     @Rule
23*b2c653efSSorin Basca     public ExpectedException exception = ExpectedException.none();
24*b2c653efSSorin Basca     @Rule
25*b2c653efSSorin Basca     public ErrorCollector errors = new ErrorCollector();
26*b2c653efSSorin Basca     @Rule
27*b2c653efSSorin Basca     public TestName testName = new TestName();
28*b2c653efSSorin Basca     @Rule
29*b2c653efSSorin Basca     public TestWatcher testWatcher = new TestWatcher() {
30*b2c653efSSorin Basca     };
31*b2c653efSSorin Basca     @Rule
32*b2c653efSSorin Basca     public Timeout timeout = new Timeout(0);
33*b2c653efSSorin Basca 
34*b2c653efSSorin Basca 
35*b2c653efSSorin Basca     @Test
36*b2c653efSSorin Basca     @Parameters("")
shouldHandleRulesProperly(String n)37*b2c653efSSorin Basca     public void shouldHandleRulesProperly(String n) {
38*b2c653efSSorin Basca         assertThat(testName.getMethodName()).isEqualTo("shouldHandleRulesProperly");
39*b2c653efSSorin Basca     }
40*b2c653efSSorin Basca 
41*b2c653efSSorin Basca     @Test
shouldProvideHelpfulExceptionMessageWhenRuleIsUsedImproperly()42*b2c653efSSorin Basca     public void shouldProvideHelpfulExceptionMessageWhenRuleIsUsedImproperly() {
43*b2c653efSSorin Basca         Result result = JUnitCore.runClasses(ProtectedRuleTest.class);
44*b2c653efSSorin Basca 
45*b2c653efSSorin Basca         assertThat(result.getFailureCount()).isEqualTo(1);
46*b2c653efSSorin Basca         assertThat(result.getFailures().get(0).getException())
47*b2c653efSSorin Basca                 .hasMessage("The @Rule 'testRule' must be public.");
48*b2c653efSSorin Basca     }
49*b2c653efSSorin Basca 
50*b2c653efSSorin Basca     // TODO(JUnit4.10) - must be static in JUnit 4.10
51*b2c653efSSorin Basca     public static class ProtectedRuleTest {
52*b2c653efSSorin Basca         @Rule
53*b2c653efSSorin Basca         TestRule testRule;
54*b2c653efSSorin Basca 
55*b2c653efSSorin Basca         @Test
test()56*b2c653efSSorin Basca         public void test() {
57*b2c653efSSorin Basca 
58*b2c653efSSorin Basca         }
59*b2c653efSSorin Basca     }
60*b2c653efSSorin Basca 
61*b2c653efSSorin Basca }
62