ApiVersionTests Class — spring-boot Architecture
Architecture documentation for the ApiVersionTests class in ApiVersionTests.java from the spring-boot codebase.
Entity Profile
Source Code
buildpack/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/ApiVersionTests.java lines 32–134
class ApiVersionTests {
@Test
@SuppressWarnings("NullAway") // Test null check
void parseWhenVersionIsNullThrowsException() {
assertThatIllegalArgumentException().isThrownBy(() -> ApiVersion.parse(null))
.withMessage("'value' must not be empty");
}
@Test
void parseWhenVersionIsEmptyThrowsException() {
assertThatIllegalArgumentException().isThrownBy(() -> ApiVersion.parse(""))
.withMessage("'value' must not be empty");
}
@Test
void parseWhenVersionDoesNotMatchPatternThrowsException() {
assertThatIllegalArgumentException().isThrownBy(() -> ApiVersion.parse("bad"))
.withMessage("'value' [bad] must contain a well formed version number");
}
@Test
void parseReturnsVersion() {
ApiVersion version = ApiVersion.parse("1.2");
assertThat(version.getMajor()).isOne();
assertThat(version.getMinor()).isEqualTo(2);
}
@Test
void supportsWhenSame() {
assertThat(supports("0.0", "0.0")).isTrue();
assertThat(supports("0.1", "0.1")).isTrue();
assertThat(supports("1.0", "1.0")).isTrue();
assertThat(supports("1.1", "1.1")).isTrue();
}
@Test
void supportsWhenDifferentMajor() {
assertThat(supports("0.0", "1.0")).isFalse();
assertThat(supports("1.0", "0.0")).isFalse();
assertThat(supports("1.0", "2.0")).isFalse();
assertThat(supports("2.0", "1.0")).isFalse();
assertThat(supports("1.1", "2.1")).isFalse();
assertThat(supports("2.1", "1.1")).isFalse();
}
@Test
void supportsWhenDifferentMinor() {
assertThat(supports("1.2", "1.1")).isTrue();
assertThat(supports("1.2", "1.3")).isFalse();
}
@Test
void supportsWhenMajorZeroAndDifferentMinor() {
assertThat(supports("0.2", "0.1")).isFalse();
assertThat(supports("0.2", "0.3")).isFalse();
}
@Test
void supportsAnyWhenOneMatches() {
assertThat(supportsAny("0.2", "0.1", "0.2")).isTrue();
}
@Test
void supportsAnyWhenNoneMatch() {
assertThat(supportsAny("0.2", "0.3", "0.4")).isFalse();
}
@Test
void toStringReturnsString() {
assertThat(ApiVersion.parse("1.2")).hasToString("1.2");
}
@Test
void equalsAndHashCode() {
ApiVersion v12a = ApiVersion.parse("1.2");
ApiVersion v12b = ApiVersion.parse("1.2");
ApiVersion v13 = ApiVersion.parse("1.3");
assertThat(v12a).hasSameHashCodeAs(v12b);
assertThat(v12a).isEqualTo(v12a).isEqualTo(v12b).isNotEqualTo(v13);
}
@Test
void compareTo() {
assertThat(ApiVersion.of(0, 0).compareTo(ApiVersion.of(0, 0))).isZero();
assertThat(ApiVersion.of(0, 1).compareTo(ApiVersion.of(0, 1))).isZero();
assertThat(ApiVersion.of(1, 0).compareTo(ApiVersion.of(1, 0))).isZero();
assertThat(ApiVersion.of(0, 0).compareTo(ApiVersion.of(0, 1))).isLessThan(0);
assertThat(ApiVersion.of(0, 1).compareTo(ApiVersion.of(0, 0))).isGreaterThan(0);
assertThat(ApiVersion.of(1, 0).compareTo(ApiVersion.of(0, 1))).isGreaterThan(0);
assertThat(ApiVersion.of(0, 1).compareTo(ApiVersion.of(1, 0))).isLessThan(0);
}
private boolean supports(String v1, String v2) {
return ApiVersion.parse(v1).supports(ApiVersion.parse(v2));
}
private boolean supportsAny(String v1, String... others) {
return ApiVersion.parse(v1)
.supportsAny(Arrays.stream(others).map(ApiVersion::parse).toArray(ApiVersion[]::new));
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free