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());
}
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);
}
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);
}
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());
}
}
}
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());
}
Aggregations