Skip to content

Commit 23511c6

Browse files
committed
fix JRubyVersion language comparison
1 parent 55f8be4 commit 23511c6

File tree

2 files changed

+59
-22
lines changed

2 files changed

+59
-22
lines changed

ruby-tools/src/main/java/de/saumya/mojo/ruby/script/JRubyVersion.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@ public String getLanguage() {
2121
public boolean isLanguageLowerThan(int major, int minor) {
2222
final String[] parts = getLanguage().split("\\.");
2323

24-
if (major < Integer.parseInt(parts[0]))
25-
return true;
26-
27-
if (minor < Integer.parseInt(parts[1]))
28-
return true;
29-
30-
return false;
24+
int majorLanguageVersion = Integer.parseInt(parts[0]);
25+
int minorLanguageVersion = Integer.parseInt(parts[1]);
26+
27+
if (major == majorLanguageVersion) {
28+
return minorLanguageVersion < minor;
29+
} else {
30+
return majorLanguageVersion < major;
31+
}
3132
}
3233

3334
}

ruby-tools/src/test/java/de/saumya/mojo/ruby/script/JRubyVersionTest.java

Lines changed: 51 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,82 @@
77
public class JRubyVersionTest {
88

99
@Test
10-
public void should_return_true_when_compared_language_version_is_lower_than_major() {
11-
final JRubyVersion version = new JRubyVersion("2.5.7", "2.5.7");
10+
public void should_return_false_when_compared_language_major_is_equal_and_minor_version_is_equal() {
11+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
1212

13-
boolean result = version.isLanguageLowerThan(1, 5);
13+
boolean result = version.isLanguageLowerThan(2, 5);
1414

15-
assertThat(result).isTrue();
15+
assertThat(result).isFalse();
1616
}
1717

1818
@Test
19-
public void should_return_true_when_compared_language_version_is_lower_than_minor() {
20-
final JRubyVersion version = new JRubyVersion("2.5.7", "2.5.7");
19+
public void should_return_false_when_compared_language_major_is_equal_and_minor_version_is_lower() {
20+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
2121

2222
boolean result = version.isLanguageLowerThan(2, 4);
2323

24+
assertThat(result).isFalse();
25+
}
26+
27+
@Test
28+
public void should_return_true_when_compared_language_major_is_equal_and_minor_version_is_higher() {
29+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
30+
31+
boolean result = version.isLanguageLowerThan(2, 6);
32+
2433
assertThat(result).isTrue();
2534
}
2635

2736
@Test
28-
public void should_return_true_when_compared_language_version_is_equal() {
29-
final JRubyVersion version = new JRubyVersion("2.5.7", "2.5.7");
37+
public void should_return_true_when_compared_language_major_is_higher_and_minor_is_equal() {
38+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
3039

31-
boolean result = version.isLanguageLowerThan(2, 5);
40+
boolean result = version.isLanguageLowerThan(3, 5);
41+
42+
assertThat(result).isTrue();
43+
}
44+
45+
@Test
46+
public void should_return_true_when_compared_language_major_is_higher_and_minor_is_lower() {
47+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
48+
49+
boolean result = version.isLanguageLowerThan(3, 3);
50+
51+
assertThat(result).isTrue();
52+
}
53+
54+
@Test
55+
public void should_return_true_when_compared_language_major_is_higher_and_minor_is_higher() {
56+
final JRubyVersion version = new JRubyVersion("jruby", "2.5.7");
57+
58+
boolean result = version.isLanguageLowerThan(3, 6);
59+
60+
assertThat(result).isTrue();
61+
}
62+
63+
@Test
64+
public void should_return_false_when_compared_language_major_is_lower_and_minor_is_equal() {
65+
final JRubyVersion version = new JRubyVersion("jruby", "3.5.7");
66+
67+
boolean result = version.isLanguageLowerThan(1, 5);
3268

3369
assertThat(result).isFalse();
3470
}
3571

3672
@Test
37-
public void should_return_false_when_compared_language_version_is_higher_than_major() {
38-
final JRubyVersion version = new JRubyVersion("2.5.7", "2.5.7");
73+
public void should_return_false_when_compared_language_major_is_lower_and_minor_is_lower() {
74+
final JRubyVersion version = new JRubyVersion("jruby", "3.5.7");
3975

40-
boolean result = version.isLanguageLowerThan(3, 5);
76+
boolean result = version.isLanguageLowerThan(1, 2);
4177

4278
assertThat(result).isFalse();
4379
}
4480

4581
@Test
46-
public void should_return_false_when_compared_language_version_is_higher_than_minor() {
47-
final JRubyVersion version = new JRubyVersion("2.5.7", "2.5.7");
82+
public void should_return_false_when_compared_language_major_is_lower_and_minor_is_higher() {
83+
final JRubyVersion version = new JRubyVersion("jruby", "3.5.7");
4884

49-
boolean result = version.isLanguageLowerThan(2, 6);
85+
boolean result = version.isLanguageLowerThan(1, 10);
5086

5187
assertThat(result).isFalse();
5288
}

0 commit comments

Comments
 (0)