Skip to content

Commit

Permalink
add tests for "delete aux file" and "list aux by origin" IQSS#8235
Browse files Browse the repository at this point in the history
  • Loading branch information
pdurbin committed Nov 16, 2021
1 parent 59d0cbb commit b66fb55
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/test/java/edu/harvard/iq/dataverse/api/AuxiliaryFilesIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.nio.file.Paths;
import static javax.ws.rs.core.Response.Status.CREATED;
import static javax.ws.rs.core.Response.Status.FORBIDDEN;
import static javax.ws.rs.core.Response.Status.NOT_FOUND;
import static javax.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.equalTo;
import org.junit.Assert;
Expand Down Expand Up @@ -204,6 +205,22 @@ public void testUploadAuxFiles() throws IOException {
.body("data.type", equalTo(null))
.body("data.contentType", equalTo("text/plain"));

// file with an origin
Path pathToAuxFileOrigin1 = Paths.get(java.nio.file.Files.createTempDirectory(null) + File.separator + "file1.txt");
String contentOfOrigin1 = "This file has an origin.";
java.nio.file.Files.write(pathToAuxFileOrigin1, contentOfOrigin1.getBytes());
String formatTagOrigin1 = "origin1";
String formatVersionOrigin1 = "0.1";
String mimeTypeOrigin1 = "text/plain";
String typeOrigin1 = "someType";
String origin1 = "myApp";
Response uploadAuxFileOrigin1 = UtilIT.uploadAuxFile(fileId, pathToAuxFileOrigin1.toString(), formatTagOrigin1, formatVersionOrigin1, mimeTypeOrigin1, true, typeOrigin1, origin1, apiToken);
uploadAuxFileOrigin1.prettyPrint();
uploadAuxFileOrigin1.then().assertThat()
.statusCode(OK.getStatusCode())
.body("data.type", equalTo("someType"))
.body("data.contentType", equalTo("text/plain"));

// Download JSON aux file.
Response downloadAuxFileJson = UtilIT.downloadAuxFile(fileId, formatTagJson, formatVersionJson, apiToken);
downloadAuxFileJson.then().assertThat().statusCode(OK.getStatusCode());
Expand Down Expand Up @@ -252,5 +269,24 @@ public void testUploadAuxFiles() throws IOException {
Response failToDownloadAuxFileJsonPostPublish = UtilIT.downloadAuxFile(fileId, formatTagJson, formatVersionJson, apiTokenNoPrivs);
failToDownloadAuxFileJsonPostPublish.then().assertThat().statusCode(OK.getStatusCode());

Response listAuxFilesOrigin1 = UtilIT.listAuxFilesByOrigin(fileId, origin1, apiToken);
listAuxFilesOrigin1.prettyPrint();
listAuxFilesOrigin1.then().assertThat()
.statusCode(OK.getStatusCode())
.body("data[0].formatTag", equalTo("origin1"))
.body("data[0].formatVersion", equalTo("0.1"))
.body("data[0].fileSize", equalTo(24))
.body("data[0].contentType", equalTo("text/plain"))
.body("data[0].isPublic", equalTo(true))
.body("data[0].type", equalTo("someType"));

Response deleteAuxFileOrigin1 = UtilIT.deleteAuxFile(fileId, formatTagOrigin1, formatVersionOrigin1, apiToken);
deleteAuxFileOrigin1.prettyPrint();
deleteAuxFileOrigin1.then().assertThat().statusCode(OK.getStatusCode());

Response listAuxFilesOrigin1NowGone = UtilIT.listAuxFilesByOrigin(fileId, origin1, apiToken);
listAuxFilesOrigin1NowGone.prettyPrint();
listAuxFilesOrigin1NowGone.then().assertThat().statusCode(NOT_FOUND.getStatusCode());

}
}
22 changes: 22 additions & 0 deletions src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -649,13 +649,21 @@ static Response uploadFileViaNative(String datasetId, String pathToFile, String
}

static Response uploadAuxFile(Long fileId, String pathToFile, String formatTag, String formatVersion, String mimeType, boolean isPublic, String type, String apiToken) {
String nullOrigin = null;
return uploadAuxFile(fileId, pathToFile, formatTag, formatVersion, mimeType, isPublic, type, nullOrigin, apiToken);
}

static Response uploadAuxFile(Long fileId, String pathToFile, String formatTag, String formatVersion, String mimeType, boolean isPublic, String type, String origin, String apiToken) {
RequestSpecification requestSpecification = given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
.multiPart("file", new File(pathToFile), mimeType)
.multiPart("isPublic", isPublic);
if (type != null) {
requestSpecification.multiPart("type", type);
}
if (origin != null) {
requestSpecification.multiPart("origin", origin);
}
return requestSpecification.post("/api/access/datafile/" + fileId + "/auxiliary/" + formatTag + "/" + formatVersion);
}

Expand All @@ -666,6 +674,20 @@ static Response downloadAuxFile(Long fileId, String formatTag, String formatVers
return response;
}

static Response listAuxFilesByOrigin(Long fileId, String origin, String apiToken) {
Response response = given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
.get("/api/access/datafile/" + fileId + "/auxiliary/" + origin);
return response;
}

static Response deleteAuxFile(Long fileId, String formatTag, String formatVersion, String apiToken) {
Response response = given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
.delete("/api/access/datafile/" + fileId + "/auxiliary/" + formatTag + "/" + formatVersion);
return response;
}

static Response getCrawlableFileAccess(String datasetId, String folderName, String apiToken) {
RequestSpecification requestSpecification = given()
.header(API_TOKEN_HTTP_HEADER, apiToken);
Expand Down

0 comments on commit b66fb55

Please sign in to comment.