package org.robolectric;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import java.util.Arrays;
import java.util.Collection;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Parameterized tests using basic java classes.
*
* @author John Ferlisi
*/
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class ParameterizedRobolectricTestRunnerNormalTest {
private final int first;
private final int second;
private final int expectedSum;
private final int expectedDifference;
private final int expectedProduct;
private final int expectedQuotient;
public ParameterizedRobolectricTestRunnerNormalTest(int first,
int second,
int expectedSum,
int expectedDifference,
int expectedProduct,
int expectedQuotient) {
this.first = first;
this.second = second;
this.expectedSum = expectedSum;
this.expectedDifference = expectedDifference;
this.expectedProduct = expectedProduct;
this.expectedQuotient = expectedQuotient;
}
@Test
@Config(manifest = Config.NONE)
public void add() {
assertThat(first + second).isEqualTo(expectedSum);
}
@Test
@Config(manifest = Config.NONE)
public void subtract() {
assertThat(first - second).isEqualTo(expectedDifference);
}
@Test
@Config(manifest = Config.NONE)
public void multiple() {
assertThat(first * second).isEqualTo(expectedProduct);
}
@Test
@Config(manifest = Config.NONE)
public void divide() {
assertThat(first / second).isEqualTo(expectedQuotient);
}
@ParameterizedRobolectricTestRunner.Parameters(name = "Java Math Test: {0}, {1}")
public static Collection getTestData() {
Object[][] data = {
{ 1, 1, 2, 0, 1, 1 },
{ 2, 1, 3, 1, 2, 2 },
{ 2, 2, 4, 0, 4, 1 },
{ 4, 4, 8, 0, 16, 1 }
};
return Arrays.asList(data);
}
}