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 }