Version implements Comparable<Version> { @Override public int compareTo(Version o) { return o.versionName.compareTo(versionName); } Version(VersionDescriptor descriptor, Class<?> descriptorClass);   Version(
      String versionName,
      BaseGoogleAdsException.Factory exceptionFactory,
      Class<?> descriptorClass); String getVersionName(); @Override int compareTo(Version o); Class<?> getServiceClientFactoryClass(); BaseGoogleAdsException.Factory getExceptionFactory(); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void compareTo_respectsLowerVersion() { assertThat(v1.compareTo(v0), is(lessThan(0))); }
@Test public void compareTo_respectsHigherVersion() { assertThat(v0.compareTo(v1), is(greaterThan(0))); }
@Test public void compareTo_respectsEqualVersion() { assertEquals(0, v0.compareTo(v0)); }