@Test(dependsOnMethods = "testCreate") public void testCreateDirectoryWithIllegalName() throws IOException { try { artifactory.repository(localRepository.getKey()).folder("myFolder?").create(); } catch (Exception e) { assertTrue(e instanceof HttpResponseException); assertTrue(((HttpResponseException)e).getStatusCode() == 500); } }
artifactory.repository(localRepository.getKey()).upload(PATH_PROPS, content).doUpload(); ItemHandle file = artifactory.repository(localRepository.getKey()).file(PATH_PROPS); Map<String, ?> resProps = file.getProperties(); assertTrue(resProps.isEmpty()); Map<String, String> props = new HashMap<>(); props.put("p2", "v2"); props.put("p3", "v3"); file.properties().addProperty("p1", "v1").addProperties(props).doSet(false); resProps = file.getProperties(); assertEquals(((List) resProps.get("p1")).get(0), "v1"); assertEquals(((List) resProps.get("p2")).get(0), "v2"); assertEquals(((List) resProps.get("p3")).get(0), "v3"); resProps = file.getProperties("p1", "p3"); assertEquals(resProps.size(), 2); assertEquals(((List) resProps.get("p1")).get(0), "v1"); assertEquals(((List) resProps.get("p3")).get(0), "v3"); file.deleteProperties("p1", "p3"); List<String> p2 = file.getPropertyValues("p2"); assertEquals(p2.size(), 1); assertEquals(p2.get(0), "v2"); file.properties().addProperty("multi", "a", "b").doSet(); List<String> multi = file.getPropertyValues("multi"); assertEquals(multi.size(), 2); assertTrue(multi.contains("a") && multi.contains("b")); file.properties().addProperty("label", "<label for\\=\"male\">Male\\, \\| And Female \\= Love</label>").doSet(); List<String> specialChars = file.getPropertyValues("label"); assertEquals(specialChars.size(), 1);
@Test(groups = "items") public void testSetItemPropertiesOnNonExistingDirectory() throws Exception { ItemHandle folder = artifactory.repository(localRepository.getKey()).folder("x/y/z"); try { folder.info(); //should fail } catch (Exception e) { //noinspection ConstantConditions if (!(e instanceof HttpResponseException) || !(((HttpResponseException) e).getStatusCode() == 404 || ((HttpResponseException) e).getStatusCode() == 405)) { throw e; } } folder.properties().addProperty("v1", "b2").doSet(); Folder info = folder.info(); assertNotNull(info); assertTrue(info.isFolder()); assertTrue(folder.getPropertyValues("v1").contains("b2")); }
@Test public void testExceptionOnMovingFile() throws Exception { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).file("a/a"); try { itemHandle.move(NEW_LOCAL_TO, PATH); } catch (CopyMoveException e) { assertTrue(curl("api/move/" + NEW_LOCAL_FROM + "/a/a?to=" + NEW_LOCAL_TO + "/" + PATH, "POST").contains(e.getCopyMoveResultReport().getMessages().get(0).getMessage())); } finally { deleteAllRelatedRepos(); } }
@Test public void testExceptionOnCopingFile() throws Exception { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).file("a/a"); try { itemHandle.copy(NEW_LOCAL_TO, PATH); } catch (CopyMoveException e) { assertTrue(curl("api/copy/" + NEW_LOCAL_FROM + "/a/a?to=" + NEW_LOCAL_TO + "/" + PATH, "POST").contains(e.getCopyMoveResultReport().getMessages().get(0).getMessage())); } finally { deleteAllRelatedRepos(); } }
@Test(groups = "security") public void testEffectiveItemPermissions() throws Exception { InputStream inputStream = this.getClass().getResourceAsStream("/sample.txt"); Assert.assertNotNull(inputStream); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, inputStream).doUpload(); Assert.assertNotNull(deployed); Set<ItemPermission> itemPermissions = artifactory.repository(localRepository.getKey()).file(PATH).effectivePermissions(); assertItemPermissions(itemPermissions); }
@Test public void testMoveDirectory() throws Exception { try { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).folder("m"); String path = "abc"; checkTheEqualityOfFolders(itemHandle.move(NEW_LOCAL_TO, path), NEW_LOCAL_TO, path); } finally { deleteAllRelatedRepos(); } }
@Test public void testCopyFile() throws Exception { try { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).file(PATH); ItemHandle newItemHandle = itemHandle.copy(NEW_LOCAL_TO, PATH); checkTheEqualityOfFiles(newItemHandle, NEW_LOCAL_TO, PATH); } finally { deleteAllRelatedRepos(); } }
@Test(dependsOnMethods = "testUploadWithSingleProperty") public void testUploadExplodeArchive() throws IOException { artifactory.repository(localRepository.getKey()).upload("sample/sample.zip", this.getClass().getResourceAsStream("/sample.zip")) .doUploadAndExplode(); List<Item> items = ((FolderImpl) artifactory.repository(localRepository.getKey()).folder("sample").info()).getChildren(); assertEquals(items.get(0).getUri(), "/a.txt"); assertEquals(items.get(1).getUri(), "/b.txt"); assertEquals(items.get(2).getUri(), "/c.txt"); }
@Test public void testMoveFile() throws Exception { try { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).file(PATH); ItemHandle newItemHandle = itemHandle.move(NEW_LOCAL_TO, PATH); checkTheEqualityOfFiles(newItemHandle, NEW_LOCAL_TO, PATH); } finally { deleteAllRelatedRepos(); } }
@Test public void testCopyDirectory() throws Exception { try { prepareRepositoriesForMovingAndCoping(); ItemHandle itemHandle = artifactory.repository(NEW_LOCAL_FROM).folder("m"); String path = "abc"; checkTheEqualityOfFolders(itemHandle.copy(NEW_LOCAL_TO, path), NEW_LOCAL_TO, path); } finally { deleteAllRelatedRepos(); } }
@Test(dependsOnMethods = "testCreate") public void testCreateDirectory() throws IOException { Folder folder = artifactory.repository(localRepository.getKey()).folder("myFolder").create(); assertEquals("/myFolder/", folder.getPath()); assertNotNull(folder.getCreated()); }
@Test public void testFolderInfo() throws IOException { // Get the folder to the cache artifactory.repository(getJCenterRepoName()).download("junit/junit/4.10/junit-4.10-sources.jar").doDownload(); Folder folder = artifactory.repository(getJcenterCacheName()).folder("junit").info(); assertNotNull(folder); assertTrue(folder.isFolder()); assertEquals(folder.getChildren().size(), 1); assertEquals(folder.getRepo(), getJcenterCacheName()); assertEquals(folder.getPath(), "/junit"); }
@Test(dependsOnMethods = "testCreate") public void testCreateDirectoryWithoutPermissions() throws IOException { Artifactory anonymousArtifactory = ArtifactoryClientBuilder.create().setUrl(url).build(); try { anonymousArtifactory.repository(localRepository.getKey()).folder("myFolder").create(); } catch (HttpResponseException e) { assertTrue(e.getStatusCode() == HttpStatus.SC_UNAUTHORIZED); } }
@Test(dependsOnMethods = "testFileInfo") public void testFileInfoWithSha256() throws Exception { String path = "junit/junit/4.10/junit-4.10-sources.jar"; calcSha256ForItem(getJcenterCacheName(), path); File file = artifactory.repository(getJcenterCacheName()).file(path).info(); assertNotNull(file); assertEquals(file.getDownloadUri(), url + getJcenterCacheName() + "/junit/junit/4.10/junit-4.10-sources.jar"); assertEquals(file.getChecksums().getMd5(), "8f17d4271b86478a2731deebdab8c846"); assertEquals(file.getChecksums().getSha1(), "6c98d6766e72d5575f96c9479d1c1d3b865c6e25"); assertEquals(file.getChecksums().getSha256(), "e3a4cb7ac3343265f5663b68857078ae68787450afc6e72dc6826962a1bf5212"); }
@Test public void testFileInfo() throws IOException { // Get the file to the cache artifactory.repository(getJCenterRepoName()).download("junit/junit/4.10/junit-4.10-sources.jar").doDownload(); File file = artifactory.repository(getJcenterCacheName()).file("junit/junit/4.10/junit-4.10-sources.jar").info(); assertNotNull(file); assertFalse(file.isFolder()); assertEquals(file.getSize(), 141185); assertEquals(file.getDownloadUri(), url + getJcenterCacheName() + "/junit/junit/4.10/junit-4.10-sources.jar"); assertEquals(file.getChecksums().getMd5(), "8f17d4271b86478a2731deebdab8c846"); assertEquals(file.getChecksums().getSha1(), "6c98d6766e72d5575f96c9479d1c1d3b865c6e25"); }