package org.junit.tests.experimental.rules;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.experimental.results.PrintableResult.testResult;
import static org.junit.experimental.results.ResultMatchers.isSuccessful;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExternalResource;
public class ExternalResourceRuleTest {
private static String callSequence;
public static class UsesExternalResource {
@Rule
public ExternalResource resource = new ExternalResource() {
@Override
protected void before() throws Throwable {
callSequence += "before ";
}
;
@Override
protected void after() {
callSequence += "after ";
}
;
};
@Test
public void testFoo() {
callSequence += "test ";
}
}
@Test
public void externalResourceGeneratesCorrectSequence() {
callSequence = "";
assertThat(testResult(UsesExternalResource.class), isSuccessful());
assertEquals("before test after ", callSequence);
}
}