mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 18:14:26 +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