diff --git a/dspace-api/src/test/java/org/dspace/app/requestitem/RequestItemMetadataStrategyTest.java b/dspace-api/src/test/java/org/dspace/app/requestitem/RequestItemMetadataStrategyTest.java index 84c0d3b6ab66..14bd96ba124b 100644 --- a/dspace-api/src/test/java/org/dspace/app/requestitem/RequestItemMetadataStrategyTest.java +++ b/dspace-api/src/test/java/org/dspace/app/requestitem/RequestItemMetadataStrategyTest.java @@ -33,7 +33,7 @@ import org.junit.Test; /** - * Test suit for RequestItemMetadataStrategy + * Test suite for RequestItemMetadataStrategy * * @author Mykhaylo Boychuk (mykhaylo.boychuk at 4science.com) */ @@ -47,7 +47,7 @@ public class RequestItemMetadataStrategyTest extends AbstractUnitTest { private Item item; private Item orphanItem; - private Item notVadilEmailItem; + private Item notValidEmailItem; @BeforeClass public static void setUpClass() throws SQLException { @@ -72,6 +72,9 @@ public void setUp() { this.itemService = ContentServiceFactory.getInstance().getItemService(); this.configurationService = DSpaceServicesFactory.getInstance().getConfigurationService(); + this.configurationService.setProperty("mail.helpdesk", "helpdesk@test.com"); + this.configurationService.setProperty("mail.helpdesk.name", "Helpdesk Name"); + context = new Context(); context.setCurrentUser(johnDoe); context.turnOffAuthorisationSystem(); @@ -88,7 +91,7 @@ public void setUp() { .build(); orphanItem.setSubmitter(null); - notVadilEmailItem = ItemBuilder.createItem(context, collection) + notValidEmailItem = ItemBuilder.createItem(context, collection) .withTitle("Not Valid email Item") .withPersonEmail("test@test") .build(); @@ -100,52 +103,76 @@ public void setUp() { * @throws Exception passed through. */ @Test - public void testGetRequestItemAuthor() throws Exception { + public void testMetadataStrategy() throws Exception { RequestItemMetadataStrategy metadataStrategy = new RequestItemMetadataStrategy(); metadataStrategy.setItemService(this.itemService); metadataStrategy.setConfigurationService(this.configurationService); metadataStrategy.setEmailMetadata("person.email"); metadataStrategy.setFullNameMetadata("dc.title"); - List author = metadataStrategy.getRequestItemAuthor(context, item); - assertEquals("misha.boychuk@test.com", author.get(0).getEmail()); - assertEquals("Misha Boychuk", author.get(0).getFullName()); - this.configurationService.setProperty("mail.helpdesk", "helpdesk@test.com"); - this.configurationService.setProperty("mail.helpdesk.name", "Helpdesk Name"); + List authors = metadataStrategy.getRequestItemAuthor(context, item); + assertEquals("misha.boychuk@test.com", authors.get(0).getEmail()); + assertEquals("Misha Boychuk", authors.get(0).getFullName()); + + List authorsOforphanItem = metadataStrategy.getRequestItemAuthor(context, orphanItem); + assertEquals("orphanItem@test.com", authorsOforphanItem.get(0).getEmail()); + assertEquals("Orphan Item", authorsOforphanItem.get(0).getFullName()); + + List authorsOfnotValidEmailItem = + metadataStrategy.getRequestItemAuthor(context, notValidEmailItem); + assertEquals(AUTHOR_ADDRESS, authorsOfnotValidEmailItem.get(0).getEmail()); + assertEquals("John Doe", authorsOfnotValidEmailItem.get(0).getFullName()); + } + + @Test + public void testMissingMetadataStrategy() throws Exception { + RequestItemMetadataStrategy metadataStrategy = new RequestItemMetadataStrategy(); + metadataStrategy.setItemService(this.itemService); + metadataStrategy.setConfigurationService(this.configurationService); + metadataStrategy.setEmailMetadata("person.notExist"); + metadataStrategy.setFullNameMetadata("dc.title"); + + List authors = metadataStrategy.getRequestItemAuthor(context, item); + assertEquals(AUTHOR_ADDRESS, authors.get(0).getEmail()); + assertEquals("John Doe", authors.get(0).getFullName()); - // item without 'person.notExist' metadata & submitter is null - RequestItemMetadataStrategy metadataStrategy2 = new RequestItemMetadataStrategy(); - metadataStrategy2.setItemService(this.itemService); - metadataStrategy2.setConfigurationService(this.configurationService); - metadataStrategy2.setEmailMetadata("person.notExist"); - metadataStrategy2.setFullNameMetadata("dc.title"); - List author2 = metadataStrategy2.getRequestItemAuthor(context, orphanItem); - assertEquals("helpdesk@test.com", author2.get(0).getEmail()); - assertEquals("Helpdesk Name", author2.get(0).getFullName()); - - // item without 'person.notExist' metadata & submitter is null & helpdesk is null + List authorsOforphanItem = metadataStrategy.getRequestItemAuthor(context, orphanItem); + assertEquals("helpdesk@test.com", authorsOforphanItem.get(0).getEmail()); + assertEquals("Helpdesk Name", authorsOforphanItem.get(0).getFullName()); + + List authorsOfnotValidEmailItem = + metadataStrategy.getRequestItemAuthor(context, notValidEmailItem); + assertEquals(AUTHOR_ADDRESS, authorsOfnotValidEmailItem.get(0).getEmail()); + assertEquals("John Doe", authorsOfnotValidEmailItem.get(0).getFullName()); + } + + @Test + public void testNotConfiguredMetadataStrategy() throws Exception { + RequestItemMetadataStrategy metadataStrategy = new RequestItemMetadataStrategy(); + metadataStrategy.setItemService(this.itemService); + metadataStrategy.setConfigurationService(this.configurationService); + + List authors = metadataStrategy.getRequestItemAuthor(context, item); + assertEquals(AUTHOR_ADDRESS, authors.get(0).getEmail()); + assertEquals("John Doe", authors.get(0).getFullName()); + + List authorsOforphanItem = metadataStrategy.getRequestItemAuthor(context, orphanItem); + assertEquals("helpdesk@test.com", authorsOforphanItem.get(0).getEmail()); + assertEquals("Helpdesk Name", authorsOforphanItem.get(0).getFullName()); + + // set helpdesk to null this.configurationService.setProperty("mail.helpdesk", null); this.configurationService.setProperty("mail.admin", "adminTest@test.com"); this.configurationService.setProperty("mail.admin.name", "Admin Name"); - RequestItemMetadataStrategy metadataStrategy3 = new RequestItemMetadataStrategy(); - metadataStrategy3.setItemService(this.itemService); - metadataStrategy3.setConfigurationService(this.configurationService); - metadataStrategy3.setEmailMetadata("person.notExist"); - metadataStrategy3.setFullNameMetadata("dc.title"); - List author3 = metadataStrategy3.getRequestItemAuthor(context, orphanItem); - assertEquals("adminTest@test.com", author3.get(0).getEmail()); - assertEquals("Admin Name", author3.get(0).getFullName()); - - // not valid email test - RequestItemMetadataStrategy metadataStrategy4 = new RequestItemMetadataStrategy(); - metadataStrategy4.setItemService(this.itemService); - metadataStrategy4.setConfigurationService(this.configurationService); - metadataStrategy4.setEmailMetadata("person.email"); - metadataStrategy4.setFullNameMetadata("dc.title"); - List author4 = metadataStrategy4.getRequestItemAuthor(context, notVadilEmailItem); - assertEquals(AUTHOR_ADDRESS, author4.get(0).getEmail()); - assertEquals(johnDoe.getFullName(), author4.get(0).getFullName()); + List authorsOforphanItem2 = metadataStrategy.getRequestItemAuthor(context, orphanItem); + assertEquals("adminTest@test.com", authorsOforphanItem2.get(0).getEmail()); + assertEquals("Admin Name", authorsOforphanItem2.get(0).getFullName()); + + List authorsOfnotValidEmailItem = + metadataStrategy.getRequestItemAuthor(context, notValidEmailItem); + assertEquals(AUTHOR_ADDRESS, authorsOfnotValidEmailItem.get(0).getEmail()); + assertEquals("John Doe", authorsOfnotValidEmailItem.get(0).getFullName()); } }