/** * ============================================================================= * * 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.version; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.InputStreamReader; import java.io.Reader; import javax.annotation.Resource; import org.junit.Test; import org.orcid.core.BaseTest; import org.orcid.jaxb.model.message.OrcidMessage; /** * * @author Will Simpson * */ public class OrcidMessageVersionConverterChainTest extends BaseTest { @Resource private OrcidMessageVersionConverterChain orcidMessageVersionConverterChain; @Test public void testUpdgrade() { Reader reader = new InputStreamReader(getClass().getResourceAsStream("orcid-public-full-message-v1.0.16.xml")); OrcidMessage oldMessage = OrcidMessage.unmarshall(reader); OrcidMessage newMessage = orcidMessageVersionConverterChain.upgradeMessage(oldMessage, "1.2_rc7"); assertNotNull(newMessage); assertEquals("1.2_rc7", newMessage.getMessageVersion()); oldMessage = newMessage; newMessage = orcidMessageVersionConverterChain.upgradeMessage(oldMessage, "1.2"); assertNotNull(newMessage); assertEquals("1.2", newMessage.getMessageVersion()); assertEquals("4444-4444-4444-4446", newMessage.getOrcidProfile().getOrcid().getValue()); assertEquals("http://orcid.org/4444-4444-4444-4446", newMessage.getOrcidProfile().getOrcidId()); } @Test public void testDowngrade() { Reader reader = new InputStreamReader(getClass().getResourceAsStream("orcid-public-full-message-v1.0.16.xml")); OrcidMessage oldMessage = OrcidMessage.unmarshall(reader); OrcidMessage newMessage = orcidMessageVersionConverterChain.upgradeMessage(oldMessage, "1.2"); assertNotNull(newMessage); assertEquals("1.2", newMessage.getMessageVersion()); oldMessage = newMessage; newMessage = orcidMessageVersionConverterChain.downgradeMessage(oldMessage, "1.2_rc7"); assertNotNull(newMessage); assertEquals("1.2_rc7", newMessage.getMessageVersion()); oldMessage = newMessage; newMessage = orcidMessageVersionConverterChain.downgradeMessage(oldMessage, "1.2_rc6"); assertNotNull(newMessage); assertEquals("1.2_rc6", newMessage.getMessageVersion()); oldMessage = newMessage; newMessage = orcidMessageVersionConverterChain.downgradeMessage(oldMessage, "1.1"); assertNotNull(newMessage); assertEquals("1.1", newMessage.getMessageVersion()); assertEquals("4444-4444-4444-4446", newMessage.getOrcidProfile().getOrcid().getValue()); assertEquals("http://orcid.org/4444-4444-4444-4446", newMessage.getOrcidProfile().getOrcidId()); } }