1704d59a9e57b28939ba5c709cf4b50d72aa072e6Christian Williamspackage org.robolectric;
21021315c11e619e0735bea1349e04023178c4067Alexander Blom
3851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport static org.assertj.core.api.Assertions.assertThat;
4851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williams
51021315c11e619e0735bea1349e04023178c4067Alexander Blomimport org.junit.Test;
6879371277af60d57148eefb24fd046a6a30e4683christianwimport org.junit.runner.RunWith;
7879371277af60d57148eefb24fd046a6a30e4683christianwimport org.junit.runners.JUnit4;
81021315c11e619e0735bea1349e04023178c4067Alexander Blomimport org.robolectric.util.JavaVersion;
91021315c11e619e0735bea1349e04023178c4067Alexander Blom
10879371277af60d57148eefb24fd046a6a30e4683christianw@RunWith(JUnit4.class)
111021315c11e619e0735bea1349e04023178c4067Alexander Blompublic class JavaVersionTest {
121021315c11e619e0735bea1349e04023178c4067Alexander Blom  @Test
131021315c11e619e0735bea1349e04023178c4067Alexander Blom  public void jdk8() {
141021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.8.1u40", "1.8.5u60");
151021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.8.0u40", "1.8.0u60");
161021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.8.0u40", "1.8.0u100");
171021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
181021315c11e619e0735bea1349e04023178c4067Alexander Blom
191021315c11e619e0735bea1349e04023178c4067Alexander Blom  @Test
201021315c11e619e0735bea1349e04023178c4067Alexander Blom  public void jdk9() {
211021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("9.0.1+12", "9.0.2+12");
221021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("9.0.2+60", "9.0.2+100");
231021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
241021315c11e619e0735bea1349e04023178c4067Alexander Blom
251021315c11e619e0735bea1349e04023178c4067Alexander Blom  @Test
261021315c11e619e0735bea1349e04023178c4067Alexander Blom  public void differentJdk() {
271021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.7.0", "1.8.0u60");
281021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.8.1u40", "9.0.2+12");
291021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
301021315c11e619e0735bea1349e04023178c4067Alexander Blom
311021315c11e619e0735bea1349e04023178c4067Alexander Blom  @Test
321021315c11e619e0735bea1349e04023178c4067Alexander Blom  public void longer() {
331021315c11e619e0735bea1349e04023178c4067Alexander Blom    check("1.8.0", "1.8.0.1");
341021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
351021315c11e619e0735bea1349e04023178c4067Alexander Blom
361021315c11e619e0735bea1349e04023178c4067Alexander Blom  @Test
371021315c11e619e0735bea1349e04023178c4067Alexander Blom  public void longerEquality() {
381021315c11e619e0735bea1349e04023178c4067Alexander Blom    checkEqual("1.8.0", "1.8.0");
391021315c11e619e0735bea1349e04023178c4067Alexander Blom    checkEqual("1.8.0u33", "1.8.0u33");
401021315c11e619e0735bea1349e04023178c4067Alexander Blom    checkEqual("5", "5");
411021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
421021315c11e619e0735bea1349e04023178c4067Alexander Blom
431021315c11e619e0735bea1349e04023178c4067Alexander Blom  private static void check(String v1, String v2) {
441021315c11e619e0735bea1349e04023178c4067Alexander Blom    assertThat(new JavaVersion(v1).compareTo(new JavaVersion(v2))).isNegative();
451021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
461021315c11e619e0735bea1349e04023178c4067Alexander Blom
471021315c11e619e0735bea1349e04023178c4067Alexander Blom  private static void checkEqual(String v1, String v2) {
481021315c11e619e0735bea1349e04023178c4067Alexander Blom    assertThat(new JavaVersion(v1).compareTo(new JavaVersion(v2))).isZero();
491021315c11e619e0735bea1349e04023178c4067Alexander Blom  }
501021315c11e619e0735bea1349e04023178c4067Alexander Blom
511021315c11e619e0735bea1349e04023178c4067Alexander Blom}