Search in sources :

Example 16 with OrcidWorks

use of org.orcid.jaxb.model.message.OrcidWorks in project ORCID-Source by ORCID.

the class Api12Helper method addWork.

protected static void addWork(String userOrcid, String token, String title, T2OAuthAPIService<ClientResponse> oauthT2Client) {
    String id = String.valueOf(System.currentTimeMillis());
    OrcidMessage orcidMessage = new OrcidMessage();
    orcidMessage.setMessageVersion(OrcidMessage.DEFAULT_VERSION);
    OrcidProfile orcidProfile = new OrcidProfile();
    orcidMessage.setOrcidProfile(orcidProfile);
    OrcidActivities orcidActivities = new OrcidActivities();
    orcidProfile.setOrcidActivities(orcidActivities);
    OrcidWorks orcidWorks = new OrcidWorks();
    orcidActivities.setOrcidWorks(orcidWorks);
    OrcidWork orcidWork = new OrcidWork();
    orcidWorks.getOrcidWork().add(orcidWork);
    orcidWork.setWorkType(WorkType.JOURNAL_ARTICLE);
    orcidWork.setVisibility(Visibility.LIMITED);
    WorkTitle workTitle = new WorkTitle();
    orcidWork.setWorkTitle(workTitle);
    WorkExternalIdentifier wei = new WorkExternalIdentifier();
    wei.setWorkExternalIdentifierId(new WorkExternalIdentifierId(id));
    wei.setWorkExternalIdentifierType(WorkExternalIdentifierType.DOI);
    WorkExternalIdentifiers extIds = new WorkExternalIdentifiers();
    extIds.getWorkExternalIdentifier().add(wei);
    orcidWork.setWorkExternalIdentifiers(extIds);
    workTitle.setTitle(new Title(title));
    ClientResponse clientResponse = oauthT2Client.addWorksXml(userOrcid, orcidMessage, token);
    assertEquals(201, clientResponse.getStatus());
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) ClientResponse(com.sun.jersey.api.client.ClientResponse) WorkExternalIdentifiers(org.orcid.jaxb.model.message.WorkExternalIdentifiers) WorkTitle(org.orcid.jaxb.model.message.WorkTitle) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) OrcidWork(org.orcid.jaxb.model.message.OrcidWork) WorkExternalIdentifierId(org.orcid.jaxb.model.message.WorkExternalIdentifierId) Title(org.orcid.jaxb.model.message.Title) WorkTitle(org.orcid.jaxb.model.message.WorkTitle) FundingTitle(org.orcid.jaxb.model.message.FundingTitle) WorkExternalIdentifier(org.orcid.jaxb.model.message.WorkExternalIdentifier) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks)

Example 17 with OrcidWorks

use of org.orcid.jaxb.model.message.OrcidWorks in project ORCID-Source by ORCID.

the class T2OrcidApiServiceDelegatorTest method testUpdateExistingNonPrivateWork.

