use of org.orcid.jaxb.model.message.OrcidProfile in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testPreventDuplicatedWorks.
@Test
@Transactional
@Rollback(true)
public void testPreventDuplicatedWorks() {
OrcidWork work1 = createWork1();
OrcidWork work2 = createWork2();
OrcidWork work3 = createWork3();
OrcidProfile profile = createBasicProfile();
profile = orcidProfileManager.createOrcidProfile(profile, false, false);
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(1, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
assertEquals(work1.getWorkTitle().getTitle().getContent(), profile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getWorkTitle().getTitle().getContent());
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work2);
orcidProfileManager.addOrcidWorks(profile);
profile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
boolean found1 = false;
boolean found2 = false;
boolean found3 = false;
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(2, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
for (OrcidWork work : profile.getOrcidActivities().getOrcidWorks().getOrcidWork()) {
String workTitle = work.getWorkTitle().getTitle().getContent();
if (workTitle.equals(work1.getWorkTitle().getTitle().getContent())) {
found1 = true;
} else if (workTitle.equals(work2.getWorkTitle().getTitle().getContent())) {
found2 = true;
} else if (workTitle.equals(work3.getWorkTitle().getTitle().getContent())) {
found3 = true;
}
}
assertTrue(found1);
assertTrue(found2);
assertFalse(found3);
// Add work # 3 and duplicate other works
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work1);
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work2);
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work3);
orcidProfileManager.addOrcidWorks(profile);
profile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
// Work 3 was added and work 1 and 2 where not added twice
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(3, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
found1 = false;
found2 = false;
found3 = false;
for (OrcidWork work : profile.getOrcidActivities().getOrcidWorks().getOrcidWork()) {
String workTitle = work.getWorkTitle().getTitle().getContent();
if (workTitle.equals(work1.getWorkTitle().getTitle().getContent())) {
found1 = true;
} else if (workTitle.equals(work2.getWorkTitle().getTitle().getContent())) {
found2 = true;
} else if (workTitle.equals(work3.getWorkTitle().getTitle().getContent())) {
found3 = true;
}
}
assertTrue(found1);
assertTrue(found2);
assertTrue(found3);
// Duplicate all works
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work1);
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work2);
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work3);
orcidProfileManager.addOrcidWorks(profile);
profile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
// No new works are added and no duplicated was allowed
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(3, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
found1 = false;
found2 = false;
found3 = false;
for (OrcidWork work : profile.getOrcidActivities().getOrcidWorks().getOrcidWork()) {
String workTitle = work.getWorkTitle().getTitle().getContent();
if (workTitle.equals(work1.getWorkTitle().getTitle().getContent())) {
found1 = true;
} else if (workTitle.equals(work2.getWorkTitle().getTitle().getContent())) {
found2 = true;
} else if (workTitle.equals(work3.getWorkTitle().getTitle().getContent())) {
found3 = true;
}
}
assertTrue(found1);
assertTrue(found2);
assertTrue(found3);
//Test using work source
Source source = new Source();
source.setSourceOrcid(new SourceOrcid(APPLICATION_ORCID));
work1.setSource(source);
// Add work1 again, since it have a different source, it should be added
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work1);
orcidProfileManager.addOrcidWorks(profile);
profile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(4, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
//Add work1 again, and it should not be added, since is duplicated
profile.getOrcidActivities().getOrcidWorks().getOrcidWork().add(work1);
orcidProfileManager.addOrcidWorks(profile);
profile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
assertNotNull(profile);
assertNotNull(profile.getOrcidActivities());
assertNotNull(profile.getOrcidActivities().getOrcidWorks());
assertNotNull(profile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(4, profile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
}
use of org.orcid.jaxb.model.message.OrcidProfile in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testUpdateProfile.
@Test
@Transactional
@Rollback(true)
public void testUpdateProfile() {
OrcidProfile profile1 = createBasicProfile();
profile1 = orcidProfileManager.createOrcidProfile(profile1, false, false);
String originalPutCode = profile1.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getPutCode();
OrcidProfile profile2 = createBasicProfile();
profile2.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).setPutCode(originalPutCode);
profile2 = orcidProfileManager.updateOrcidProfile(profile2);
OrcidProfile resultProfile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
String resultPutCode = resultProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getPutCode();
assertNotNull(resultProfile);
assertEquals("Will", resultProfile.getOrcidBio().getPersonalDetails().getGivenNames().getContent());
assertEquals(1, resultProfile.retrieveOrcidWorks().getOrcidWork().size());
assertEquals(1, resultProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().size());
assertEquals("http://www.wjrs.co.uk", resultProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().get(0).getUrl().getValue());
assertEquals("Put code should not change", originalPutCode, resultPutCode);
}
use of org.orcid.jaxb.model.message.OrcidProfile in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testMemberCreateOrcidProfileWithoutVisibilityOnBioSoDefaultVisibilityIsSetOnBioElements.
@Test
@Transactional
public void testMemberCreateOrcidProfileWithoutVisibilityOnBioSoDefaultVisibilityIsSetOnBioElements() {
OrcidProfile profile = createBasicProfile();
String orcidIdentifier = null;
profile.setOrcidIdentifier(orcidIdentifier);
setBio(profile, null);
profile = orcidProfileManager.createOrcidProfile(profile, true, false);
assertNotNull(profile);
assertNotNull(profile.getOrcidIdentifier());
assertNotNull(profile.getOrcidIdentifier().getPath());
OrcidProfile newProfile = orcidProfileManager.retrieveOrcidProfile(profile.getOrcidIdentifier().getPath());
assertNotNull(newProfile);
assertNotNull(newProfile.getOrcidBio());
OrcidBio bio = newProfile.getOrcidBio();
assertEquals(Visibility.PRIVATE, bio.getBiography().getVisibility());
assertEquals(Visibility.PRIVATE, bio.getContactDetails().getAddress().getCountry().getVisibility());
assertEquals(Visibility.PRIVATE, bio.getExternalIdentifiers().getVisibility());
assertEquals(Visibility.PRIVATE, bio.getKeywords().getVisibility());
assertEquals(Visibility.PRIVATE, bio.getPersonalDetails().getOtherNames().getVisibility());
assertEquals(Visibility.PRIVATE, bio.getResearcherUrls().getVisibility());
}
use of org.orcid.jaxb.model.message.OrcidProfile in project ORCID-Source by ORCID.
the class Api12Helper method addFunding.
protected static void addFunding(String userOrcid, String token, String title, T2OAuthAPIService<ClientResponse> oauthT2Client) {
OrcidMessage orcidMessage = new OrcidMessage();
orcidMessage.setMessageVersion(OrcidMessage.DEFAULT_VERSION);
OrcidProfile orcidProfile = new OrcidProfile();
orcidMessage.setOrcidProfile(orcidProfile);
OrcidActivities orcidActivities = new OrcidActivities();
orcidProfile.setOrcidActivities(orcidActivities);
FundingList fundings = new FundingList();
Funding funding = new Funding();
funding.setVisibility(Visibility.LIMITED);
FundingTitle fundingTitle = new FundingTitle();
fundingTitle.setTitle(new Title(title));
funding.setTitle(fundingTitle);
funding.setType(FundingType.SALARY_AWARD);
Amount amount = new Amount();
amount.setCurrencyCode("CRC");
amount.setContent("1,250,000");
funding.setAmount(amount);
funding.setStartDate(new FuzzyDate(2010, 1, 1));
funding.setEndDate(new FuzzyDate(2013, 1, 1));
funding.setDescription("My Grant description");
funding.setUrl(new Url("http://url.com"));
Organization org = new Organization();
org.setName("Orcid Integration Test Org");
OrganizationAddress add = new OrganizationAddress();
add.setCity("My City");
add.setCountry(Iso3166Country.CR);
org.setAddress(add);
funding.setOrganization(org);
FundingExternalIdentifier extIdentifier = new FundingExternalIdentifier();
extIdentifier.setType(FundingExternalIdentifierType.fromValue("grant_number"));
extIdentifier.setUrl(new Url("http://url.com"));
extIdentifier.setValue("My value");
FundingExternalIdentifiers extIdentifiers = new FundingExternalIdentifiers();
extIdentifiers.getFundingExternalIdentifier().add(extIdentifier);
funding.setFundingExternalIdentifiers(extIdentifiers);
FundingContributors contributors = new FundingContributors();
FundingContributor contributor = new FundingContributor();
contributor.setCreditName(new CreditName("My Credit Name"));
contributor.setContributorEmail(new ContributorEmail("my.email@orcid-integration-test.com"));
FundingContributorAttributes attributes = new FundingContributorAttributes();
attributes.setContributorRole(FundingContributorRole.LEAD);
contributor.setContributorAttributes(attributes);
contributors.getContributor().add(contributor);
funding.setFundingContributors(contributors);
fundings.getFundings().add(funding);
orcidMessage.getOrcidProfile().getOrcidActivities().setFundings(fundings);
ClientResponse clientResponse = oauthT2Client.addFundingXml(userOrcid, orcidMessage, token);
assertEquals(201, clientResponse.getStatus());
}
use of org.orcid.jaxb.model.message.OrcidProfile 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());
}
Aggregations