/** * ============================================================================= * * ORCID (R) Open Source * http://orcid.org * * Copyright (c) 2012-2014 ORCID, Inc. * Licensed under an MIT-Style License (MIT) * http://orcid.org/open-source-license * * This copyright and license information (including a link to the full license) * shall be included in its entirety in all copies or substantial portion of * the software. * * ============================================================================= */ package org.orcid.core.manager; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.List; import javax.annotation.Resource; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.orcid.core.BaseTest; import org.orcid.persistence.jpa.entities.CustomEmailEntity; import org.orcid.persistence.jpa.entities.EmailType; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; /** * * @author Angel Montenegro * */ public class CustomEmailManagerTest extends BaseTest { @Resource CustomEmailManager customEmailManager; @BeforeClass public static void initDBUnitData() throws Exception { initDBUnitData(Arrays.asList("/data/SecurityQuestionEntityData.xml", "/data/SubjectEntityData.xml", "/data/SourceClientDetailsEntityData.xml", "/data/ProfileEntityData.xml", "/data/ClientDetailsEntityData.xml")); } @Before public void before() { assertNotNull(customEmailManager); } @AfterClass public static void removeDBUnitData() throws Exception { removeDBUnitData(Arrays.asList("/data/ClientDetailsEntityData.xml", "/data/ProfileEntityData.xml", "/data/SubjectEntityData.xml", "/data/SecurityQuestionEntityData.xml")); } @Test public void testGetCustomEmails() { List<CustomEmailEntity> customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(1, customEmails.size()); CustomEmailEntity customEmail = customEmails.get(0); assertNotNull(customEmail); assertEquals("This is the content", customEmail.getContent()); assertEquals(EmailType.CLAIM, customEmail.getEmailType()); assertEquals("angel.montenegro.jimenez@gmail.com", customEmail.getSender()); assertEquals("This is the subject", customEmail.getSubject()); assertTrue(customEmail.isHtml()); } @Test @Transactional @Rollback public void testAddAmendCustomEmail() { assertTrue(customEmailManager.createCustomEmail("4444-4444-4444-4441", EmailType.AMEND, "angel.montenegro.jimenez@gmail.com", "Amend subject", "Amend content", false)); List<CustomEmailEntity> customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(2, customEmails.size()); boolean amend = false, claim = false; for (CustomEmailEntity customEmail : customEmails) { if (EmailType.AMEND.equals(customEmail.getEmailType())) { assertEquals("Amend subject", customEmail.getSubject()); assertEquals("angel.montenegro.jimenez@gmail.com", customEmail.getSender()); assertEquals("Amend content", customEmail.getContent()); assertFalse(customEmail.isHtml()); amend = true; } else { assertEquals("This is the content", customEmail.getContent()); assertEquals(EmailType.CLAIM, customEmail.getEmailType()); assertEquals("angel.montenegro.jimenez@gmail.com", customEmail.getSender()); assertEquals("This is the subject", customEmail.getSubject()); claim = true; } } assertTrue(amend); assertTrue(claim); } @Rollback public void testUpdateCustomEmail() { // Check old values List<CustomEmailEntity> customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(1, customEmails.size()); CustomEmailEntity customEmail = customEmails.get(0); assertNotNull(customEmail); assertEquals("This is the content", customEmail.getContent()); assertEquals(EmailType.CLAIM, customEmail.getEmailType()); assertEquals("angel.montenegro.jimenez@gmail.com", customEmail.getSender()); assertEquals("This is the subject", customEmail.getSubject()); assertTrue(customEmail.isHtml()); // Update customEmailManager.updateCustomEmail("4444-4444-4444-4441", EmailType.CLAIM, "updated@sender.com", "updated subject", "updated content", false); // Check new values customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(1, customEmails.size()); customEmail = customEmails.get(0); assertNotNull(customEmail); assertEquals("updated content", customEmail.getContent()); assertEquals(EmailType.CLAIM, customEmail.getEmailType()); assertEquals("updated@sender.com", customEmail.getSender()); assertEquals("updated subject", customEmail.getSubject()); assertFalse(customEmail.isHtml()); } @Test @Transactional @Rollback public void testDeleteCustomEmail() { // Check old values List<CustomEmailEntity> customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(1, customEmails.size()); // Delete customEmailManager.deleteCustomEmail("4444-4444-4444-4441", EmailType.CLAIM); // Check it is now empty customEmails = customEmailManager.getCustomEmails("4444-4444-4444-4441"); assertNotNull(customEmails); assertEquals(0, customEmails.size()); } }