1package org.robolectric;
2
3import static org.assertj.core.api.Assertions.assertThat;
4
5import java.util.Arrays;
6import java.util.Collection;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9import org.robolectric.annotation.Config;
10
11/**
12 * Parameterized tests using basic java classes.
13 *
14 * @author John Ferlisi
15 */
16@RunWith(ParameterizedRobolectricTestRunner.class)
17public final class ParameterizedRobolectricTestRunnerNormalTest {
18
19  private final int first;
20  private final int second;
21  private final int expectedSum;
22  private final int expectedDifference;
23  private final int expectedProduct;
24  private final int expectedQuotient;
25
26  public ParameterizedRobolectricTestRunnerNormalTest(int first,
27                                                      int second,
28                                                      int expectedSum,
29                                                      int expectedDifference,
30                                                      int expectedProduct,
31                                                      int expectedQuotient) {
32    this.first = first;
33    this.second = second;
34    this.expectedSum = expectedSum;
35    this.expectedDifference = expectedDifference;
36    this.expectedProduct = expectedProduct;
37    this.expectedQuotient = expectedQuotient;
38  }
39
40  @Test
41  @Config(manifest = Config.NONE)
42  public void add() {
43    assertThat(first + second).isEqualTo(expectedSum);
44  }
45
46  @Test
47  @Config(manifest = Config.NONE)
48  public void subtract() {
49    assertThat(first - second).isEqualTo(expectedDifference);
50  }
51
52  @Test
53  @Config(manifest = Config.NONE)
54  public void multiple() {
55    assertThat(first * second).isEqualTo(expectedProduct);
56  }
57
58  @Test
59  @Config(manifest = Config.NONE)
60  public void divide() {
61    assertThat(first / second).isEqualTo(expectedQuotient);
62  }
63
64  @ParameterizedRobolectricTestRunner.Parameters(name = "Java Math Test: {0}, {1}")
65  public static Collection getTestData() {
66    Object[][] data = {
67        { 1, 1, 2, 0, 1, 1 },
68        { 2, 1, 3, 1, 2, 2 },
69        { 2, 2, 4, 0, 4, 1 },
70        { 4, 4, 8, 0, 16, 1 }
71    };
72    return Arrays.asList(data);
73  }
74}
75