View Javadoc
1   package org.junit.tests.experimental.rules;
2   
3   import static org.junit.Assert.assertEquals;
4   import static org.junit.Assert.assertThat;
5   import static org.junit.experimental.results.PrintableResult.testResult;
6   import static org.junit.experimental.results.ResultMatchers.isSuccessful;
7   
8   import org.junit.Rule;
9   import org.junit.Test;
10  import org.junit.rules.ExternalResource;
11  
12  public class ExternalResourceRuleTest {
13      private static String callSequence;
14  
15      public static class UsesExternalResource {
16          @Rule
17          public ExternalResource resource = new ExternalResource() {
18              @Override
19              protected void before() throws Throwable {
20                  callSequence += "before ";
21              }
22  
23              ;
24  
25              @Override
26              protected void after() {
27                  callSequence += "after ";
28              }
29  
30              ;
31          };
32  
33          @Test
34          public void testFoo() {
35              callSequence += "test ";
36          }
37      }
38  
39      @Test
40      public void externalResourceGeneratesCorrectSequence() {
41          callSequence = "";
42          assertThat(testResult(UsesExternalResource.class), isSuccessful());
43          assertEquals("before test after ", callSequence);
44      }
45  }