/** * This method receives the uploaded file source and destination, performs the upload to artifactory */ private static File uploadFile(Artifactory artifactory, String repo, String destPath, String fileNameToUpload) throws IOException { if (StringUtils.isEmpty(repo) || StringUtils.isEmpty(destPath) || StringUtils.isEmpty(fileNameToUpload) || artifactory == null){ throw new IllegalArgumentException("Arguments passed to createArtifactory are not valid"); } Path path = Paths.get(fileNameToUpload); Files.write(path, Collections.singleton("This is an example line"), Charset.forName("UTF-8")); java.io.File file = new java.io.File(fileNameToUpload); return artifactory.repository(repo).upload(destPath, file).doUpload(); }
private void prepareRepositoriesForMovingAndCoping() throws IOException { deleteAllRelatedRepos(); setupLocalRepo(NEW_LOCAL_FROM); setupLocalRepo(NEW_LOCAL_TO); InputStream content = this.getClass().getResourceAsStream("/sample.txt"); assertNotNull(content); artifactory.repository(NEW_LOCAL_FROM).upload(PATH, content).doUpload(); }
@Test public void testUploadWithMavenGAVC() throws IOException { InputStream inputStream = this.getClass().getResourceAsStream("/sample.zip"); assertNotNull(inputStream); final String targetPath = "com/example/com.example.test/1.0.0/com.example.test-1.0.0-zip.jar"; File deployed = artifactory.repository(localRepository.getKey()).upload(targetPath, inputStream).doUpload(); assertNotNull(deployed); assertEquals(deployed.getRepo(), localRepository.getKey()); assertEquals(deployed.getPath(), "/" + targetPath); assertEquals(deployed.getCreatedBy(), username); // GroupId: com.example; ArtifactId: com.example.test; Version 1.0.0; Classifier: zip assertEquals(deployed.getDownloadUri(), url + localRepository.getKey() + "/" + targetPath); assertEquals(deployed.getSize(), 442); }
@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"); }
@BeforeClass public void setup() { long now = System.currentTimeMillis(); colorsProp += now; buildProp += now; releasedProp += now; artifactId += now; InputStream inputStream = this.getClass().getResourceAsStream("/sample.zip"); assertNotNull(inputStream); final String targetPath = "com/example/" + artifactId + "/1.0.0/" + artifactId + "-1.0.0-zip.jar"; File deployed = artifactory.repository(localRepository.getKey()).upload(targetPath, inputStream) .withProperty(colorsProp, "red", "green", "blue") .withProperty(buildProp, "28") .withProperty(releasedProp, true) .doUpload(); assertNotNull(deployed); }
@Test(enabled = false, dependsOnMethods = "testUploadWithSingleProperty") public void testUploadWithMultiplePropertyValues() throws IOException { artifactory.repository(localRepository.getKey()).upload(PATH, this.getClass().getResourceAsStream("/sample.txt")) .withProperty("colors", "red", "green", "blue") .withProperty("build", 28) .withProperty("released", false).doUpload(); assertTrue(curl("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties") .contains("{\"build\":[\"28\"],\"colors\":[\"red\",\"green\",\"blue\"],\"released\":[\"false\"]}")); }
@Test(dependsOnMethods = "testUploadWithSingleProperty")//to spare all the checks public void testUploadWithMultipleProperties() throws IOException { artifactory.repository(localRepository.getKey()).upload(PATH, this.getClass().getResourceAsStream("/sample.txt")) .withProperty("colors", "red") .withProperty("build", 28) .withProperty("released", false).doUpload(); assertTrue(curlAndStrip("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties").contains("{\"build\":[\"28\"],\"colors\":[\"red\"],\"released\":[\"false\"]}")); }
@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 testUploadWithSingleProperty() throws IOException { InputStream inputStream = this.getClass().getResourceAsStream("/sample.txt"); assertNotNull(inputStream); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, inputStream).withProperty("color", "blue") .withProperty("color", "red").doUpload(); assertNotNull(deployed); assertEquals(deployed.getRepo(), localRepository.getKey()); assertEquals(deployed.getPath(), "/" + PATH); assertEquals(deployed.getCreatedBy(), username); assertEquals(deployed.getDownloadUri(), url + localRepository.getKey() + "/" + PATH); assertTrue(deployed.getSize() == 3044 || deployed.getSize() == 3017); assertTrue(curlAndStrip("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties").contains("\"color\":[\"red\"]")); }
@Test public void testUploadWithListener() throws URISyntaxException, IOException { java.io.File file = new java.io.File(this.getClass().getResource("/sample.txt").toURI()); final long[] uploaded = {0}; final NumberFormat format = DecimalFormat.getPercentInstance(); format.setMaximumFractionDigits(4); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, file).withListener(new UploadListener() { @Override public void uploadProgress(long bytesRead, long totalBytes) { System.out.println("Uploaded " + format.format((double) bytesRead / totalBytes)); uploaded[0] = bytesRead; } }).doUpload(); assertNotNull(deployed); assertEquals(deployed.getRepo(), localRepository.getKey()); assertEquals(deployed.getPath(), "/" + PATH); assertEquals(deployed.getCreatedBy(), username); assertEquals(deployed.getDownloadUri(), url + localRepository.getKey() + "/" + PATH); assertTrue(deployed.getSize() == SAMPLE_FILE_SIZE || deployed.getSize() == SAMPLE_FILE_SIZE_WIN_ENDINGS); assertTrue(uploaded[0] == SAMPLE_FILE_SIZE || uploaded[0] == SAMPLE_FILE_SIZE_WIN_ENDINGS); }
final long[] uploaded = {0}; artifactory.repository(localRepository.getKey()).upload(PATH, temp).withListener(new UploadListener() { @Override public void uploadProgress(long bytesRead, long totalBytes) { File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, temp).withListener(new UploadListener() { @Override public void uploadProgress(long bytesRead, long totalBytes) {
/** * This test requires a 'set_property' user plugin * * @throws IOException */ @Test public void testUploadWithSinglePropertyOnArbitraryLocationAndKeep() throws IOException { InputStream inputStream = this.getClass().getResourceAsStream("/sample.txt"); assertNotNull(inputStream); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, inputStream).withProperty("color", "red") .withProperty("target", "m", "keep").doUpload(); assertNotNull(deployed); assertEquals(deployed.getRepo(), localRepository.getKey()); assertEquals(deployed.getPath(), "/" + PATH); assertEquals(deployed.getCreatedBy(), username); assertEquals(deployed.getDownloadUri(), url + localRepository.getKey() + "/" + PATH); assertTrue(deployed.getSize() == 3044 || deployed.getSize() == 3017); assertTrue(curlAndStrip("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties").contains("\"color\":[\"red\"]")); assertFalse(curlAndStrip("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties").contains("\"target\":[\"m/a\"]")); }
artifactory.repository(localRepository.getKey()).upload(PATH_PROPS, content).doUpload(); ItemHandle file = artifactory.repository(localRepository.getKey()).file(PATH_PROPS); Map<String, ?> resProps = file.getProperties();
/** * This test requires a 'set_property' user plugin * * @throws IOException */ @Test public void testUploadWithSinglePropertyOnArbitraryLocationNoKeep() throws IOException { InputStream inputStream = this.getClass().getResourceAsStream("/sample.txt"); assertNotNull(inputStream); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, inputStream).withProperty("color", "red") .withProperty("target", "m/a").doUpload(); assertNotNull(deployed); assertEquals(deployed.getRepo(), localRepository.getKey()); assertEquals(deployed.getPath(), "/" + PATH); assertEquals(deployed.getCreatedBy(), username); assertEquals(deployed.getDownloadUri(), url + localRepository.getKey() + "/" + PATH); assertTrue(deployed.getSize() == 3044 || deployed.getSize() == 3017); try { curlAndStrip("api/storage/" + localRepository.getKey() + "/" + PATH + "?properties"); } catch (IOException e) { assertEquals(e.getClass(), FileNotFoundException.class); } }