package junitparams;
import java.math.BigDecimal;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.assertj.core.api.Assertions.*;
@RunWith(JUnitParamsRunner.class)
public class ParamsInAnnotationTest {
@Test
@Parameters({"1", "2"})
public void singleParam(int number) {
assertThat(number).isGreaterThan(0);
}
@Test
@Parameters({"1, true", "2, false"})
public void multipleParamsCommaSeparated(int number, boolean isOne) throws Exception {
if (isOne)
assertThat(number).isEqualTo(1);
else
assertThat(number).isNotEqualTo(1);
}
@Test
@Parameters({"1 | true", "2 | false"})
public void multipleParamsPipeSeparated(int number, boolean isOne) throws Exception {
if (isOne)
assertThat(number).isEqualTo(1);
else
assertThat(number).isNotEqualTo(1);
}
@Test
@Parameters({"a \n b", "a(asdf)", "a \r a"})
public void specialCharsInParam(String a) throws Exception {
assertThat(a).isIn("a \n b", "a(asdf)", "a \r a");
}
@Test
@Parameters({",1"})
public void emptyFirstParam(String empty, int number) {
assertThat(empty).isEmpty();
assertThat(number).isEqualTo(1);
}
@Test
@Parameters({"1,"})
public void emptyLastParam(int number, String empty) {
assertThat(empty).isEmpty();
assertThat(number).isEqualTo(1);
}
@Test
@Parameters({"1,,1"})
public void emptyMiddleParam(int number1, String empty, int number2) {
assertThat(empty).isEmpty();
assertThat(number1).isEqualTo(1);
assertThat(number2).isEqualTo(1);
}
@Test
@Parameters({","})
public void allParamsEmpty(String empty1, String empty2) {
assertThat(empty1).isEmpty();
assertThat(empty2).isEmpty();
}
@Test
@Parameters({
"1, 1, 1",
"1.1, 1.1, 2",
"11, 11, 2",
"1.11, 1.11, 3"
})
public void convertToBigDecimal(BigDecimal number, String string, int precision) {
assertThat(number).isEqualByComparingTo(string);
assertThat(number.precision()).isEqualTo(precision);
}
@Test(expected = IllegalArgumentException.class)
@Parameters({" invalidNumber "})
public void cannotConvertToBigDecimalForInvalidInput(BigDecimal number) {
}
}