@Test public void listPageAttachments() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); register(globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null)); saveRandomPage(BRANCH_1, "foo/bar/baz"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "foo/bar/baz/qux"); // $NON-NLS-1$ Page attachment = Page.fromData(new byte[] {1, 2, 3}, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment( PROJECT, BRANCH_1, "foo/bar/baz", "test.dat", attachment, USER); //$NON-NLS-1$ //$NON-NLS-2$ pageStore.saveAttachment( PROJECT, BRANCH_1, "foo/bar/baz/qux", "test2.dat", attachment, USER); //$NON-NLS-1$ //$NON-NLS-2$ List<String> attachments = pageStore.listPageAttachments(PROJECT, BRANCH_1, "foo/bar/baz"); // $NON-NLS-1$ assertEquals(1, attachments.size()); assertTrue(attachments.contains("test.dat")); // $NON-NLS-1$ attachments = pageStore.listPageAttachments(PROJECT, BRANCH_1, "foo/bar/baz/qux"); // $NON-NLS-1$ assertEquals(1, attachments.size()); assertTrue(attachments.contains("test2.dat")); // $NON-NLS-1$ }
@Test public void deleteAttachment() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, PAGE); Page attachment = Page.fromData(new byte[] {1, 2, 3}, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment(PROJECT, BRANCH_1, PAGE, "test.dat", attachment, USER); // $NON-NLS-1$ assertFalse(pageStore.listPageAttachments(PROJECT, BRANCH_1, PAGE).isEmpty()); File pageFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "attachments"), PAGE), "test.dat.page"); //$NON-NLS-1$ //$NON-NLS-2$ File metaFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "attachments"), PAGE), "test.dat.meta"); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue(pageFile.exists()); assertTrue(metaFile.exists()); pageStore.deleteAttachment(PROJECT, BRANCH_1, PAGE, "test.dat", USER); // $NON-NLS-1$ assertTrue(pageStore.listPageAttachments(PROJECT, BRANCH_1, PAGE).isEmpty()); assertFalse(pageFile.exists()); assertFalse(metaFile.exists()); assertClean(repo.r()); }
@Test public void saveAndGetAttachment() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, "foo/bar/baz"); // $NON-NLS-1$ Page attachment = Page.fromData(new byte[] {1, 2, 3}, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment( PROJECT, BRANCH_1, "foo/bar/baz", "test.dat", attachment, USER); //$NON-NLS-1$ //$NON-NLS-2$ Page result = pageStore.getAttachment( PROJECT, BRANCH_1, "foo/bar/baz", "test.dat"); // $NON-NLS-1$ //$NON-NLS-2$ assertTrue(ArrayUtils.isEquals(attachment.getData(), result.getData())); assertEquals(attachment.getContentType(), result.getContentType()); assertClean(repo.r()); }
private Page saveRandomAttachment(String branchName, String pagePath, String fileName) throws IOException { try { byte[] data = UUID.randomUUID().toString().getBytes("UTF-8"); // $NON-NLS-1$ Page attachment = Page.fromData(data, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment(PROJECT, branchName, pagePath, fileName, attachment, USER); return attachment; } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
@Test public void getAttachmentMetadata() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); register(globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null)); saveRandomPage(BRANCH_1, PAGE); Page attachment = Page.fromData(new byte[] {1, 2, 3}, "image/png"); // $NON-NLS-1$ pageStore.saveAttachment(PROJECT, BRANCH_1, PAGE, "test.png", attachment, USER); // $NON-NLS-1$ PageMetadata metadata = pageStore.getAttachmentMetadata(PROJECT, BRANCH_1, PAGE, "test.png"); // $NON-NLS-1$ assertEquals(USER.getLoginName(), metadata.getLastEditedBy()); assertSecondsAgo(metadata.getLastEdited(), 5); }