public static Dependency create(String groupId, String artifactId, String version, String scope) { Dependency dependency = withId(null, groupId, artifactId, version); dependency.setScope(scope); return dependency; }
private Dependency determineWebDependency(InitializrMetadata metadata) { Dependency web = metadata.getDependencies().get("web"); if (web != null) { return web; } return Dependency.withId("web").asSpringBootStarter("web"); }
public PomAssert hasSpringBootStarterTomcat() { return hasDependency( Dependency.withId("tomcat", "provided").asSpringBootStarter("tomcat")); }
private static Dependency createDependency(String id, String name, String description) { Dependency dependency = Dependency.withId(id); dependency.setDescription(description); dependency.setName(name); return dependency; }
@Test void setCoordinatesFromId() { Dependency dependency = Dependency.withId("org.foo:bar:1.2.3"); dependency.resolve(); assertThat(dependency.getGroupId()).isEqualTo("org.foo"); assertThat(dependency.getArtifactId()).isEqualTo("bar"); assertThat(dependency.getVersion()).isEqualTo("1.2.3"); assertThat(dependency.getId()).isEqualTo("org.foo:bar:1.2.3"); }
@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 setCoordinatesFromIdNoVersion() { Dependency dependency = Dependency.withId("org.foo:bar"); dependency.resolve(); assertThat(dependency.getGroupId()).isEqualTo("org.foo"); assertThat(dependency.getArtifactId()).isEqualTo("bar"); assertThat(dependency.getVersion()).isNull(); assertThat(dependency.getId()).isEqualTo("org.foo:bar"); }
@Test void invalidIdFormatTooManyColons() { Dependency dependency = Dependency.withId("org.foo:bar:1.0:test:external"); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(dependency::resolve); }
@Test void addDefaultBom() { Dependency first = Dependency.withId("first"); Dependency second = Dependency.withId("second"); second.setBom("da-bom"); DependencyGroup group = createDependencyGroup("test", first, second); group.setBom("test-bom"); DependenciesCapability capability = new DependenciesCapability(); capability.getContent().add(group); capability.validate(); assertThat(capability.get("first").getBom()).isEqualTo("test-bom"); assertThat(capability.get("second").getBom()).isEqualTo("da-bom"); }
@Test void indexedDependencies() { Dependency dependency = Dependency.withId("first"); Dependency dependency2 = Dependency.withId("second"); DependenciesCapability capability = createDependenciesCapability("foo", dependency, dependency2); capability.validate(); assertThat(capability.get("first")).isSameAs(dependency); assertThat(capability.get("second")).isSameAs(dependency2); assertThat(capability.get("anotherId")).isNull(); }
@Test void resolveVersionRequirement() { Dependency dependency = Dependency.withId("web"); dependency.getMappings().add(Dependency.Mapping .create("[1.1.0.RELEASE, 1.2.0.RELEASE)", null, null, "0.1.0.RELEASE")); dependency.resolve(); Dependency resolved = dependency.resolve(Version.parse("1.1.5.RELEASE")); assertThat(resolved.getVersionRequirement()) .isEqualTo(">=1.1.0.RELEASE and <1.2.0.RELEASE"); }
@Test void invalidLink() { Dependency dependency = Dependency.withId("foo"); dependency.getLinks().add(Link.create(null, "https://example.com")); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(dependency::resolve); }
@Test void resolveNoMapping() { Dependency dependency = Dependency.withId("web"); dependency.resolve(); assertThat(dependency.resolve(Version.parse("1.2.0.RELEASE"))) .isSameAs(dependency); }
@Test void addDependencyWithAliases() { Dependency dependency = Dependency.withId("first"); dependency.getAliases().add("alias1"); dependency.getAliases().add("alias2"); DependenciesCapability capability = createDependenciesCapability("foo", dependency); capability.validate(); assertThat(capability.get("first")).isSameAs(dependency); assertThat(capability.get("alias1")).isSameAs(dependency); assertThat(capability.get("alias2")).isSameAs(dependency); }
@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 gradleBuildWithTarDependency() { Dependency dependency = Dependency.withId("custom-artifact", "org.foo", "custom-artifact"); dependency.setType("tar.gz"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", dependency).build(); applyMetadata(metadata); ProjectRequest request = createProjectRequest("custom-artifact"); generateGradleBuild(request) .contains("implementation 'org.foo:custom-artifact@tar.gz'"); }
@Test void gradleRepository() { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setRepository("foo-repo"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("foo", foo) .addRepository("foo-repo", "foo", "http://example.com/repo", false) .build(); applyMetadata(metadata); ProjectRequest request = createProjectRequest("foo"); generateGradleBuild(request).hasRepository("http://example.com/repo"); }
@Test void projectWithOnlyStarterDependency() { Dependency foo = Dependency.withId("foo", "org.foo", "custom-my-starter"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("foo", foo).build(); applyMetadata(metadata); ProjectRequest request = createProjectRequest("foo"); generateMavenPom(request).hasDependency("org.foo", "custom-my-starter") .hasSpringBootStarterTest().hasDependenciesCount(2); }
@Test void gradleBom() { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setBom("foo-bom"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("foo", foo) .addBom("foo-bom", "org.acme", "foo-bom", "1.2.3").build(); applyMetadata(metadata); ProjectRequest request = createProjectRequest("foo"); generateGradleBuild(request).contains("dependencyManagement {") .contains("imports {").contains("mavenBom \"org.acme:foo-bom:1.2.3\""); }
@Test void projectWithOnlyNonStarterDependency() { Dependency foo = Dependency.withId("foo", "org.foo", "foo"); foo.setStarter(false); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("foo", foo).build(); applyMetadata(metadata); ProjectRequest request = createProjectRequest("foo"); generateMavenPom(request).hasDependency("org.foo", "foo") .hasSpringBootStarterRootDependency().hasSpringBootStarterTest() .hasDependenciesCount(3); }