|
21 | 21 | import edu.harvard.iq.dataverse.engine.command.DataverseRequest; |
22 | 22 | import edu.harvard.iq.dataverse.license.LicenseServiceBean; |
23 | 23 | import edu.harvard.iq.dataverse.mocks.MockDatasetFieldSvc; |
| 24 | +import edu.harvard.iq.dataverse.pidproviders.doi.AbstractDOIProvider; |
24 | 25 | import edu.harvard.iq.dataverse.settings.SettingsServiceBean; |
25 | 26 | import org.junit.jupiter.api.AfterAll; |
26 | 27 | import org.junit.jupiter.api.Assumptions; |
|
43 | 44 | import java.io.StringReader; |
44 | 45 | import java.math.BigDecimal; |
45 | 46 | import java.text.ParseException; |
| 47 | +import java.time.Instant; |
46 | 48 | import java.util.*; |
47 | 49 |
|
48 | 50 | import static org.junit.jupiter.api.Assertions.assertEquals; |
@@ -918,4 +920,39 @@ public void testGuestbookResponse() throws JsonParseException { |
918 | 920 | assertTrue(e.getMessage().contains("Guestbook Response entry is required but not present")); |
919 | 921 | } |
920 | 922 | } |
| 923 | + |
| 924 | + // Testing that output of JsonPrinter can be used as input to JsonParser |
| 925 | + // Additional tests can be added but this was created for Issue: API inconsistency for release time between JsonParser/JsonPrinter #11594 |
| 926 | + @Test |
| 927 | + public void testDatasetVersionJsonPrinterJsonParser() throws JsonParseException { |
| 928 | + // Set up to prevent NullPointerExceptions |
| 929 | + String sut = "foobar"; |
| 930 | + DatasetType foobar = new DatasetType(); |
| 931 | + foobar.setName(sut); |
| 932 | + TermsOfUseAndAccess termsOfUseAndAccess = new TermsOfUseAndAccess(); |
| 933 | + termsOfUseAndAccess.setTermsOfUse("TOU"); |
| 934 | + settingsSvc = new MockSettingsSvc(); |
| 935 | + DatasetType datasetType = new DatasetType(); |
| 936 | + datasetType.setName(DatasetType.DEFAULT_DATASET_TYPE); |
| 937 | + datasetType.setId(1l); |
| 938 | + Mockito.when(datasetTypeService.getByName(DatasetType.DEFAULT_DATASET_TYPE)).thenReturn(datasetType); |
| 939 | + JsonParser jsonParser = new JsonParser(datasetFieldTypeSvc, null, settingsSvc, licenseService, datasetTypeService); |
| 940 | + |
| 941 | + Dataset ds = new Dataset(); |
| 942 | + DatasetVersion dsv1 = new DatasetVersion(); |
| 943 | + DatasetVersion dsv2 = new DatasetVersion(); |
| 944 | + |
| 945 | + ds.setGlobalId(new GlobalId(AbstractDOIProvider.DOI_PROTOCOL,"10.5072","FK2/BYM3IW", "/", AbstractDOIProvider.DOI_RESOLVER_URL, null)); |
| 946 | + ds.setDatasetType(foobar); |
| 947 | + dsv1.setDataset(ds); |
| 948 | + dsv1.setReleaseTime(Date.from(Instant.now())); |
| 949 | + dsv1.setVersionState(DatasetVersion.VersionState.RELEASED); |
| 950 | + dsv1.setTermsOfUseAndAccess(termsOfUseAndAccess); |
| 951 | + |
| 952 | + // Test output of JsonPrinter can be used as input to JsonParser |
| 953 | + JsonObject json = JsonPrinter.json(dsv1, false).build(); |
| 954 | + jsonParser.parseDatasetVersion(json, dsv2); |
| 955 | + |
| 956 | + assertEquals(dsv1.getReleaseTime().toString(), dsv2.getReleaseTime().toString()); |
| 957 | + } |
921 | 958 | } |
0 commit comments