mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
78180: Create RightTiltedRelationshipMetadataServiceIT and copy relevant methods for override
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
/**
|
||||
* The contents of this file are subject to the license and copyright
|
||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||
* tree and available online at
|
||||
*
|
||||
* http://www.dspace.org/license/
|
||||
*/
|
||||
package org.dspace.content;
|
||||
|
||||
import org.dspace.builder.EntityTypeBuilder;
|
||||
import org.dspace.builder.ItemBuilder;
|
||||
import org.dspace.builder.RelationshipBuilder;
|
||||
import org.dspace.builder.RelationshipTypeBuilder;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
/**
|
||||
* This class carries out the same test cases as {@link RelationshipMetadataServiceIT} with a few modifications.
|
||||
*/
|
||||
public class RightTiltedRelationshipMetadataServiceIT extends RelationshipMetadataServiceIT {
|
||||
|
||||
/**
|
||||
* Similar to the parent implementation, but set the tilted property of isIssueOfVolume.
|
||||
*/
|
||||
@Override
|
||||
protected void initJournalVolumeIssue() throws Exception {
|
||||
context.turnOffAuthorisationSystem();
|
||||
EntityType journalIssueEntityType = EntityTypeBuilder.createEntityTypeBuilder(context, "JournalIssue").build();
|
||||
EntityType publicationVolumeEntityType =
|
||||
EntityTypeBuilder.createEntityTypeBuilder(context, "JournalVolume").build();
|
||||
leftItem = ItemBuilder.createItem(context, col).withRelationshipType("JournalIssue")
|
||||
.withPublicationIssueNumber("2").build();
|
||||
rightItem = ItemBuilder.createItem(context, col).withRelationshipType("JournalVolume")
|
||||
.withPublicationVolumeNumber("30").build();
|
||||
RelationshipType isIssueOfVolume =
|
||||
RelationshipTypeBuilder
|
||||
.createRelationshipTypeBuilder(context, journalIssueEntityType, publicationVolumeEntityType,
|
||||
"isJournalVolumeOfIssue", "isIssueOfJournalVolume",
|
||||
null, null, null, null).build();
|
||||
|
||||
relationship =
|
||||
RelationshipBuilder.createRelationshipBuilder(context, leftItem, rightItem, isIssueOfVolume).build();
|
||||
context.restoreAuthSystemState();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testGetJournalRelationshipMetadata() throws Exception {
|
||||
initJournalVolumeIssue();
|
||||
|
||||
//leftItem is the journal issue item
|
||||
//verify the publicationvolume.volumeNumber virtual metadata
|
||||
List<MetadataValue> volumeList =
|
||||
itemService.getMetadata(leftItem, "publicationvolume", "volumeNumber", null, Item.ANY);
|
||||
assertThat(volumeList.size(), equalTo(1));
|
||||
assertThat(volumeList.get(0).getValue(), equalTo("30"));
|
||||
|
||||
//rightItem is the journal volume item
|
||||
//verify the publicationissue.issueNumber virtual metadata
|
||||
List<MetadataValue> issueList =
|
||||
itemService.getMetadata(rightItem, "publicationissue", "issueNumber", null, Item.ANY);
|
||||
assertThat(issueList.size(), equalTo(1));
|
||||
assertThat(issueList.get(0).getValue(), equalTo("2"));
|
||||
|
||||
//request the virtual metadata of the journal issue
|
||||
List<RelationshipMetadataValue> issueRelList =
|
||||
relationshipMetadataService.getRelationshipMetadata(leftItem, true);
|
||||
assertThat(issueRelList.size(), equalTo(2));
|
||||
assertThat(issueRelList.get(0).getValue(), equalTo("30"));
|
||||
assertThat(issueRelList.get(0).getMetadataField().getMetadataSchema().getName(), equalTo("publicationvolume"));
|
||||
assertThat(issueRelList.get(0).getMetadataField().getElement(), equalTo("volumeNumber"));
|
||||
assertThat(issueRelList.get(0).getMetadataField().getQualifier(), equalTo(null));
|
||||
assertThat(issueRelList.get(0).getAuthority(), equalTo("virtual::" + relationship.getID()));
|
||||
|
||||
assertThat(issueRelList.get(1).getValue(), equalTo(String.valueOf(rightItem.getID())));
|
||||
assertThat(issueRelList.get(1).getMetadataField().getMetadataSchema().getName(),
|
||||
equalTo(MetadataSchemaEnum.RELATION.getName()));
|
||||
assertThat(issueRelList.get(1).getMetadataField().getElement(), equalTo("isJournalVolumeOfIssue"));
|
||||
assertThat(issueRelList.get(1).getAuthority(), equalTo("virtual::" + relationship.getID()));
|
||||
|
||||
//request the virtual metadata of the journal volume
|
||||
List<RelationshipMetadataValue> volumeRelList =
|
||||
relationshipMetadataService.getRelationshipMetadata(rightItem, true);
|
||||
assertThat(volumeRelList.size(), equalTo(2));
|
||||
assertThat(volumeRelList.get(0).getValue(), equalTo("2"));
|
||||
assertThat(volumeRelList.get(0).getMetadataField().getMetadataSchema().getName(), equalTo("publicationissue"));
|
||||
assertThat(volumeRelList.get(0).getMetadataField().getElement(), equalTo("issueNumber"));
|
||||
assertThat(volumeRelList.get(0).getMetadataField().getQualifier(), equalTo(null));
|
||||
assertThat(volumeRelList.get(0).getAuthority(), equalTo("virtual::" + relationship.getID()));
|
||||
|
||||
assertThat(volumeRelList.get(1).getValue(), equalTo(String.valueOf(leftItem.getID())));
|
||||
assertThat(volumeRelList.get(1).getMetadataField().getMetadataSchema().getName(),
|
||||
equalTo(MetadataSchemaEnum.RELATION.getName()));
|
||||
assertThat(volumeRelList.get(1).getMetadataField().getElement(), equalTo("isIssueOfJournalVolume"));
|
||||
assertThat(volumeRelList.get(1).getAuthority(), equalTo("virtual::" + relationship.getID()));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user