|
18 | 18 | import static org.hamcrest.CoreMatchers.nullValue; |
19 | 19 | import org.junit.jupiter.api.AfterAll; |
20 | 20 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 21 | +import static org.junit.jupiter.api.Assertions.assertNull; |
21 | 22 | import org.junit.jupiter.api.BeforeAll; |
22 | 23 | import org.junit.jupiter.api.Test; |
23 | 24 |
|
@@ -522,6 +523,31 @@ public void testUpdateDatasetTypeLinksWithMetadataBlocks() { |
522 | 523 | listBlocks.prettyPrint(); |
523 | 524 | listBlocks.then().assertThat() |
524 | 525 | .body("data[0].name", is("citation")); |
| 526 | + |
| 527 | + //Cleanup objects |
| 528 | + |
| 529 | + |
| 530 | + Long doomed = JsonPath.from(typeAdded.getBody().asString()).getLong("data.id"); |
| 531 | + |
| 532 | + System.out.println("doomed: " + doomed); |
| 533 | + |
| 534 | + getTypeById.prettyPrint(); |
| 535 | + getTypeById.then().assertThat().statusCode(OK.getStatusCode()); |
| 536 | + |
| 537 | + System.out.println("deleting type with id " + doomed); |
| 538 | + Response typeDeleted = UtilIT.deleteDatasetTypes(doomed, apiToken); |
| 539 | + typeDeleted.prettyPrint(); |
| 540 | + typeDeleted.then().assertThat().statusCode(OK.getStatusCode()); |
| 541 | + |
| 542 | + Response deleteDataverseResponse = UtilIT.deleteDataverse(dataverseAlias, apiToken); |
| 543 | + deleteDataverseResponse.prettyPrint(); |
| 544 | + assertEquals(200, deleteDataverseResponse.getStatusCode()); |
| 545 | + |
| 546 | + Response deleteUserResponse = UtilIT.deleteUser(username); |
| 547 | + deleteUserResponse.prettyPrint(); |
| 548 | + assertEquals(200, deleteUserResponse.getStatusCode()); |
| 549 | + |
| 550 | + |
525 | 551 | } |
526 | 552 |
|
527 | 553 | @Test |
@@ -609,5 +635,82 @@ public void testLinkInstrumentToAstro() { |
609 | 635 | .body("data[1].fields.astroObject.displayOnCreate", equalTo(false)); |
610 | 636 |
|
611 | 637 | } |
| 638 | + |
| 639 | + @Test |
| 640 | + public void testCreateDatasetWithCustomType() { |
| 641 | + Response createUser = UtilIT.createRandomUser(); |
| 642 | + createUser.then().assertThat().statusCode(OK.getStatusCode()); |
| 643 | + String username = UtilIT.getUsernameFromResponse(createUser); |
| 644 | + String apiToken = UtilIT.getApiTokenFromResponse(createUser); |
| 645 | + |
| 646 | + Response createDataverse = UtilIT.createRandomDataverse(apiToken); |
| 647 | + createDataverse.then().assertThat().statusCode(CREATED.getStatusCode()); |
| 648 | + String dataverseAlias = UtilIT.getAliasFromResponse(createDataverse); |
| 649 | + Integer dataverseId = UtilIT.getDataverseIdFromResponse(createDataverse); |
| 650 | + |
| 651 | + UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode()); |
| 652 | + |
| 653 | + JsonObjectBuilder job = Json.createObjectBuilder(); |
| 654 | + job.add("name", "testDatasetType"); |
| 655 | + job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial")); |
| 656 | + job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0")); |
| 657 | + |
| 658 | + Response typeAdded = UtilIT.addDatasetType(job.build(), apiToken); |
| 659 | + typeAdded.prettyPrint(); |
| 660 | + |
| 661 | + typeAdded.then().assertThat().statusCode(OK.getStatusCode()); |
| 662 | + Response getTypes = UtilIT.getDatasetTypes(); |
| 663 | + getTypes = UtilIT.getDatasetTypes(); |
| 664 | + getTypes.prettyPrint(); |
| 665 | + |
| 666 | + String pathToJsonFile = "scripts/api/data/dataset-create-new-with-type.json"; |
| 667 | + |
| 668 | + Response createDatasetResponse = UtilIT.createDatasetViaNativeApi(dataverseAlias, pathToJsonFile, apiToken); |
| 669 | + |
| 670 | + createDatasetResponse.prettyPrint(); |
| 671 | + |
| 672 | + |
| 673 | + createDatasetResponse.then().assertThat().statusCode(CREATED.getStatusCode()); |
| 674 | + |
| 675 | + Integer datasetId = UtilIT.getDatasetIdFromResponse(createDatasetResponse); |
| 676 | + String datasetPid = JsonPath.from(createDatasetResponse.getBody().asString()).getString("data.persistentId"); |
| 677 | + |
| 678 | + Response getDatasetJson = UtilIT.nativeGet(datasetId, apiToken); |
| 679 | + getDatasetJson.prettyPrint(); |
| 680 | + getDatasetJson.then().assertThat().statusCode(OK.getStatusCode()); |
| 681 | + String datasetType = JsonPath.from(getDatasetJson.getBody().asString()).getString("data.datasetType"); |
| 682 | + System.out.println("datasetType: " + datasetType); |
| 683 | + assertEquals("testDatasetType", datasetType); |
| 684 | + String datasetVerstionState = JsonPath.from(getDatasetJson.getBody().asString()).getString("data.latestVersion.versionState"); |
| 685 | + assertEquals("DRAFT", datasetVerstionState); |
| 686 | + String datasetLicense = JsonPath.from(getDatasetJson.getBody().asString()).getString("data.latestVersion.license"); |
| 687 | + //License is null because the one in the dataset json does not correspond to the |
| 688 | + // available licenses in the dataset type. |
| 689 | + assertNull(datasetLicense); |
| 690 | + Response deleteDatasetResponse = UtilIT.deleteDatasetViaNativeApi(datasetId, apiToken); |
| 691 | + deleteDatasetResponse.prettyPrint(); |
| 692 | + assertEquals(200, deleteDatasetResponse.getStatusCode()); |
| 693 | + |
| 694 | + Long doomed = JsonPath.from(typeAdded.getBody().asString()).getLong("data.id"); |
| 695 | + |
| 696 | + System.out.println("doomed: " + doomed); |
| 697 | + Response getTypeById = UtilIT.getDatasetType(doomed.toString()); |
| 698 | + getTypeById.prettyPrint(); |
| 699 | + getTypeById.then().assertThat().statusCode(OK.getStatusCode()); |
| 700 | + |
| 701 | + System.out.println("deleting type with id " + doomed); |
| 702 | + Response typeDeleted = UtilIT.deleteDatasetTypes(doomed, apiToken); |
| 703 | + typeDeleted.prettyPrint(); |
| 704 | + typeDeleted.then().assertThat().statusCode(OK.getStatusCode()); |
| 705 | + |
| 706 | + Response deleteDataverseResponse = UtilIT.deleteDataverse(dataverseAlias, apiToken); |
| 707 | + deleteDataverseResponse.prettyPrint(); |
| 708 | + assertEquals(200, deleteDataverseResponse.getStatusCode()); |
| 709 | + |
| 710 | + Response deleteUserResponse = UtilIT.deleteUser(username); |
| 711 | + deleteUserResponse.prettyPrint(); |
| 712 | + assertEquals(200, deleteUserResponse.getStatusCode()); |
| 713 | + |
| 714 | + } |
612 | 715 |
|
613 | 716 | } |
0 commit comments