Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,13 @@ public class VersionComparator implements Comparator<Version> {

@Override
public int compare(Version rev1, Version rev2) {
ComparableVersion comparableVersion1 = new ComparableVersion(getNumberVersion(rev1.getName()));
ComparableVersion comparableVersion2 = new ComparableVersion(getNumberVersion(rev2.getName()));
ComparableVersion comparableVersion1 = new ComparableVersion(rev1.getName());
ComparableVersion comparableVersion2 = new ComparableVersion(rev2.getName());
int comparisonResult = comparableVersion2.compareTo(comparableVersion1);
if (comparisonResult == 0) {
comparableVersion1 = new ComparableVersion(rev1.getName());
comparableVersion2 = new ComparableVersion(rev2.getName());
comparisonResult = comparableVersion1.compareTo(comparableVersion2);
}
return comparisonResult;
}

/**
* For the cases like this:
* PDFREPORT-2.3.4
* return this
* 2.3.4
*/
protected String getNumberVersion(String firstV) {
String res = firstV;
if (firstV.contains("-")) {
String[] splittedVersion = firstV.split("-");
if (splittedVersion.length > 1) {
res = splittedVersion[1];
}
}

return res;
if (comparisonResult > 0) {
return 1;
} else if (comparisonResult < 0) {
return -1;
} else return 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,28 @@ void complexCompare() {
"PDFREPORT-",
"1.1.1.2",
"VER 1.0",
"1.1.1.1"
"1.1.1.1",
"FOO-1.1.1-RC1",
"FOO-1.1.1-RC2",
"1.1.1-RC1",
"1.1.1-RC2"
};

String[] expected = {
"9.9.9.9.9",
"V-5.2.3",
"PDFREPORT-2.3.4",
"PDFREPORT-2.3",
"1.12.2.3.4",
"1.3.4",
"1.1.1.2",
"1.1.1.1",
"1.1.1-RC2",
"1.1.1-RC1",
"VER 1.0",
"PDFREPORT-"
"V-5.2.3",
"PDFREPORT-2.3.4",
"PDFREPORT-2.3",
"PDFREPORT-",
"FOO-1.1.1-RC2",
"FOO-1.1.1-RC1",
};

List<String> result = Arrays.asList(input).stream()
Expand All @@ -52,8 +60,8 @@ void complexCompare() {
void singleComparisonsTests() {

assertEquals(0, compare("1.1.1.1", "1.1.1.1"));
assertEquals(-1, compare("A-1.1.1.1", "1.1.1.1"));
assertEquals(1, compare("1.1.1.1", "A-1.1.1.1"));
assertEquals(1, compare("A-1.1.1.1", "1.1.1.1"));
assertEquals(-1, compare("1.1.1.1", "A-1.1.1.1"));
assertEquals(1, compare("1.1.1.1", "1.1.1.1.1"));
assertEquals(-1, compare("1.1.1.1", "1.1.1"));
assertEquals(1, compare("1.1.1.2", "1.1.1.3"));
Expand All @@ -63,21 +71,19 @@ void singleComparisonsTests() {
assertEquals(1, compare("2.0.5.4", "4.0"));
assertEquals(-1, compare("1.12.1.1", "1.1.1.2"));
assertEquals(1, compare("1.1.1-RC1", "1.1.1-RC2"));
assertEquals(-1, compare("PDFREPORT-2.3.4", "1.2.3"));
assertEquals(1, compare("PDFREPORT-2.3.4", "1.2.3"));
assertEquals(1, compare("PDFREPORT-2.3.4", "4.5.6"));
assertEquals(-1, compare("PDFREPORT-2.3.4", "x"));
assertEquals(1, compare("PDFREPORT-2.3.4", "x"));
assertEquals(0, compare("PDFREPORT2-", "PDFREPORT2-"));
assertEquals(1, compare("PDFREPORT-", "PDFREPORT2-"));
assertEquals(-1, compare("1.1.2-RC1", "1.1.1-RC2"));
assertEquals(-1, compare("2.2.2-RC1", "1.1.1-RC1"));
assertEquals(1, compare("FOO-1.1.1-RC1", "FOO-1.1.1-RC2"));
}

private int compare(String v1, String v2) {
return VersionComparator.INSTANCE.compare(
new Version(null, null, v1, null, false, false, null),
new Version(null, null, v2, null, false, false, null));
}

@Test
void getNumberVersionTest() {
assertEquals("2.3.4", VersionComparator.INSTANCE.getNumberVersion("PDFREPORT-2.3.4"));
}
}