@Test
public void testUpdateExistingNonPrivateWork() {
    SecurityContextTestUtils.setUpSecurityContext("4444-4444-4444-4446", ScopePathType.ORCID_WORKS_UPDATE);
    OrcidMessage orcidMessage = new OrcidMessage();
    orcidMessage.setMessageVersion("1.2_rc6");
    OrcidProfile orcidProfile = new OrcidProfile();
    orcidMessage.setOrcidProfile(orcidProfile);
    orcidProfile.setOrcidIdentifier(new OrcidIdentifier("4444-4444-4444-4446"));
    OrcidActivities orcidActivities = new OrcidActivities();
    orcidProfile.setOrcidActivities(orcidActivities);
    OrcidWorks orcidWorks = new OrcidWorks();
    orcidActivities.setOrcidWorks(orcidWorks);
    OrcidWork orcidWork = new OrcidWork();
    orcidWorks.getOrcidWork().add(orcidWork);
    orcidWork.setPutCode("5");
    WorkTitle workTitle = new WorkTitle();
    workTitle.setTitle(new Title("Updated by works update"));
    orcidWork.setWorkTitle(workTitle);
    orcidWork.setWorkType(WorkType.ARTISTIC_PERFORMANCE);
    WorkExternalIdentifiers workExternalIdentifiers = new WorkExternalIdentifiers();
    WorkExternalIdentifier wei = new WorkExternalIdentifier();
    wei.setWorkExternalIdentifierType(WorkExternalIdentifierType.DOI);
    wei.setWorkExternalIdentifierId(new WorkExternalIdentifierId("abc123"));
    workExternalIdentifiers.getWorkExternalIdentifier().add(wei);
    orcidWork.setWorkExternalIdentifiers(workExternalIdentifiers);
    Response response = t2OrcidApiServiceDelegator.updateWorks(mockedUriInfo, "4444-4444-4444-4446", orcidMessage);
    assertNotNull(response);
    OrcidProfile retrievedProfile = orcidProfileManager.retrieveOrcidProfile("4444-4444-4444-4446");
    List<OrcidWork> retreivedWorksList = retrievedProfile.getOrcidActivities().getOrcidWorks().getOrcidWork();
    assertEquals(4, retreivedWorksList.size());
    boolean foundWorkFromAnotherSource = false;
    boolean foundUpdated = false;
    boolean foundExisting = false;
    boolean foundExistingPrivate = false;
    for (OrcidWork retrievedWork : retreivedWorksList) {
        if ("5".equals(retrievedWork.getPutCode())) {
            // The updated work
            assertEquals("Updated by works update", retrievedWork.getWorkTitle().getTitle().getContent());
            assertEquals(Visibility.PUBLIC, retrievedWork.getVisibility());
            assertEquals("APP-5555555555555555", retrievedWork.getSource().retrieveSourcePath());
            foundUpdated = true;
        } else if ("6".equals(retrievedWork.getPutCode())) {
            assertEquals("Journal article B", retrievedWork.getWorkTitle().getTitle().getContent());
            assertEquals(Visibility.LIMITED, retrievedWork.getVisibility());
            assertEquals("4444-4444-4444-4446", retrievedWork.getSource().retrieveSourcePath());
            foundWorkFromAnotherSource = true;
        } else if ("7".equals(retrievedWork.getPutCode())) {
            // Existing private work
            assertEquals("Journal article C", retrievedWork.getWorkTitle().getTitle().getContent());
            assertEquals(Visibility.PRIVATE, retrievedWork.getVisibility());
            assertEquals("APP-5555555555555555", retrievedWork.getSource().retrieveSourcePath());
            foundExisting = true;
        } else if ("8".equals(retrievedWork.getPutCode())) {
            // Existing private work added by the user
            assertEquals("Journal article D", retrievedWork.getWorkTitle().getTitle().getContent());
            assertEquals(Visibility.PRIVATE, retrievedWork.getVisibility());
            assertEquals("4444-4444-4444-4446", retrievedWork.getSource().retrieveSourcePath());
            foundExistingPrivate = true;
        }
    }
    assertTrue("Work from other source should be there", foundWorkFromAnotherSource);
    assertTrue("Updated work should be there", foundUpdated);
    assertTrue("Existing private work should be there", foundExisting);
    assertTrue("Existing private work added by the user should be there", foundExistingPrivate);
}
Also used : OrcidWork(org.orcid.jaxb.model.message.OrcidWork) WorkExternalIdentifierId(org.orcid.jaxb.model.message.WorkExternalIdentifierId) Title(org.orcid.jaxb.model.message.Title) WorkTitle(org.orcid.jaxb.model.message.WorkTitle) FundingTitle(org.orcid.jaxb.model.message.FundingTitle) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks) OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) Response(javax.ws.rs.core.Response) WorkExternalIdentifiers(org.orcid.jaxb.model.message.WorkExternalIdentifiers) WorkTitle(org.orcid.jaxb.model.message.WorkTitle) OrcidIdentifier(org.orcid.jaxb.model.message.OrcidIdentifier) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) WorkExternalIdentifier(org.orcid.jaxb.model.message.WorkExternalIdentifier) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 18 with OrcidWorks

use of org.orcid.jaxb.model.message.OrcidWorks in project ORCID-Source by ORCID.

the class T2OrcidApiServiceVersionedDelegatorTest method testAddWorks.

@Test
public void testAddWorks() {
    setUpSecurityContext();
    OrcidMessage orcidMessage = new OrcidMessage();
    orcidMessage.setMessageVersion("1.2");
    OrcidProfile orcidProfile = new OrcidProfile();
    orcidMessage.setOrcidProfile(orcidProfile);
    orcidProfile.setOrcidIdentifier(new OrcidIdentifier("4444-4444-4444-4441"));
    OrcidActivities orcidActivities = new OrcidActivities();
    orcidProfile.setOrcidActivities(orcidActivities);
    OrcidWorks orcidWorks = new OrcidWorks();
    orcidActivities.setOrcidWorks(orcidWorks);
    Response response = t2OrcidApiServiceDelegatorLatest.addWorks(mockedUriInfo, "4444-4444-4444-4441", orcidMessage);
    assertNotNull(response);
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) Response(javax.ws.rs.core.Response) OrcidIdentifier(org.orcid.jaxb.model.message.OrcidIdentifier) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 19 with OrcidWorks

use of org.orcid.jaxb.model.message.OrcidWorks in project ORCID-Source by ORCID.

