use of org.dspace.content.MetadataValue in project DSpace by DSpace.
the class ConcatenateTest method testGetValues.
@Test
public void testGetValues() {
// Setup objects utilized in unit test
List<String> list = new ArrayList<>();
List<String> valueList = new ArrayList<>();
List<MetadataValue> metadataValueList = new ArrayList<>();
MetadataValue metadataValue = mock(MetadataValue.class);
Item item = mock(Item.class);
metadataValueList.add(metadataValue);
String s = "dc.title";
list.add(s);
List<String> splittedString = Splitter.on(".").splitToList(s);
concatenate.setFields(list);
valueList.add("TestValue");
// Mock the state of objects utilized in getValues() to meet the success criteria of an invocation
when(itemService.getMetadata(item, splittedString.size() > 0 ? splittedString.get(0) : null, splittedString.size() > 1 ? splittedString.get(1) : null, splittedString.size() > 2 ? splittedString.get(2) : null, Item.ANY, false)).thenReturn(metadataValueList);
when(metadataValue.getValue()).thenReturn("TestValue");
// The reported values should match our defined valueList
assertEquals("TestGetValues 0", valueList, concatenate.getValues(context, item));
}
use of org.dspace.content.MetadataValue in project DSpace by DSpace.
the class DOIIdentifierProviderTest method testRemove_DOI_from_item_metadata.
@Test
public void testRemove_DOI_from_item_metadata() throws SQLException, AuthorizeException, IOException, IdentifierException, WorkflowException, IllegalAccessException {
Item item = newItem();
String doi = DOI.SCHEME + PREFIX + "/" + NAMESPACE_SEPARATOR + Long.toHexString(new Date().getTime());
context.turnOffAuthorisationSystem();
itemService.addMetadata(context, item, DOIIdentifierProvider.MD_SCHEMA, DOIIdentifierProvider.DOI_ELEMENT, DOIIdentifierProvider.DOI_QUALIFIER, null, doiService.DOIToExternalForm(doi));
itemService.update(context, item);
provider.removeDOIFromObject(context, item, doi);
context.restoreAuthSystemState();
List<MetadataValue> metadata = itemService.getMetadata(item, DOIIdentifierProvider.MD_SCHEMA, DOIIdentifierProvider.DOI_ELEMENT, DOIIdentifierProvider.DOI_QUALIFIER, null);
boolean foundDOI = false;
for (MetadataValue id : metadata) {
if (id.getValue().equals(doiService.DOIToExternalForm(doi))) {
foundDOI = true;
}
}
assertFalse("Cannot remove DOI from item metadata.", foundDOI);
}
use of org.dspace.content.MetadataValue in project DSpace by DSpace.
the class DOIIdentifierProviderTest method testStore_DOI_as_item_metadata.
@Test
public void testStore_DOI_as_item_metadata() throws SQLException, AuthorizeException, IOException, IdentifierException, IllegalAccessException, WorkflowException {
Item item = newItem();
String doi = DOI.SCHEME + PREFIX + "/" + NAMESPACE_SEPARATOR + Long.toHexString(new Date().getTime());
context.turnOffAuthorisationSystem();
provider.saveDOIToObject(context, item, doi);
context.restoreAuthSystemState();
List<MetadataValue> metadata = itemService.getMetadata(item, DOIIdentifierProvider.MD_SCHEMA, DOIIdentifierProvider.DOI_ELEMENT, DOIIdentifierProvider.DOI_QUALIFIER, null);
boolean result = false;
for (MetadataValue id : metadata) {
if (id.getValue().equals(doiService.DOIToExternalForm(doi))) {
result = true;
}
}
assertTrue("Cannot store DOI as item metadata value.", result);
}
use of org.dspace.content.MetadataValue in project DSpace by DSpace.
the class DOIIdentifierProviderTest method testDelete_all_DOIs.
@Test
public void testDelete_all_DOIs() throws SQLException, AuthorizeException, IOException, IdentifierException, IllegalAccessException, WorkflowException {
Item item = newItem();
String doi1 = this.createDOI(item, DOIIdentifierProvider.IS_REGISTERED, true);
String doi2 = this.createDOI(item, DOIIdentifierProvider.IS_REGISTERED, true);
// remove one of it
context.turnOffAuthorisationSystem();
provider.delete(context, item);
context.restoreAuthSystemState();
// assure that the right one was removed
List<MetadataValue> metadata = itemService.getMetadata(item, DOIIdentifierProvider.MD_SCHEMA, DOIIdentifierProvider.DOI_ELEMENT, DOIIdentifierProvider.DOI_QUALIFIER, null);
boolean foundDOI1 = false;
boolean foundDOI2 = false;
for (MetadataValue id : metadata) {
if (id.getValue().equals(doiService.DOIToExternalForm(doi1))) {
foundDOI1 = true;
}
if (id.getValue().equals(doiService.DOIToExternalForm(doi2))) {
foundDOI2 = true;
}
}
assertFalse("Cannot remove DOI from item metadata.", foundDOI1);
assertFalse("Did not removed all DOIs from item metadata.", foundDOI2);
DOI doiRow1 = doiService.findByDoi(context, doi1.substring(DOI.SCHEME.length()));
assumeNotNull(doiRow1);
assertTrue("Status of deleted DOI was not set correctly.", DOIIdentifierProvider.TO_BE_DELETED.equals(doiRow1.getStatus()));
DOI doiRow2 = doiService.findByDoi(context, doi1.substring(DOI.SCHEME.length()));
assumeNotNull(doiRow2);
assertTrue("Did not set the status of all deleted DOIs as expected.", DOIIdentifierProvider.TO_BE_DELETED.equals(doiRow2.getStatus()));
}
use of org.dspace.content.MetadataValue in project DSpace by DSpace.
the class AtomStatementDisseminator method stringMetadata.
private String stringMetadata(Item item, String field) {
if (field == null) {
return null;
}
List<MetadataValue> dcvs = itemService.getMetadataByMetadataString(item, field);
if (dcvs == null || dcvs.isEmpty()) {
return null;
}
StringBuilder md = new StringBuilder();
for (MetadataValue dcv : dcvs) {
if (md.length() > 0) {
md.append(", ");
}
md.append(dcv.getValue());
}
return md.toString();
}
Aggregations