mirror of
https://gitee.com/dcren/initializr.git
synced 2025-07-15 23:13:30 +08:00
Use parameterized test for version range tests
This commit is contained in:
parent
0a6ec343ba
commit
50c1c28b1c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012-2020 the original author or authors.
|
* Copyright 2012-2021 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -18,10 +18,14 @@ package io.spring.initializr.generator.version;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import io.spring.initializr.generator.version.Version.Format;
|
import io.spring.initializr.generator.version.Version.Format;
|
||||||
import org.assertj.core.api.Condition;
|
import org.assertj.core.api.Condition;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
|
import org.junit.jupiter.params.provider.MethodSource;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
@ -32,59 +36,87 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
*/
|
*/
|
||||||
class VersionRangeTests {
|
class VersionRangeTests {
|
||||||
|
|
||||||
@Test
|
@ParameterizedTest(name = "{0} in {1}")
|
||||||
void simpleStartingRange() {
|
@MethodSource("matchInRangeParameters")
|
||||||
assertThat(new VersionRange(Version.parse("1.3.0.RELEASE")).toString()).isEqualTo(">=1.3.0.RELEASE");
|
void matchWithVersionInTheRange(String version, String range) {
|
||||||
|
assertThat(version).is(match(range));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
static Stream<Arguments> matchInRangeParameters() {
|
||||||
void matchSimpleRange() {
|
return Stream.of(Arguments.arguments("1.2.2.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
assertThat("1.2.0.RC3").is(match("[1.2.0.RC1,1.2.0.RC5]"));
|
Arguments.arguments("1.2.2", "[1.2.0,1.2.5]"), Arguments.arguments("1.2.0.M3", "[1.2.0.M1,1.2.0.RC1]"),
|
||||||
|
Arguments.arguments("1.2.0-M3", "[1.2.0-M1,1.2.0-RC1]"),
|
||||||
|
Arguments.arguments("1.2.0.RC1", "[1.2.0.M1,1.2.0.RC2]"),
|
||||||
|
Arguments.arguments("1.2.0-RC1", "[1.2.0-M1,1.2.0-RC2]"),
|
||||||
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
|
Arguments.arguments("1.2.2-SNAPSHOT", "[1.2.0,1.2.5]"),
|
||||||
|
Arguments.arguments("1.2.0.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
|
Arguments.arguments("1.2.0", "[1.2.0,1.2.5]"), Arguments.arguments("1.2.0.M1", "[1.2.0.M1,1.2.0.RC1]"),
|
||||||
|
Arguments.arguments("1.2.0-M1", "[1.2.0-M1,1.2.0-RC1]"),
|
||||||
|
Arguments.arguments("1.2.0.RC1", "[1.2.0.RC1,1.2.0.RC2]"),
|
||||||
|
Arguments.arguments("1.2.0-RC1", "[1.2.0-RC1,1.2.0-RC2]"),
|
||||||
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "[1.2.2.BUILD-SNAPSHOT,1.2.5.RELEASE]"),
|
||||||
|
Arguments.arguments("1.2.2-SNAPSHOT", "[1.2.2-SNAPSHOT,1.2.5]"),
|
||||||
|
Arguments.arguments("1.2.5.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
|
Arguments.arguments("1.2.5", "[1.2.0,1.2.5]"), Arguments.arguments("1.2.0.M3", "[1.2.0.M1,1.2.0.M3]"),
|
||||||
|
Arguments.arguments("1.2.0-M3", "[1.2.0-M1,1.2.0-M3]"),
|
||||||
|
Arguments.arguments("1.2.0.RC2", "[1.2.0.RC1,1.2.0.RC2]"),
|
||||||
|
Arguments.arguments("1.2.0-RC2", "[1.2.0-RC1,1.2.0-RC2]"),
|
||||||
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "[1.2.0.RELEASE,1.2.2.BUILD-SNAPSHOT]"),
|
||||||
|
Arguments.arguments("1.2.2-SNAPSHOT", "[1.2.0,1.2.2-SNAPSHOT]"),
|
||||||
|
Arguments.arguments("1.2.0.RELEASE", "1.2.0.RELEASE"), Arguments.arguments("1.2.0", "1.2.0"),
|
||||||
|
Arguments.arguments("1.2.0.M3", "1.2.0.M3"), Arguments.arguments("1.2.0-M3", "1.2.0-M3"),
|
||||||
|
Arguments.arguments("1.2.0.RC1", "1.2.0.RC1"), Arguments.arguments("1.2.0-RC1", "1.2.0-RC1"),
|
||||||
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "1.2.2.BUILD-SNAPSHOT"),
|
||||||
|
Arguments.arguments("1.2.2-SNAPSHOT", "1.2.2-SNAPSHOT"),
|
||||||
|
Arguments.arguments("1.2.5.RELEASE", "1.2.0.RELEASE"), Arguments.arguments("1.2.5", "1.2.0"),
|
||||||
|
Arguments.arguments("2.2.0.M3", "1.2.0.M3"), Arguments.arguments("2.2.0-M3", "1.2.0-M3"),
|
||||||
|
Arguments.arguments("1.4.0.RC1", "1.2.0.RC1"), Arguments.arguments("1.4.0-RC1", "1.2.0-RC1"),
|
||||||
|
Arguments.arguments("1.3.2.BUILD-SNAPSHOT", "1.2.2.BUILD-SNAPSHOT"),
|
||||||
|
Arguments.arguments("1.3.2-SNAPSHOT", "1.2.2-SNAPSHOT"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@ParameterizedTest(name = "{0} in {1}")
|
||||||
void matchSimpleRangeBefore() {
|
@MethodSource("matchOutRangeParameters")
|
||||||
assertThat("1.1.9.RC3").isNot(match("[1.2.0.RC1,1.2.0.RC5]"));
|
void matchWithVersionOutTheRange(String version, String range) {
|
||||||
|
assertThat(version).isNot(match(range));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
static Stream<Arguments> matchOutRangeParameters() {
|
||||||
void matchSimpleRangeAfter() {
|
return Stream.of(Arguments.arguments("1.1.9.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
assertThat("1.2.0.RC6").isNot(match("[1.2.0.RC1,1.2.0.RC5]"));
|
Arguments.arguments("1.1.9", "[1.2.0,1.2.5]"),
|
||||||
}
|
Arguments.arguments("1.2.6.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
|
Arguments.arguments("1.2.6", "[1.2.0,1.2.5]"), Arguments.arguments("1.2.0.M2", "[1.2.0.M3,1.2.0.RC1]"),
|
||||||
@Test
|
Arguments.arguments("1.2.0-M2", "[1.2.0-M3,1.2.0-RC1]"),
|
||||||
void matchInclusiveLowerRange() {
|
Arguments.arguments("1.2.0.M4", "[1.2.0.M1,1.2.0.M3]"),
|
||||||
assertThat("1.2.0.RC1").is(match("[1.2.0.RC1,1.2.0.RC5]"));
|
Arguments.arguments("1.2.0-M4", "[1.2.0-M1,1.2.0-M3]"),
|
||||||
}
|
Arguments.arguments("1.2.0.RC1", "[1.2.0.RC2,1.2.0.RC3]"),
|
||||||
|
Arguments.arguments("1.2.0-RC1", "[1.2.0-RC2,1.2.0-RC3]"),
|
||||||
@Test
|
Arguments.arguments("1.2.0.RC4", "[1.2.0.RC2,1.2.0.RC3]"),
|
||||||
void matchInclusiveHigherRange() {
|
Arguments.arguments("1.2.0-RC4", "[1.2.0-RC2,1.2.0-RC3]"),
|
||||||
assertThat("1.2.0.RC5").is(match("[1.2.0.RC1,1.2.0.RC5]"));
|
Arguments.arguments("1.1.9.BUILD-SNAPSHOT", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
}
|
Arguments.arguments("1.1.9-SNAPSHOT", "[1.2.0,1.2.5]"),
|
||||||
|
Arguments.arguments("1.2.6.BUILD-SNAPSHOT", "[1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
@Test
|
Arguments.arguments("1.2.6-SNAPSHOT", "[1.2.0,1.2.5]"),
|
||||||
void matchExclusiveLowerRange() {
|
Arguments.arguments("1.2.0.RELEASE", "(1.2.0.RELEASE,1.2.5.RELEASE]"),
|
||||||
assertThat("1.2.0.RC1").isNot(match("(1.2.0.RC1,1.2.0.RC5)"));
|
Arguments.arguments("1.2.0", "(1.2.0,1.2.5]"), Arguments.arguments("1.2.0.M1", "(1.2.0.M1,1.2.0.RC1]"),
|
||||||
}
|
Arguments.arguments("1.2.0-M1", "(1.2.0-M1,1.2.0-RC1]"),
|
||||||
|
Arguments.arguments("1.2.0.RC1", "(1.2.0.RC1,1.2.0.RC2]"),
|
||||||
@Test
|
Arguments.arguments("1.2.0-RC1", "(1.2.0-RC1,1.2.0-RC2]"),
|
||||||
void matchExclusiveHigherRange() {
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "(1.2.2.BUILD-SNAPSHOT,1.2.5.RELEASE]"),
|
||||||
assertThat("1.2.0.RC5").isNot(match("[1.2.0.RC1,1.2.0.RC5)"));
|
Arguments.arguments("1.2.2-SNAPSHOT", "(1.2.2-SNAPSHOT,1.2.5]"),
|
||||||
}
|
Arguments.arguments("1.2.5.RELEASE", "[1.2.0.RELEASE,1.2.5.RELEASE)"),
|
||||||
|
Arguments.arguments("1.2.5", "[1.2.0,1.2.5)"), Arguments.arguments("1.2.0.M3", "[1.2.0.M1,1.2.0.M3)"),
|
||||||
@Test
|
Arguments.arguments("1.2.0-M3", "[1.2.0-M1,1.2.0-M3)"),
|
||||||
void matchUnboundedRangeEqual() {
|
Arguments.arguments("1.2.0.RC2", "[1.2.0.RC1,1.2.0.RC2)"),
|
||||||
assertThat("1.2.0.RELEASE").is(match("1.2.0.RELEASE"));
|
Arguments.arguments("1.2.0-RC2", "[1.2.0-RC1,1.2.0-RC2)"),
|
||||||
}
|
Arguments.arguments("1.2.2.BUILD-SNAPSHOT", "[1.2.0.RELEASE,1.2.2.BUILD-SNAPSHOT)"),
|
||||||
|
Arguments.arguments("1.2.2-SNAPSHOT", "[1.2.0,1.2.2-SNAPSHOT)"),
|
||||||
@Test
|
Arguments.arguments("1.2.0.RELEASE", "1.2.1.RELEASE"), Arguments.arguments("1.2.0", "1.2.1"),
|
||||||
void matchUnboundedRangeAfter() {
|
Arguments.arguments("1.2.0.M2", "1.2.0.M3"), Arguments.arguments("1.2.0-M2", "1.2.0-M3"),
|
||||||
assertThat("2.2.0.RELEASE").is(match("1.2.0.RELEASE"));
|
Arguments.arguments("1.2.0.RC1", "1.2.0.RC2"), Arguments.arguments("1.2.0-RC1", "1.2.0-RC2"),
|
||||||
}
|
Arguments.arguments("1.2.1.BUILD-SNAPSHOT", "1.2.2.BUILD-SNAPSHOT"),
|
||||||
|
Arguments.arguments("1.2.1-SNAPSHOT", "1.2.2-SNAPSHOT"));
|
||||||
@Test
|
|
||||||
void matchUnboundedRangeBefore() {
|
|
||||||
assertThat("1.1.9.RELEASE").isNot(match("1.2.0.RELEASE"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -116,6 +148,11 @@ class VersionRangeTests {
|
|||||||
Arrays.asList(Version.parse("1.3.7.RELEASE"), Version.parse("1.3.6.BUILD-SNAPSHOT")))));
|
Arrays.asList(Version.parse("1.3.7.RELEASE"), Version.parse("1.3.6.BUILD-SNAPSHOT")))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void simpleStartingRange() {
|
||||||
|
assertThat(new VersionRange(Version.parse("1.3.0.RELEASE")).toString()).isEqualTo(">=1.3.0.RELEASE");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void toVersionRangeWithSimpleVersion() {
|
void toVersionRangeWithSimpleVersion() {
|
||||||
VersionRange range = new VersionParser(Collections.singletonList(Version.parse("1.5.6.RELEASE")))
|
VersionRange range = new VersionParser(Collections.singletonList(Version.parse("1.5.6.RELEASE")))
|
||||||
|
Loading…
Reference in New Issue
Block a user