[DURACOM-356] Updated tests to use metadata constants

(cherry picked from commit 94c5f5d6f7)
This commit is contained in:
Adamo
2025-05-05 12:49:16 +02:00
committed by github-actions[bot]
parent 20e3f2e030
commit 27d3d75ca5

View File

@@ -38,6 +38,12 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
ExternalDataProvider sherpaPublisherProvider; ExternalDataProvider sherpaPublisherProvider;
ExternalDataProvider sherpaJournalIssnProvider; ExternalDataProvider sherpaJournalIssnProvider;
private static final MetadataFieldRef TITLE_FIELD = new MetadataFieldRef("dc", "title", null);
private static final MetadataFieldRef ISSN_FIELD = new MetadataFieldRef("creativeworkseries", "issn", null);
private static final MetadataFieldRef SHERPA_PUBLISHER_FIELD =
new MetadataFieldRef("dc", "identifier", "sherpaPublisher");
private static final MetadataFieldRef OTHER_FIELD = new MetadataFieldRef("dc", "identifier", "other");
@BeforeClass @BeforeClass
public static void setUpClass() { public static void setUpClass() {
} }
@@ -84,11 +90,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null; String title = null;
String identifier = null; String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("creativeworkseries") } else if (ISSN_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("issn")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} }
} }
@@ -132,11 +136,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null; String title = null;
String identifier = null; String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("creativeworkseries") } else if (ISSN_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("issn")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} }
} }
@@ -172,12 +174,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null; String title = null;
String identifier = null; String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (ISSN_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("issn")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} }
} }
@@ -222,12 +221,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null; String title = null;
String identifier = null; String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (ISSN_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("issn")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} }
} }
@@ -268,16 +264,11 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String identifier = null; String identifier = null;
String url = null; String url = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (SHERPA_PUBLISHER_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("sherpaPublisher")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (OTHER_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("other")) {
url = metadataValue.getValue(); url = metadataValue.getValue();
} }
} }
@@ -328,16 +319,11 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String identifier = null; String identifier = null;
String url = null; String url = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) { for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") && if (TITLE_FIELD.matches(metadataValue)) {
metadataValue.getElement().equalsIgnoreCase("title")) {
title = metadataValue.getValue(); title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (SHERPA_PUBLISHER_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("sherpaPublisher")) {
identifier = metadataValue.getValue(); identifier = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc") } else if (OTHER_FIELD.matches(metadataValue)) {
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("other")) {
url = metadataValue.getValue(); url = metadataValue.getValue();
} }
} }
@@ -378,12 +364,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
exemplarDataObject.setId(validIdentifier); exemplarDataObject.setId(validIdentifier);
exemplarDataObject.setValue(validName); exemplarDataObject.setValue(validName);
exemplarDataObject.setDisplayValue(validName); exemplarDataObject.setDisplayValue(validName);
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "title", null, null, exemplarDataObject.addMetadata(TITLE_FIELD.toMetadata(validName));
validName)); exemplarDataObject.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null, exemplarDataObject.addMetadata(OTHER_FIELD.toMetadata(validUrl));
validIdentifier));
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null,
validUrl));
// Exemplar object 2 has a different order of metadata values // Exemplar object 2 has a different order of metadata values
// (we still expect it to be 'equal' when comparing since there is no concept of place for DTOs) // (we still expect it to be 'equal' when comparing since there is no concept of place for DTOs)
@@ -392,12 +375,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
exemplarDataObject2.setId(validIdentifier); exemplarDataObject2.setId(validIdentifier);
exemplarDataObject2.setValue(validName); exemplarDataObject2.setValue(validName);
exemplarDataObject2.setDisplayValue(validName); exemplarDataObject2.setDisplayValue(validName);
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null, exemplarDataObject2.addMetadata(OTHER_FIELD.toMetadata(validUrl));
validUrl)); exemplarDataObject2.addMetadata(TITLE_FIELD.toMetadata(validName));
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "title", null, null, exemplarDataObject2.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
validName));
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null,
validIdentifier));
// Nonequal object should NOT evaluate as equal to our data // Nonequal object should NOT evaluate as equal to our data
ExternalDataObject nonEqualObject = new ExternalDataObject(); ExternalDataObject nonEqualObject = new ExternalDataObject();
@@ -405,12 +385,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
nonEqualObject.setId(validIdentifier); nonEqualObject.setId(validIdentifier);
nonEqualObject.setValue(validName); nonEqualObject.setValue(validName);
nonEqualObject.setDisplayValue(validName); nonEqualObject.setDisplayValue(validName);
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "title", null, null, nonEqualObject.addMetadata(TITLE_FIELD.toMetadata("Private Library of Science"));
"Private Library of Science")); nonEqualObject.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null, nonEqualObject.addMetadata(OTHER_FIELD.toMetadata(validUrl));
validIdentifier));
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null,
validUrl));
// Retrieve the dataobject(s) from the data provider // Retrieve the dataobject(s) from the data provider
@@ -435,4 +412,28 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
// Assert NON-equality to the 3rd object // Assert NON-equality to the 3rd object
assertNotEquals(nonEqualObject, dataObject); assertNotEquals(nonEqualObject, dataObject);
} }
private static class MetadataFieldRef {
public final String schema;
public final String element;
public final String qualifier;
public MetadataFieldRef(String schema, String element, String qualifier) {
this.schema = schema;
this.element = element;
this.qualifier = qualifier;
}
public boolean matches(MetadataValueDTO value) {
return schema.equalsIgnoreCase(value.getSchema()) &&
element.equalsIgnoreCase(value.getElement()) &&
(qualifier == null ? value.getQualifier() == null
: qualifier.equalsIgnoreCase(value.getQualifier()));
}
public MetadataValueDTO toMetadata(String value) {
return new MetadataValueDTO(schema, element, qualifier, null, value);
}
}
} }