[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 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
public static void setUpClass() {
}
@@ -84,11 +90,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null;
String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("creativeworkseries")
&& metadataValue.getElement().equalsIgnoreCase("issn")) {
} else if (ISSN_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
}
}
@@ -132,11 +136,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null;
String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("creativeworkseries")
&& metadataValue.getElement().equalsIgnoreCase("issn")) {
} else if (ISSN_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
}
}
@@ -172,12 +174,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null;
String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("issn")) {
} else if (ISSN_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
}
}
@@ -222,12 +221,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String title = null;
String identifier = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("issn")) {
} else if (ISSN_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
}
}
@@ -268,16 +264,11 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String identifier = null;
String url = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("sherpaPublisher")) {
} else if (SHERPA_PUBLISHER_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("other")) {
} else if (OTHER_FIELD.matches(metadataValue)) {
url = metadataValue.getValue();
}
}
@@ -328,16 +319,11 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
String identifier = null;
String url = null;
for (MetadataValueDTO metadataValue : dataObject.getMetadata()) {
if (metadataValue.getSchema().equalsIgnoreCase("dc") &&
metadataValue.getElement().equalsIgnoreCase("title")) {
if (TITLE_FIELD.matches(metadataValue)) {
title = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("sherpaPublisher")) {
} else if (SHERPA_PUBLISHER_FIELD.matches(metadataValue)) {
identifier = metadataValue.getValue();
} else if (metadataValue.getSchema().equalsIgnoreCase("dc")
&& metadataValue.getElement().equalsIgnoreCase("identifier")
&& metadataValue.getQualifier().equalsIgnoreCase("other")) {
} else if (OTHER_FIELD.matches(metadataValue)) {
url = metadataValue.getValue();
}
}
@@ -378,12 +364,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
exemplarDataObject.setId(validIdentifier);
exemplarDataObject.setValue(validName);
exemplarDataObject.setDisplayValue(validName);
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "title", null, null,
validName));
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null,
validIdentifier));
exemplarDataObject.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null,
validUrl));
exemplarDataObject.addMetadata(TITLE_FIELD.toMetadata(validName));
exemplarDataObject.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
exemplarDataObject.addMetadata(OTHER_FIELD.toMetadata(validUrl));
// 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)
@@ -392,12 +375,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
exemplarDataObject2.setId(validIdentifier);
exemplarDataObject2.setValue(validName);
exemplarDataObject2.setDisplayValue(validName);
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null,
validUrl));
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "title", null, null,
validName));
exemplarDataObject2.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null,
validIdentifier));
exemplarDataObject2.addMetadata(OTHER_FIELD.toMetadata(validUrl));
exemplarDataObject2.addMetadata(TITLE_FIELD.toMetadata(validName));
exemplarDataObject2.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
// Nonequal object should NOT evaluate as equal to our data
ExternalDataObject nonEqualObject = new ExternalDataObject();
@@ -405,12 +385,9 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
nonEqualObject.setId(validIdentifier);
nonEqualObject.setValue(validName);
nonEqualObject.setDisplayValue(validName);
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "title", null, null,
"Private Library of Science"));
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "identifier", "sherpaPublisher", null,
validIdentifier));
nonEqualObject.addMetadata(new MetadataValueDTO("dc", "identifier", "other", null,
validUrl));
nonEqualObject.addMetadata(TITLE_FIELD.toMetadata("Private Library of Science"));
nonEqualObject.addMetadata(SHERPA_PUBLISHER_FIELD.toMetadata(validIdentifier));
nonEqualObject.addMetadata(OTHER_FIELD.toMetadata(validUrl));
// Retrieve the dataobject(s) from the data provider
@@ -435,4 +412,28 @@ public class SHERPADataProviderTest extends AbstractDSpaceTest {
// Assert NON-equality to the 3rd object
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);
}
}
}