This is an automated email from the ASF dual-hosted git repository. sjaranowski pushed a commit to branch MNG-7758-next-try in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git
commit 565c7f17230bb5a1552e898f8c0ca61f9195655a Author: Slawomir Jaranowski <[email protected]> AuthorDate: Mon Jun 10 21:41:13 2024 +0200 [MNG-7758] Report dependency problems for all repository - extends ITs --- ...ng3477DependencyResolutionErrorMessageTest.java | 66 ++++++++++++++++++---- .../{settings.xml => settings-template.xml} | 4 +- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java index 5fcdab5dd..20ee0e10c 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java @@ -19,17 +19,21 @@ package org.apache.maven.it; import java.io.File; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.maven.shared.verifier.VerificationException; import org.apache.maven.shared.verifier.Verifier; import org.apache.maven.shared.verifier.util.ResourceExtractor; +import org.eclipse.jetty.server.NetworkConnector; +import org.eclipse.jetty.server.Server; import org.junit.jupiter.api.Test; /** * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3477">MNG-3477</a>. */ -public class MavenITmng3477DependencyResolutionErrorMessageTest extends AbstractMavenIntegrationTestCase { +class MavenITmng3477DependencyResolutionErrorMessageTest extends AbstractMavenIntegrationTestCase { public MavenITmng3477DependencyResolutionErrorMessageTest() { super("[2.1.0,3.0-alpha-1),[3.0-beta-1,)"); @@ -40,29 +44,71 @@ public class MavenITmng3477DependencyResolutionErrorMessageTest extends Abstract * * @throws Exception in case of failure */ - @Test - public void testit() throws Exception { + void testit(int port, String[] logExpectPatterns) throws Exception { File testDir = ResourceExtractor.simpleExtractResources(getClass(), "/mng-3477"); Verifier verifier = newVerifier(testDir.getAbsolutePath()); + + Map<String, String> filterProps = new HashMap<>(); + filterProps.put("@port@", Integer.toString(port)); + verifier.filterFile("settings-template.xml", "settings.xml", "UTF-8", filterProps); + verifier.setAutoclean(false); verifier.deleteArtifacts("org.apache.maven.its.mng3477"); + verifier.addCliArgument("-U"); verifier.addCliArgument("--settings"); verifier.addCliArgument("settings.xml"); + verifier.addCliArgument("validate"); + verifier.setLogFileName("log-" + port + ".txt"); try { - verifier.addCliArgument("validate"); verifier.execute(); fail("Build should have failed to resolve dependency"); } catch (VerificationException e) { - boolean foundCause = false; List<String> lines = verifier.loadLines(verifier.getLogFileName(), "UTF-8"); - for (String line : lines) { - if (line.matches(".*org.apache.maven.its.mng3477:dep:.*:1.0.*Connection.*refused.*")) { - foundCause = true; - break; + for (String pattern : logExpectPatterns) { + boolean foundCause = false; + for (String line : lines) { + if (line.matches(pattern)) { + foundCause = true; + break; + } } + assertTrue("Transfer error cause was not found - " + pattern, foundCause); + } + } + } + + /** + * Only one exception is returned by DependencyCollectionException.getResult().getExceptions() + * + * @throws Exception + */ + @Test + void connectionProblems() throws Exception { + testit(54312, new String[] {".*org.apache.maven.its.mng3477:dep:.*:1.0.*Connection.*refused.*"}); + } + + @Test + void notFoundProblems() throws Exception { + Server server = null; + try { + server = new Server(0); + server.start(); + if (server.isFailed()) { + fail("Couldn't bind the server socket to a free port!"); + } + + int port = ((NetworkConnector) server.getConnectors()[0]).getLocalPort(); + testit(port, new String[] { + ".*Could not find artifact org.apache.maven.its.mng3477:dep:.*:1.0 in central \\(http://localhost:.*/repo\\).*", + ".*Could not find artifact org.apache.maven.its.mng3477:dep:.*:1.0 in maven-core-it \\(http://localhost:.*/repo\\).*" + }); + + } finally { + if (server != null) { + server.stop(); + server.join(); } - assertTrue("Transfer error cause was not found", foundCause); } } } diff --git a/core-it-suite/src/test/resources/mng-3477/settings.xml b/core-it-suite/src/test/resources/mng-3477/settings-template.xml similarity index 93% rename from core-it-suite/src/test/resources/mng-3477/settings.xml rename to core-it-suite/src/test/resources/mng-3477/settings-template.xml index f55f2d030..0e0938713 100644 --- a/core-it-suite/src/test/resources/mng-3477/settings.xml +++ b/core-it-suite/src/test/resources/mng-3477/settings-template.xml @@ -23,7 +23,7 @@ under the License. <mirrors> <mirror> <id>central</id> - <url>http://localhost:54312/repo</url> + <url>http://localhost:@port@/repo</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> @@ -33,7 +33,7 @@ under the License. <repositories> <repository> <id>maven-core-it</id> - <url>http://localhost:54312/repo</url> + <url>http://localhost:@port@/repo</url> <releases> <checksumPolicy>ignore</checksumPolicy> </releases>
