Browse Source

Merge remote-tracking branch 'origin/test-edge-latest-version-42' into test-edge-latest-version-43

pull/14955/head
Nikita Mazurenko 6 months ago
parent
commit
8f0b3bed59
  1. 17
      common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeVersionComparator.java
  2. 29
      common/edge-api/src/test/java/org/thingsboard/edge/rpc/EdgeVersionComparatorTest.java

17
common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeVersionComparator.java

@ -25,6 +25,23 @@ public class EdgeVersionComparator implements Comparator<EdgeVersion> {
@Override
public int compare(EdgeVersion v1, EdgeVersion v2) {
if (v1 == v2) {
return 0;
}
// UNRECOGNIZED is less than any other version
if (v1 == EdgeVersion.UNRECOGNIZED) {
return -1;
}
if (v2 == EdgeVersion.UNRECOGNIZED) {
return 1;
}
// V_LATEST is treated as the newest version
if (v1 == EdgeVersion.V_LATEST) {
v1 = getNewestEdgeVersion();
}
if (v2 == EdgeVersion.V_LATEST) {
v2 = getNewestEdgeVersion();
}
return compareVersionParts(parseVersionParts(v1), parseVersionParts(v2));
}

29
common/edge-api/src/test/java/org/thingsboard/edge/rpc/EdgeVersionComparatorTest.java

@ -70,4 +70,33 @@ class EdgeVersionComparatorTest {
assertThat(newest).isNotEqualTo(EdgeVersion.V_LATEST);
assertThat(newest).isNotEqualTo(EdgeVersion.UNRECOGNIZED);
}
@Test
void compare_vLatest_treatedAsNewestVersion() {
EdgeVersion newest = EdgeVersionComparator.getNewestEdgeVersion();
// V_LATEST equals the newest version
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_LATEST, newest)).isEqualTo(0);
assertThat(EdgeVersionComparator.INSTANCE.compare(newest, EdgeVersion.V_LATEST)).isEqualTo(0);
// V_LATEST is greater than older versions
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_LATEST, EdgeVersion.V_3_3_0)).isGreaterThan(0);
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_3_3_0, EdgeVersion.V_LATEST)).isLessThan(0);
}
@Test
void compare_vLatest_withItself_returnsZero() {
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_LATEST, EdgeVersion.V_LATEST)).isEqualTo(0);
}
@Test
void compare_unrecognized_isLessThanAnyVersion() {
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.UNRECOGNIZED, EdgeVersion.V_3_3_0)).isLessThan(0);
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.UNRECOGNIZED, EdgeVersion.V_LATEST)).isLessThan(0);
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_3_3_0, EdgeVersion.UNRECOGNIZED)).isGreaterThan(0);
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.V_LATEST, EdgeVersion.UNRECOGNIZED)).isGreaterThan(0);
}
@Test
void compare_unrecognized_withItself_returnsZero() {
assertThat(EdgeVersionComparator.INSTANCE.compare(EdgeVersion.UNRECOGNIZED, EdgeVersion.UNRECOGNIZED)).isEqualTo(0);
}
}

Loading…
Cancel
Save