the class JpaJaxbEntityAdapterToProfileEntityTest method setWorksTest.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void setWorksTest() throws JAXBException {
    OrcidMessage orcidMessage = getOrcidMessage(ORCID_PROTECTED_FULL_XML);
    OrcidWorks works = orcidMessage.getOrcidProfile().getOrcidActivities().getOrcidWorks();
    ProfileEntity profile = profileDao.find("5555-5555-5555-5558");
    adapter.setWorks(profile, works);
    List<WorkEntity> workEntities = workDao.getWorksByOrcidId(profile.getId());
    assertEquals(3, workEntities.size());
    for (WorkEntity workEntity : workEntities) {
        String contributorsJson = workEntity.getContributorsJson();
        if ("Work title 1".equals(workEntity.getTitle())) {
            assertEquals("Journal Title # 1", workEntity.getJournalTitle());
            assertNotNull(contributorsJson);
            assertTrue(contributorsJson.startsWith("{\"contributor\":[{\""));
            Map<String, Object> mappedJson = JsonUtils.<HashMap>readObjectFromJsonString(contributorsJson, HashMap.class);
            List<Map<String, Object>> contributorsList = (List<Map<String, Object>>) mappedJson.get("contributor");
            Map<String, Object> contributor0 = contributorsList.get(0);
            assertEquals(4, contributor0.keySet().size());
            Map<String, Object> contributorOrcid0 = (Map<String, Object>) contributor0.get("contributorOrcid");
            assertEquals("http://orcid.org/4444-4444-4444-4446", contributorOrcid0.get("uri"));
            assertEquals("4444-4444-4444-4446", contributorOrcid0.get("path"));
            assertEquals("orcid.org", contributorOrcid0.get("host"));
            assertTrue(contributorOrcid0.containsKey("value"));
            assertNull(contributorOrcid0.get("value"));
            assertTrue(contributorOrcid0.containsKey("valueAsString"));
            assertNull(contributorOrcid0.get("valueAsString"));
            assertTrue(contributor0.containsKey("creditName"));
            assertNull(contributor0.get("creditName"));
            assertTrue(contributor0.containsKey("contributorEmail"));
            assertNull(contributor0.get("contributorEmail"));
            Map<String, Object> contributorAttributes0 = (Map<String, Object>) contributor0.get("contributorAttributes");
            assertNotNull(contributorAttributes0);
            assertEquals("FIRST", contributorAttributes0.get("contributorSequence"));
            assertEquals("AUTHOR", contributorAttributes0.get("contributorRole"));
            Map<String, Object> contributor1 = contributorsList.get(1);
            assertEquals(4, contributor1.keySet().size());
            assertTrue(contributor1.containsKey("contributorOrcid"));
            assertNull(contributor1.get("contributorOrcid"));
            assertEquals("John W. Spaeth", ((Map<String, Object>) contributor1.get("creditName")).get("content"));
            assertEquals("PUBLIC", ((Map<String, Object>) contributor1.get("creditName")).get("visibility"));
            assertTrue(contributor1.containsKey("contributorEmail"));
            assertNull(contributor1.get("contributorEmail"));
            assertTrue(contributor1.containsKey("contributorAttributes"));
            assertNull(contributor1.get("contributorAttributes"));
        } else if (workEntity.getTitle().equals("Work title 2")) {
            assertNull(contributorsJson);
            assertEquals("Journal Title # 2", workEntity.getJournalTitle());
        } else {
            assertNull(contributorsJson);
            assertNull(workEntity.getJournalTitle());
        }
    }
}
Also used : WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) HashMap(java.util.HashMap) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Example 20 with OrcidWorks

use of org.orcid.jaxb.model.message.OrcidWorks in project ORCID-Source by ORCID.

the class OrcidSearchManagerImplTest method orcidRetrievalAllDataPresentInDb.

