From e97233b1077407661660925e7b5383a7ae972736 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 12 Nov 2020 10:59:19 +0100 Subject: [PATCH] Fix MavenBuild#hasDependency to test all candidates Closes gh-1146 --- .../buildsystem/maven/MavenBuildAssert.java | 12 ++++++--- .../maven/MavenBuildAssertTests.java | 10 +++++++ ...-dependency-multiple-identical-gav-pom.xml | 26 +++++++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 initializr-generator-test/src/test/resources/project/build/maven/sample-dependency-multiple-identical-gav-pom.xml diff --git a/initializr-generator-test/src/main/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssert.java b/initializr-generator-test/src/main/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssert.java index c0c36f0c..3bf5b125 100644 --- a/initializr-generator-test/src/main/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssert.java +++ b/initializr-generator-test/src/main/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssert.java @@ -193,13 +193,19 @@ public class MavenBuildAssert extends AbstractTextAssert { if (dependency.getGroupId().equals(actual.getGroupId()) && dependency.getArtifactId().equals(actual.getArtifactId())) { if (dependency.getVersion() != null) { - new StringAssert(actual.getVersion()).isEqualTo(dependency.getVersion()); + if (!dependency.getVersion().equals(actual.getVersion())) { + return false; + } } if (dependency.getScope() != null) { - new StringAssert(actual.getScope()).isEqualTo(dependency.getScope()); + if (!dependency.getScope().equals(actual.getScope())) { + return false; + } } if (dependency.getType() != null) { - new StringAssert(actual.getType()).isEqualTo(dependency.getType()); + if (!dependency.getType().equals(actual.getType())) { + return false; + } } return true; } diff --git a/initializr-generator-test/src/test/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssertTests.java b/initializr-generator-test/src/test/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssertTests.java index 19b43d4c..aebe09ed 100644 --- a/initializr-generator-test/src/test/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssertTests.java +++ b/initializr-generator-test/src/test/java/io/spring/initializr/generator/test/buildsystem/maven/MavenBuildAssertTests.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import io.spring.initializr.metadata.Dependency; import org.assertj.core.api.AssertProvider; import org.junit.jupiter.api.Test; @@ -184,6 +185,15 @@ class MavenBuildAssertTests { .hasDependency("com.example.acme", "library-test", "1.3.0", "runtime")); } + @Test + void hasDependencyWithMultipleCandidates() { + Dependency main = Dependency.withId("acme", "com.example.acme", "library", "1.2.0"); + Dependency test = Dependency.withId("acme", "com.example.acme", "library", "1.2.0", "test"); + test.setType("test-jar"); + assertThat(forMavenBuild("sample-dependency-multiple-identical-gav-pom.xml")).hasDependency(main) + .hasDependency(test); + } + @Test void doesNotHaveDependencyArtifactId() { assertThat(forSampleMavenBuild()).doesNotHaveDependency("com.example.acme", "wrong"); diff --git a/initializr-generator-test/src/test/resources/project/build/maven/sample-dependency-multiple-identical-gav-pom.xml b/initializr-generator-test/src/test/resources/project/build/maven/sample-dependency-multiple-identical-gav-pom.xml new file mode 100644 index 00000000..c4db55dc --- /dev/null +++ b/initializr-generator-test/src/test/resources/project/build/maven/sample-dependency-multiple-identical-gav-pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + + com.example.acme + library + 1.2.0 + + + + com.example.acme + library + 1.2.0 + test + test-jar + + + + \ No newline at end of file