blob: 3d792225d179f1f38a57484a0f30124c017d3e67 [file] [log] [blame]
package org.junit.experimental.categories;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.runners.Suite.SuiteClasses;
public class CategoriesAndParameterizedTest {
public static class Token {
}
@RunWith(Parameterized.class)
public static class ParameterizedTestWithoutCategory {
@Parameters
public static Iterable<String> getParameters() {
return Arrays.asList("first", "second");
}
@Parameterized.Parameter
public String value;
@Test
public void testSomething() {
Assert.assertTrue(true);
}
}
@Category(Token.class)
public static class TestThatAvoidsNoTestRemainsException {
@Test
public void testSomething() {
Assert.assertTrue(true);
}
}
@RunWith(Categories.class)
@IncludeCategory(Token.class)
@SuiteClasses({ TestThatAvoidsNoTestRemainsException.class,
ParameterizedTestWithoutCategory.class })
public static class SuiteWithParameterizedTestWithoutCategory {
}
@Test
public void doesNotRunTestsWithoutCategory() {
Result result = new JUnitCore()
.run(SuiteWithParameterizedTestWithoutCategory.class);
assertEquals(1, result.getRunCount());
assertEquals(0, result.getFailureCount());
}
@RunWith(Parameterized.class)
@Category(Token.class)
public static class ParameterizedTestWithCategory {
@Parameters
public static Iterable<String> getParameters() {
return Arrays.asList("first", "second");
}
@Parameterized.Parameter
public String value;
@Test
public void testSomething() {
Assert.assertTrue(true);
}
}
@RunWith(Categories.class)
@IncludeCategory(Token.class)
@SuiteClasses({ ParameterizedTestWithCategory.class })
public static class SuiteWithParameterizedTestWithCategory {
}
@Test
public void runsTestsWithoutCategory() {
Result result = new JUnitCore()
.run(SuiteWithParameterizedTestWithCategory.class);
assertEquals(2, result.getRunCount());
assertEquals(0, result.getFailureCount());
}
@RunWith(Parameterized.class)
public static class ParameterizedTestWithMethodWithCategory {
@Parameters
public static Iterable<String> getParameters() {
return Arrays.asList("first", "second");
}
@Parameterized.Parameter
public String value;
@Test
@Category(Token.class)
public void testSomething() {
Assert.assertTrue(true);
}
@Test
public void testThatIsNotExecuted() {
Assert.assertTrue(true);
}
}
@RunWith(Categories.class)
@IncludeCategory(Token.class)
@SuiteClasses({ ParameterizedTestWithMethodWithCategory.class })
public static class SuiteWithParameterizedTestWithMethodWithCategory {
}
@Test
public void runsTestMethodWithCategory() {
Result result = new JUnitCore()
.run(SuiteWithParameterizedTestWithMethodWithCategory.class);
assertEquals(2, result.getRunCount());
assertEquals(0, result.getFailureCount());
}
}