From b4b93dfd27d227060687c8180524e8407b4e97ce Mon Sep 17 00:00:00 2001 From: Andreas Schmid Date: Sun, 31 Aug 2014 10:22:01 +0200 Subject: [PATCH] add rules acceptance test for junit4/ (#22) * hint: only works for 4.9 <= junit < 5.0) Signed-off-by: Andreas Schmid --- .../dataprovider/RuleAcceptanceTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 junit4/src/integTest/java/com/tngtech/test/java/junit/dataprovider/RuleAcceptanceTest.java diff --git a/junit4/src/integTest/java/com/tngtech/test/java/junit/dataprovider/RuleAcceptanceTest.java b/junit4/src/integTest/java/com/tngtech/test/java/junit/dataprovider/RuleAcceptanceTest.java new file mode 100644 index 00000000..d7792ab7 --- /dev/null +++ b/junit4/src/integTest/java/com/tngtech/test/java/junit/dataprovider/RuleAcceptanceTest.java @@ -0,0 +1,48 @@ +package com.tngtech.test.java.junit.dataprovider; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; +import org.junit.runner.RunWith; + +import com.tngtech.java.junit.dataprovider.DataProviderRunner; + +@RunWith(DataProviderRunner.class) +public class RuleAcceptanceTest { + + public static class SomeTestRule extends TestWatcher { + boolean started; + + @Override + protected void starting(Description description) { + started = true; + } + + @Override + protected void finished(Description description) { + assertThat(started).as("Rule was not started, but 'finished' called").isTrue(); + } + } + + @ClassRule + public static final SomeTestRule classRule = new SomeTestRule(); + + @Rule + public SomeTestRule rule = new SomeTestRule(); + + @Test + public void testClassRuleShouldBeStartedBeforeTest() { + // Expected: + assertThat(classRule.started).as("'@ClassRule' was not started").isTrue(); + } + + @Test + public void testRuleShouldBeStartedBeforeTest() { + // Expected: + assertThat(rule.started).as("'@Rule' was not started").isTrue(); + } +}