@Test public void deploySameFileMultipleTimesTest() throws Exception { // file to deploy File fileToDeploy = this.getTestFile("deploySameFileMultipleTimesTest.xml"); String deployPath = "org/sonatype/nexus-integration-tests/multiple-deploy-test/deploySameFileMultipleTimesTest/1/deploySameFileMultipleTimesTest-1.xml"; // deploy it getDeployUtils().deployWithWagon("http", this.getNexusTestRepoUrl(), fileToDeploy, deployPath); // deploy it getDeployUtils().deployWithWagon("http", this.getNexusTestRepoUrl(), fileToDeploy, deployPath); // deploy it getDeployUtils().deployWithWagon("http", this.getNexusTestRepoUrl(), fileToDeploy, deployPath); // download it File artifact = downloadArtifact( "org.sonatype.nexus-integration-tests.multiple-deploy-test", "deploySameFileMultipleTimesTest", "1", "xml", null, "./target/downloaded-jars"); // make sure its here assertTrue(artifact.exists()); // make sure it is what we expect. assertTrue(FileTestingUtils.compareFileSHA1s(fileToDeploy, artifact)); }
/** * 3. download from mirror fails, retry fails, download succeeds from repository the mirror should * be blacklisted */ @Test public void downloadFromMirrorTest() throws Exception { File content = getTestFile("basic"); server.addServer("repository", content); List<String> mirror1Urls = server.addServer("mirror1", HttpServletResponse.SC_REQUEST_TIMEOUT); List<String> mirror2Urls = server.addServer("mirror2", HttpServletResponse.SC_NOT_FOUND); server.start(); Gav gav = new Gav( "nexus1329", "sample", "1.0.0", null, "xml", null, null, null, false, null, false, null); File artifactFile = this.downloadArtifactFromRepository(REPO, gav, "./target/downloads/nexus1329"); File originalFile = this.getTestFile("basic/nexus1329/sample/1.0.0/sample-1.0.0.xml"); Assert.assertTrue(FileTestingUtils.compareFileSHA1s(originalFile, artifactFile)); Assert.assertFalse("Nexus should access first mirror " + mirror1Urls, mirror1Urls.isEmpty()); Assert.assertEquals("Nexus should retry mirror " + mirror1Urls, mirror1Urls.size(), 3); Assert.assertTrue( "Nexus should not access second mirror " + mirror2Urls, mirror2Urls.isEmpty()); MirrorStatusResourceListResponse response = this.messageUtil.getMirrorsStatus(REPO); MirrorStatusResource one = (MirrorStatusResource) response.getData().get(0); Assert.assertEquals(one.getUrl(), "http://localhost:" + webProxyPort + "/mirror1"); Assert.assertEquals(one.getStatus(), "Blacklisted"); }
/** 2. download from mirror fails. download from mirror retry succeeds. no repository access */ @Test public void downloadFileThatIsOnlyInMirrorTest() throws Exception { File content = getTestFile("basic"); List<String> repoUrls = server.addServer("repository", 500); List<String> mirror1Urls = server.addServer("mirror1", 1, HttpServletResponse.SC_REQUEST_TIMEOUT, content); List<String> mirror2Urls = server.addServer("mirror2", 500); server.start(); Gav gav = new Gav( "nexus1329", "sample", "1.0.0", null, "xml", null, null, null, false, false, null, false, null); File artifactFile = this.downloadArtifactFromRepository(REPO, gav, "./target/downloads/nexus1329"); File originalFile = this.getTestFile("basic/nexus1329/sample/1.0.0/sample-1.0.0.xml"); Assert.assertTrue(FileTestingUtils.compareFileSHA1s(originalFile, artifactFile)); Assert.assertTrue( repoUrls.isEmpty(), "Nexus should not access repository canonical url " + repoUrls); Assert.assertTrue( mirror2Urls.isEmpty(), "Nexus should not access second mirror " + mirror2Urls); Assert.assertFalse(mirror1Urls.isEmpty(), "Nexus should access first mirror " + mirror1Urls); Assert.assertEquals(mirror1Urls.size(), 2, "Nexus should retry first mirror " + mirror1Urls); }
/** Nexus should try only the first mirror server */ @Test public void checkSingleMirror() throws Exception { beforeCheck(); File content = getTestFile("basic"); server.addServer("repository", content); List<String> mirror1Urls = server.addServer("mirror1", HttpServletResponse.SC_NOT_FOUND); List<String> mirror2Urls = server.addServer("mirror2", HttpServletResponse.SC_NOT_FOUND); server.start(); Gav gav = new Gav( "nexus1329", "sample", "1.0.0", null, "xml", null, null, null, false, null, false, null); File artifactFile = this.downloadArtifactFromRepository(REPO, gav, "./target/downloads/nexus1329"); File originalFile = this.getTestFile("basic/nexus1329/sample/1.0.0/sample-1.0.0.xml"); Assert.assertTrue(FileTestingUtils.compareFileSHA1s(originalFile, artifactFile)); Assert.assertTrue(mirror1Urls.size() > 0, "Nexus should access first mirror " + mirror1Urls); Assert.assertTrue( mirror2Urls.isEmpty(), "Nexus should not access second mirror " + mirror2Urls); }