Skip to content

Commit

Permalink
Using AssertJ for better readability
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Jul 21, 2024
1 parent f0ac2ec commit 2ac85cd
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 42 deletions.
9 changes: 8 additions & 1 deletion version/pom.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down Expand Up @@ -39,6 +40,12 @@
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>

<!-- so we can compare our version comparison algorithm against Maven's -->
<dependency>
<groupId>org.apache.maven.resolver</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.smallrye.common.version;

import static org.junit.jupiter.api.Assertions.*;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
Expand All @@ -10,97 +11,84 @@ class VersionRangeTest {
@Test
void testVersionRangeWithInclusive() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0,2.0]");
assertTrue(versionRange.test("1.0.0"));
assertTrue(versionRange.test("1.1.0"));
assertTrue(versionRange.test("1.899.0"));
assertTrue(versionRange.test("2.0"));
assertTrue(versionRange.test("2.0.0"));
assertFalse(versionRange.test("2.0.1"));
assertThat(versionRange)
.accepts("1.0.0", "1.1.0", "1.899.0", "2.0", "2.0.0")
.rejects("2.0.1");
}

@Test
void testVersionRangeWithExclusive() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "(1.0,2.0)");
assertFalse(versionRange.test("1.0.0"));
assertTrue(versionRange.test("1.1.0"));
assertTrue(versionRange.test("1.899.0"));
assertFalse(versionRange.test("2.0"));
assertFalse(versionRange.test("2.0.0"));
assertFalse(versionRange.test("2.0.1"));
assertThat(versionRange)
.accepts("1.1.0", "1.899.0")
.rejects("1.0.0", "2.0", "2.0.0", "2.0.1");
}

@Test
void testVersionRangeWithLowerBoundExclusive() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "(1.0,2.0]");
assertFalse(versionRange.test("1.0.0"));
assertTrue(versionRange.test("1.1.0"));
assertTrue(versionRange.test("1.899.0"));
assertTrue(versionRange.test("2.0"));
assertTrue(versionRange.test("2.0.0"));
assertFalse(versionRange.test("2.0.1"));
assertThat(versionRange)
.accepts("1.1.0", "1.899.0", "2.0", "2.0.0")
.rejects("1.0.0", "2.0.1");
}

@Test
void testVersionRangeWithUpperBoundExclusive() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0,2.0)");
assertTrue(versionRange.test("1.0.0"));
assertTrue(versionRange.test("1.1.0"));
assertTrue(versionRange.test("1.899.0"));
assertFalse(versionRange.test("2.0"));
assertFalse(versionRange.test("2.0.0"));
assertFalse(versionRange.test("2.0.1"));
assertThat(versionRange)
.accepts("1.0.0", "1.1.0", "1.899.0")
.rejects("2.0", "2.0.0", "2.0.1");
}

@Test
public void testUnboundedRange() {
assertThrows(IllegalArgumentException.class, () -> VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0,2.0"));
assertThatExceptionOfType(IllegalArgumentException.class)
.isThrownBy(() -> VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0,2.0"))
.withMessageStartingWith("SRCOM03011");
}

@Test
public void testAlphaVersion() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0,)");
assertFalse(versionRange.test("1.0.0.Alpha"));
assertThat(versionRange).rejects("1.0.0.Alpha1");
}

@Test
public void testAlphaVersionInbound() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[1.0.0.Alpha1,)");
assertTrue(versionRange.test("1.0.0.Alpha1"));
assertTrue(versionRange.test("1.0.0.Beta"));
assertThat(versionRange).accepts("1.0.0.Alpha1", "1.0.0.Beta1");
}

@Test
public void testAlphaVersionInboundExclusive() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "(1.0.0.Alpha1,)");
assertFalse(versionRange.test("1.0.0.Alpha1"));
assertTrue(versionRange.test("1.0.0.Beta"));
assertThat(versionRange)
.accepts("1.0.0.Beta")
.rejects("1.0.0.Alpha1");
}

@Test
public void testMultipleRanges() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "(,1.0],[1.2,)");
// Should return true for Versions up to 1.0 (included) and 1.2 or higher
assertTrue(versionRange.test("1.0.0.Alpha1"));
assertTrue(versionRange.test("1.0.0"));
assertFalse(versionRange.test("1.1.0"));
assertTrue(versionRange.test("1.2.0"));
assertFalse(versionRange.test("1.2.0.Alpha1"));
assertThat(versionRange)
.accepts("1.0.0.Alpha1", "1.0.0", "1.2.0")
.rejects("1.1.0", "1.2.0.Alpha1");
}

@Test
public void testQualifiers() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[3.8,3.8.5)");
assertTrue(versionRange.test("3.8.4.SP1-redhat-00001"));
assertTrue(versionRange.test("3.8.4.SP2-redhat-00001"));
assertTrue(versionRange.test("3.8.4.redhat-00002"));
assertFalse(versionRange.test("3.8.5.redhat-00003"));
assertThat(versionRange)
.accepts("3.8.4.SP1-redhat-00001", "3.8.4.SP2-redhat-00001", "3.8.4.redhat-00002")
.rejects("3.8.5.redhat-00003");
}

@Test
@Disabled("This test is failing")
public void testRangeQualifier() {
VersionRange versionRange = VersionRange.createFromVersionSpec(VersionScheme.MAVEN, "[3.8.0.redhat-00001,)");
assertTrue(versionRange.test("3.8.0.SP1-redhat-00001"));
assertThat(versionRange).accepts("3.8.0.SP1-redhat-00001");
}

}

0 comments on commit 2ac85cd

Please sign in to comment.