Skip to content

Commit

Permalink
CADC-12859 expect 201 response code for a PUT, make link node tests w…
Browse files Browse the repository at this point in the history
…ith external link skipable
  • Loading branch information
jburke-cadc committed Feb 2, 2024
1 parent 0075409 commit 6be2ca2
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 61 deletions.
2 changes: 1 addition & 1 deletion cadc-test-vos/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ sourceCompatibility = 1.8

group = 'org.opencadc'

version = '2.1.6'
version = '2.1.7'

description = 'OpenCADC VOSpace test library'
def git_url = 'https://github.com/opencadc/vos'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ public void testContainerNode() {
put(subDirURL, subDirURI, subDirNode);
Assert.fail("New node should fail when parent is locked");
} catch (AssertionError ex) {
Assert.assertEquals("expected PUT response code = 200 expected:<200> but was:<403>",
Assert.assertEquals("expected PUT response code = 201 expected:<201> but was:<403>",
ex.getMessage());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.opencadc.vospace.ContainerNode;
import org.opencadc.vospace.LinkNode;
Expand All @@ -128,14 +127,13 @@ public class PackageTest extends VOSTest {
private static final String ZIP_CONTENT_TYPE = "application/zip";
private static final String TAR_CONTENT_TYPE = "application/x-tar";

private final boolean fooLinks;
private final boolean testExternalLinks;

protected PackageTest(URI resourceID, File testCert, boolean fooLinks) {
protected PackageTest(URI resourceID, File testCert, boolean testExternalLinks) {
super(resourceID, testCert);
this.fooLinks = fooLinks;
this.testExternalLinks = testExternalLinks;
}


/**
* returns empty archive file, should return archive with empty directory?
*/
Expand Down Expand Up @@ -273,43 +271,43 @@ public void singleFileTargetTest() {
@Test
public void multipleTargetTest() {
try {
// /root/
// /root/target-1/
// /root/target-1/file1
// /root/target-2/
// /root/target-2/file2
// /multi-target-root-node/
// /multi-target-root-node/dir1/
// /multi-target-root-node/dir1/file1
// /multi-target-root-node/dir2/
// /multi-target-root-node/dir2/file2

String root = "multi-target-root-node/";
String target1 = root + "target-1/";
String file1 = target1 + "target-1-file.txt";
String target2 = root + "target-2/";
String file2 = target2 + "target-2-file.txt";
String dir1 = root + "dir1/";
String file1 = dir1 + "file1.txt";
String dir2 = root + "dir2/";
String file2 = dir2 + "file2.txt";

URL rootURL = getNodeURL(nodesServiceURL, root);
URL target1URL = getNodeURL(nodesServiceURL, target1);
URL dir1URL = getNodeURL(nodesServiceURL, dir1);
URL file1URL = getNodeURL(nodesServiceURL, file1);
URL target2URL = getNodeURL(nodesServiceURL, target2);
URL dir2URL = getNodeURL(nodesServiceURL, dir2);
URL file2URL = getNodeURL(nodesServiceURL, file2);

URL[] nodes = new URL[] {file2URL, target2URL, file1URL, target1URL, rootURL};
URL[] nodes = new URL[] {file2URL, dir2URL, file1URL, dir1URL, rootURL};

// cleanup
delete(nodes);

// upload the folders and files
String content1 = "target-1-file-content";
String content2 = "target-2-file-content";
String content1 = "file1-content";
String content2 = "file2-content";

VOSURI rootURI = putContainerNode(root, rootURL);
VOSURI target1URI = putContainerNode(target1, target1URL);
VOSURI dir1URI = putContainerNode(dir1, dir1URL);
VOSURI file1URI = putDataNode(file1, content1, authSubject);
VOSURI target2URI = putContainerNode(target2, target2URL);
VOSURI dir2URI = putContainerNode(dir2, dir2URL);
VOSURI file2URI = putDataNode(file2, content2, authSubject);

// package targets to download
List<URI> targets = new ArrayList<>();
targets.add(target1URI.getURI());
targets.add(target2URI.getURI());
targets.add(dir1URI.getURI());
targets.add(dir2URI.getURI());

// expected files in download
List<String> expected = new ArrayList<>();
Expand All @@ -331,36 +329,32 @@ public void multipleTargetTest() {
@Test
public void fullTest() {
try {
// /root-folder/
// /root-folder/file-1.txt
// /root-folder/folder-1/
// /root-folder/folder-2/
// /root-folder/folder-2/file-2.txt
// /root-folder/folder-2/file-3.txt
// /root-folder/folder-2/folder-3/
// /root-folder/folder-2/folder-3/link-1.txt
// /full-root-folder/
// /full-root-folder/pkg-root/file1.txt
// /full-root-folder/pkg-root/dir1/
// /full-root-folder/pkg-root/dir2/
// /full-root-folder/pkg-root/dir2/file2.txt
// /full-root-folder/pkg-root/dir2/file3.txt

// nodes paths
String root = "full-root-folder/";
String file1 = root + "file-1.txt";
String folder1 = root + "folder-1/";
String folder2 = root + "folder-2/";
String file2 = folder2 + "file-2.txt";
String file3 = folder2 + "file-3.txt";
String folder3 = folder2 + "folder-3/";
String link1 = folder3 + "link-1.txt";
String pkgRoot = root + "pkg-root/";
String file1 = pkgRoot + "file1.txt";
String dir1 = pkgRoot + "dir1/";
String dir2 = pkgRoot + "dir2/";
String file2 = dir2 + "file2.txt";
String file3 = dir2 + "file3.txt";

// node URL's
URL rootURL = getNodeURL(nodesServiceURL, root);
URL pkgRootURL = getNodeURL(nodesServiceURL, pkgRoot);
URL file1URL = getNodeURL(nodesServiceURL, file1);
URL folder1URL = getNodeURL(nodesServiceURL, folder1);
URL folder2URL = getNodeURL(nodesServiceURL, folder2);
URL dir1URL = getNodeURL(nodesServiceURL, dir1);
URL dir2URL = getNodeURL(nodesServiceURL, dir2);
URL file2URL = getNodeURL(nodesServiceURL, file2);
URL file3URL = getNodeURL(nodesServiceURL, file3);
URL folder3URL = getNodeURL(nodesServiceURL, folder3);
URL link1URL = getNodeURL(nodesServiceURL, link1);

URL[] nodes = new URL[] {link1URL, folder3URL, file3URL, file2URL, folder2URL, folder1URL, file1URL, rootURL};
URL[] nodes = new URL[] {file3URL, file2URL, dir2URL, dir1URL, file1URL, pkgRootURL, rootURL};

// cleanup
delete(nodes);
Expand All @@ -369,20 +363,18 @@ public void fullTest() {
String file1Content = "file-1-content";
String file2Content = "file-2-content";
String file3Content = "file-3-content";
URI linkTarget = URI.create("vos://opencadc.org~cavern/link-node");

VOSURI rootURI = putContainerNode(root, rootURL);
VOSURI pkgRootURI = putContainerNode(pkgRoot, pkgRootURL);
VOSURI file1URI = putDataNode(file1, file1Content);
VOSURI folder1URI = putContainerNode(folder1, folder1URL);
VOSURI folder2URI = putContainerNode(folder2, folder2URL);
VOSURI dir1URI = putContainerNode(dir1, dir1URL);
VOSURI dir2URI = putContainerNode(dir2, dir2URL);
VOSURI file2URI = putDataNode(file2, file2Content);
VOSURI file3URI = putDataNode(file3, file3Content);
VOSURI folder3URI = putContainerNode(folder3, folder3URL);
VOSURI link1URI = putLinkNode(link1, link1URL, linkTarget);

// package targets to download
List<URI> targets = new ArrayList<>();
targets.add(rootURI.getURI());
targets.add(pkgRootURI.getURI());

// expected files in download
List<String> expected = new ArrayList<>();
Expand Down Expand Up @@ -472,13 +464,13 @@ public void outOfPackageLinkNodeTest() {
// link1 is a link to file2
// download package for dir1 which must have the LinkNode link1 -> file2
try {
String root = "out-of-package-link-root-node";
String dir1 = root + "/dir1";
String dir2 = dir1 + "/dir2";
String link1 = dir2 + "/link1";
String file1 = dir2 + "/file1";
String dir3 = dir1 + "/dir3";
String file2 = dir3 + "/file2";
String root = "out-of-package-link-root-node/";
String dir1 = root + "dir1/";
String dir2 = dir1 + "dir2/";
String link1 = dir2 + "link1";
String file1 = dir2 + "file1";
String dir3 = dir1 + "dir3/";
String file2 = dir3 + "file2";

URL rootURL = getNodeURL(nodesServiceURL, root);
URL dir1URL = getNodeURL(nodesServiceURL, dir1);
Expand Down Expand Up @@ -512,7 +504,6 @@ public void outOfPackageLinkNodeTest() {
// expected files in download
List<String> expected = new ArrayList<>();
expected.add(file1);
expected.add(file2);

doTest(targets, expected, TAR_CONTENT_TYPE);
// doTest(targets, expected, ZIP_CONTENT_TYPE);
Expand All @@ -527,6 +518,10 @@ public void outOfPackageLinkNodeTest() {

@Test
public void externalLinkNodeTest() {
if (!testExternalLinks) {
log.info("testExternalLinks=false, skipping externalLinkNodeTest");
return;
}
// /dir1/dir2/link1
// /dir1/dir2/file1
// /dir1/dir3/file2
Expand Down Expand Up @@ -799,8 +794,8 @@ private void verifyPackage(List<String> expectedFiles, File packageDir) throws I
log.debug("expected file: " + expected);
for (Path extracted : extractedFiles) {
log.debug("extracted file: " + extracted.getFileName());
if (extracted.toString().endsWith(expected)) {
log.debug("matched: " + expected);
if (expected.endsWith(extracted.getFileName().toString())) {
log.debug(String.format("matched %s -> %s", expected, extracted));
count++;
break;
}
Expand Down

0 comments on commit 6be2ca2

Please sign in to comment.