/** * ============================================================================= * * 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.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Arrays; import javax.annotation.Resource; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.orcid.core.BaseTest; import org.orcid.jaxb.model.common_v2.Visibility; import org.orcid.jaxb.model.record_v2.Biography; public class BiographyManagerTest extends BaseTest { @Resource private BiographyManager biographyManager; @BeforeClass public static void initDBUnitData() throws Exception { initDBUnitData(Arrays.asList("/data/SecurityQuestionEntityData.xml", "/data/SourceClientDetailsEntityData.xml", "/data/ProfileEntityData.xml", "/data/BiographyEntityData.xml")); } @AfterClass public static void removeDBUnitData() throws Exception { removeDBUnitData(Arrays.asList("/data/BiographyEntityData.xml", "/data/ProfileEntityData.xml", "/data/SourceClientDetailsEntityData.xml", "/data/SecurityQuestionEntityData.xml")); } @Test public void testCreateBiography() { String orcid = "0000-0000-0000-0004"; Biography bio = new Biography(); bio.setContent("This is my biography"); bio.setVisibility(Visibility.LIMITED); biographyManager.createBiography(orcid, bio); Biography newBio = biographyManager.getBiography(orcid, 0); assertNotNull(newBio); assertEquals("This is my biography", newBio.getContent()); assertEquals(Visibility.LIMITED, newBio.getVisibility()); } @Test(expected = IllegalArgumentException.class) public void testFailOnCreatingOnARecordThatAlreadyHavebiography() { String orcid = "0000-0000-0000-0003"; Biography bio = new Biography(); bio.setContent("This is my biography"); bio.setVisibility(Visibility.LIMITED); biographyManager.createBiography(orcid, bio); fail(); } @Test public void testExists() { assertTrue(biographyManager.exists("0000-0000-0000-0001")); assertTrue(biographyManager.exists("0000-0000-0000-0002")); assertTrue(biographyManager.exists("0000-0000-0000-0003")); assertFalse(biographyManager.exists("0000-0000-0000-1000")); assertFalse(biographyManager.exists("0000-0000-0000-1001")); assertFalse(biographyManager.exists("0000-0000-0000-1002")); assertFalse(biographyManager.exists("0000-0000-0000-1003")); assertFalse(biographyManager.exists("0000-0000-0000-1004")); } @Test public void testGetBiography() { String orcid = "0000-0000-0000-0002"; Biography bio = biographyManager.getBiography(orcid, 0); assertNotNull(bio); assertEquals("Biography for 0000-0000-0000-0002", bio.getContent()); assertEquals(Visibility.LIMITED, bio.getVisibility()); } @Test public void testGetPublicBiography() { String orcid = "0000-0000-0000-0002"; Biography bio = biographyManager.getPublicBiography(orcid, 0); assertNull(bio); orcid = "0000-0000-0000-0003"; bio = biographyManager.getPublicBiography(orcid, 0); assertNotNull(bio); assertEquals("Biography for 0000-0000-0000-0003", bio.getContent()); assertEquals(Visibility.PUBLIC, bio.getVisibility()); } @Test public void testUpdateBiography() { String orcid = "0000-0000-0000-0001"; Biography bio = biographyManager.getBiography(orcid, 0); assertNotNull(bio); assertEquals("Biography for 0000-0000-0000-0001", bio.getContent()); assertEquals(Visibility.PRIVATE, bio.getVisibility()); long now = System.currentTimeMillis(); bio.setContent("Updated bio " + now); bio.setVisibility(Visibility.PUBLIC); biographyManager.updateBiography(orcid, bio); Biography newBio = biographyManager.getBiography(orcid, 0); assertNotNull(newBio); assertEquals("Updated bio " + now, newBio.getContent()); assertEquals(Visibility.PUBLIC, newBio.getVisibility()); } }