Polish URL assertion

Using UrlAssert#isEqualsTo may lead to incorrect comparison based on
local DNS resolution setup. The intention here is to compare the String
literal anyway.

See gh-1151
This commit is contained in:
Stephane Nicoll 2020-11-29 08:25:59 +01:00
parent 13d04c4285
commit a93610ec0b
3 changed files with 18 additions and 12 deletions

View File

@ -28,8 +28,8 @@ import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.Repository;
import org.assertj.core.api.BooleanAssert;
import org.assertj.core.api.Condition;
import org.assertj.core.api.ObjectAssert;
import org.assertj.core.api.StringAssert;
import org.assertj.core.api.UrlAssert;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@ -203,9 +203,7 @@ public class MavenBuildAssert extends AbstractTextAssert<MavenBuildAssert> {
}
}
if (dependency.getType() != null) {
if (!dependency.getType().equals(actual.getType())) {
return false;
}
return dependency.getType().equals(actual.getType());
}
return true;
}
@ -297,12 +295,8 @@ public class MavenBuildAssert extends AbstractTextAssert<MavenBuildAssert> {
new StringAssert(repository.getName()).isEqualTo(name);
}
if (url != null) {
try {
new UrlAssert(repository.getUrl()).isEqualTo(new URL(url));
}
catch (MalformedURLException ex) {
throw new IllegalArgumentException("Cannot parse URL", ex);
}
new ObjectAssert<>(repository.getUrl()).describedAs("URL of repository " + id).isNotNull();
new StringAssert(repository.getUrl().toExternalForm()).isEqualTo(url);
}
if (snapshotsEnabled) {
new BooleanAssert(repository.isSnapshotsEnabled()).isEqualTo(snapshotsEnabled);

View File

@ -262,7 +262,7 @@ class MavenBuildAssertTests {
@Test
void hasRepositoriesSize() {
assertThat(forMavenBuild("sample-repositories-pom.xml")).hasRepositoriesSize(2);
assertThat(forMavenBuild("sample-repositories-pom.xml")).hasRepositoriesSize(3);
}
@Test
@ -273,7 +273,7 @@ class MavenBuildAssertTests {
@Test
void hasRepositoriesSizeWrongSize() {
assertThatExceptionOfType(AssertionError.class)
.isThrownBy(() -> assertThat(forMavenBuild("sample-repositories-pom.xml")).hasRepositoriesSize(3));
.isThrownBy(() -> assertThat(forMavenBuild("sample-repositories-pom.xml")).hasRepositoriesSize(2));
}
@Test
@ -309,6 +309,14 @@ class MavenBuildAssertTests {
"Acme Milestones", "https://repo.wrong.com/milestone", false));
}
@Test
void hasRepositoryWithNullUrl() {
assertThatExceptionOfType(AssertionError.class)
.isThrownBy(() -> assertThat(forMavenBuild("sample-repositories-pom.xml")).hasRepository("acme-empty",
"Acme Empty", "https://repo.wrong.com/milestone", null))
.withMessageContaining("URL of repository acme-empty");
}
@Test
void hasRepositoryWithWrongSnapshotFlag() {
assertThatExceptionOfType(AssertionError.class).isThrownBy(

View File

@ -21,6 +21,10 @@
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>acme-empty</id>
<name>Acme Empty</name>
</repository>
</repositories>
</project>