@Test void resolveVersionRangeWithX() { Dependency dependency = Dependency.withId("foo1", "com.acme", "foo1", "0.3.0.RELEASE"); dependency.setVersionRange("[1.1.0.RELEASE, 1.2.x.RELEASE)"); dependency.resolve(); assertThat(dependency.getVersionRange()) .isEqualTo("[1.1.0.RELEASE,1.2.999.RELEASE)"); }
@Test void resolveVersionWithX() { Dependency dependency1 = Dependency.withId("foo1", "com.acme", "foo1", "0.3.0.RELEASE"); dependency1.setVersionRange("1.2.x.RELEASE"); dependency1.resolve(); assertThat(dependency1.getVersionRange()).isEqualTo("1.2.999.RELEASE"); }
private void index() { this.indexedDependencies.clear(); this.content.forEach((group) -> group.content.forEach((dependency) -> { // Apply defaults if (dependency.getVersionRange() == null && group.getVersionRange() != null) { dependency.setVersionRange(group.getVersionRange()); } if (dependency.getBom() == null && group.getBom() != null) { dependency.setBom(group.getBom()); } if (dependency.getRepository() == null && group.getRepository() != null) { dependency.setRepository(group.getRepository()); } dependency.resolve(); indexDependency(dependency.getId(), dependency); for (String alias : dependency.getAliases()) { indexDependency(alias, dependency); } })); }
@Test void addDefaultVersionRange() { Dependency first = Dependency.withId("first"); Dependency second = Dependency.withId("second"); second.setVersionRange("1.2.3.RELEASE"); DependencyGroup group = createDependencyGroup("test", first, second); group.setVersionRange("1.2.0.RELEASE"); DependenciesCapability capability = new DependenciesCapability(); capability.getContent().add(group); capability.validate(); assertThat(capability.get("first").getVersionRange()).isEqualTo("1.2.0.RELEASE"); assertThat(capability.get("second").getVersionRange()).isEqualTo("1.2.3.RELEASE"); }
@Test void invalidSpringBootRange() { Dependency dependency = Dependency.withId("web"); dependency.setVersionRange("A.B.C"); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(dependency::resolve).withMessageContaining("A.B.C"); }
@Test void filterDependencies() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setVersionRange("2.1.4.RELEASE"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setVersionRange("2.1.8.RELEASE"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", first, second, third).build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("2.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(2); assertThat(dependencyMetadata.getRepositories()).isEmpty(); assertThat(dependencyMetadata.getBoms()).isEmpty(); assertThat(dependencyMetadata.getDependencies().get("first")).isSameAs(first); assertThat(dependencyMetadata.getDependencies().get("second")).isSameAs(second); }
@Test void generateCapabilitiesWithVersionRange() { Dependency first = Dependency.withId("first"); first.setDescription("first desc"); first.setVersionRange("1.2.0.RELEASE"); Dependency second = Dependency.withId("second"); second.setDescription("second desc"); second.setVersionRange(" [1.2.0.RELEASE,1.3.0.M1) "); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", first, second).build(); String content = this.generator.generateSpringBootCliCapabilities(metadata, "https://fake-service"); assertThat(content) .contains("| first | first desc | >=1.2.0.RELEASE |"); assertThat(content) .contains("| second | second desc | >=1.2.0.RELEASE and <1.3.0.M1 |"); }
@Test void resolveDependencyInRange() { Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE"); dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("code", dependency).build(); ProjectRequest request = initProjectRequest(); request.getStyle().add("org.foo:bar"); request.setBootVersion("1.1.2.RELEASE"); request.resolve(metadata); }
@Test void resolveDependencyNotInRange() { Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE"); dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("code", dependency).build(); ProjectRequest request = initProjectRequest(); request.getStyle().add("org.foo:bar"); request.setBootVersion("0.9.9.RELEASE"); assertThatExceptionOfType(InvalidProjectRequestException.class) .isThrownBy(() -> request.resolve(metadata)) .withMessageContaining("org.foo:bar") .withMessageContaining("0.9.9.RELEASE"); }