@Test
@Rollback
public void orcidRetrievalAllDataPresentInDb() throws Exception {
    when(mockSolrDao.findByOrcid("1434")).thenReturn(getOrcidSolrResult("5678", new Float(37.2)));
    when(mockOrcidProfileCacheManager.retrievePublicBio("5678")).thenReturn(getOrcidProfileAllIndexFieldsPopulated());
    String orcid = "1434";
    // demonstrate that the mapping from solr (profile 1234) and dao (5678)
    // are truly seperate - the search results only return a subset of the
    // full orcid
    // because we want to keep the payload down.
    OrcidMessage retrievedOrcidMessage = orcidSearchManager.findOrcidSearchResultsById(orcid);
    assertNotNull(retrievedOrcidMessage);
    assertTrue(retrievedOrcidMessage.getOrcidSearchResults().getOrcidSearchResult().size() == 1);
    OrcidSearchResult result = retrievedOrcidMessage.getOrcidSearchResults().getOrcidSearchResult().get(0);
    assertTrue(new Float(37.2).compareTo(result.getRelevancyScore().getValue()) == 0);
    OrcidProfile retrievedProfile = result.getOrcidProfile();
    assertEquals("5678", retrievedProfile.getOrcidIdentifier().getPath());
    OrcidBio orcidBio = retrievedProfile.getOrcidBio();
    assertEquals("Logan", orcidBio.getPersonalDetails().getFamilyName().getContent());
    assertEquals("Donald Edward", orcidBio.getPersonalDetails().getGivenNames().getContent());
    assertEquals("Stanley Higgins", orcidBio.getPersonalDetails().getCreditName().getContent());
    List<String> otherNames = orcidBio.getPersonalDetails().getOtherNames().getOtherNamesAsStrings();
    assertTrue(otherNames.contains("Edward Bass"));
    assertTrue(otherNames.contains("Gareth Dove"));
    OrcidWorks orcidWorks = retrievedProfile.retrieveOrcidWorks();
    OrcidWork orcidWork1 = orcidWorks.getOrcidWork().get(0);
    OrcidWork orcidWork2 = orcidWorks.getOrcidWork().get(1);
    assertTrue(orcidWork1.getWorkExternalIdentifiers().getWorkExternalIdentifier().size() == 1);
    assertEquals("work1-doi1", orcidWork1.getWorkExternalIdentifiers().getWorkExternalIdentifier().get(0).getWorkExternalIdentifierId().getContent());
    assertTrue(orcidWork2.getWorkExternalIdentifiers().getWorkExternalIdentifier().size() == 2);
    assertEquals("work2-doi1", orcidWork2.getWorkExternalIdentifiers().getWorkExternalIdentifier().get(0).getWorkExternalIdentifierId().getContent());
    assertEquals("work2-doi2", orcidWork2.getWorkExternalIdentifiers().getWorkExternalIdentifier().get(1).getWorkExternalIdentifierId().getContent());
    List<Funding> fundings = retrievedProfile.retrieveFundings().getFundings();
    Funding funding1 = fundings.get(0);
    Funding funding2 = fundings.get(1);
    // check returns a reduced payload
    assertNotNull(funding1.getTitle());
    assertNotNull(funding1.getTitle().getTitle());
    assertEquals("grant1", funding1.getTitle().getTitle().getContent());
    assertEquals("Grant 1 - a short description", funding1.getDescription());
    assertNull(funding1.getPutCode());
    assertNotNull(funding2.getTitle());
    assertNotNull(funding2.getTitle().getTitle());
    assertEquals("grant2", funding2.getTitle().getTitle().getContent());
    assertEquals("Grant 2 - a short description", funding2.getDescription());
    assertNull(funding2.getPutCode());
}
Also used : OrcidSearchResult(org.orcid.jaxb.model.message.OrcidSearchResult) OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) OrcidBio(org.orcid.jaxb.model.message.OrcidBio) Funding(org.orcid.jaxb.model.message.Funding) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) OrcidWork(org.orcid.jaxb.model.message.OrcidWork) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks) Test(org.junit.Test) BaseTest(org.orcid.core.BaseTest) Rollback(org.springframework.test.annotation.Rollback)

Aggregations

OrcidWorks (org.orcid.jaxb.model.message.OrcidWorks)46 OrcidProfile (org.orcid.jaxb.model.message.OrcidProfile)35 OrcidWork (org.orcid.jaxb.model.message.OrcidWork)32 Test (org.junit.Test)24 OrcidActivities (org.orcid.jaxb.model.message.OrcidActivities)19 FundingTitle (org.orcid.jaxb.model.message.FundingTitle)15 Title (org.orcid.jaxb.model.message.Title)15 OrcidMessage (org.orcid.jaxb.model.message.OrcidMessage)13 WorkTitle (org.orcid.jaxb.model.message.WorkTitle)13 Transactional (org.springframework.transaction.annotation.Transactional)12 FundingList (org.orcid.jaxb.model.message.FundingList)9 Funding (org.orcid.jaxb.model.message.Funding)8 OrcidBio (org.orcid.jaxb.model.message.OrcidBio)8 OrcidIdentifier (org.orcid.jaxb.model.message.OrcidIdentifier)8 DBUnitTest (org.orcid.test.DBUnitTest)8 Rollback (org.springframework.test.annotation.Rollback)8 OrcidHistory (org.orcid.jaxb.model.message.OrcidHistory)7 Date (java.util.Date)6 Affiliations (org.orcid.jaxb.model.message.Affiliations)6 Subtitle (org.orcid.jaxb.model.message.Subtitle)6