use of org.orcid.jaxb.model.message.Claimed in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testAddOrcidWorks.
@Test
@Transactional
@Rollback(true)
public void testAddOrcidWorks() {
OrcidProfile profile1 = createBasicProfile();
OrcidHistory history = new OrcidHistory();
history.setSubmissionDate(new SubmissionDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
profile1.setOrcidHistory(history);
history.setClaimed(new Claimed(true));
profile1 = orcidProfileManager.createOrcidProfile(profile1, false, false);
String originalPutCode = profile1.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getPutCode();
OrcidProfile profile2 = new OrcidProfile();
profile2.setOrcidIdentifier(TEST_ORCID);
OrcidWorks orcidWorks = new OrcidWorks();
profile2.setOrcidWorks(orcidWorks);
WorkTitle workTitle1 = new WorkTitle();
workTitle1.setTitle(new Title("Another Title"));
workTitle1.setSubtitle(new Subtitle("Journal of Cloud Spotting"));
OrcidWork work1 = createWork1(workTitle1);
Source source = new Source(TEST_ORCID);
work1.setSource(source);
orcidWorks.getOrcidWork().add(work1);
WorkTitle workTitle2 = new WorkTitle();
workTitle2.setTitle(new Title("New Title"));
workTitle2.setSubtitle(new Subtitle("Another New subtitle"));
OrcidWork work2 = createWork2(workTitle2);
orcidWorks.getOrcidWork().add(work2);
// Try to add a duplicate
WorkTitle workTitle3 = new WorkTitle();
workTitle3.setTitle(new Title("New Title"));
workTitle3.setSubtitle(new Subtitle("Another New subtitle"));
OrcidWork work3 = createWork2(workTitle3);
work3.setVisibility(Visibility.LIMITED);
orcidWorks.getOrcidWork().add(work3);
orcidProfileManager.addOrcidWorks(profile2);
OrcidProfile resultProfile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
assertEquals("Will", resultProfile.getOrcidBio().getPersonalDetails().getGivenNames().getContent());
List<OrcidWork> works = resultProfile.retrieveOrcidWorks().getOrcidWork();
assertEquals(3, works.size());
assertEquals("Another Title", works.get(0).getWorkTitle().getTitle().getContent());
assertEquals("Journal of Cloud Spotting", works.get(0).getWorkTitle().getSubtitle().getContent());
for (OrcidWork work : works) {
assertEquals(Visibility.PRIVATE, work.getVisibility());
}
assertEquals("Put code of original work should not have changed", originalPutCode, works.get(2).getPutCode());
}
use of org.orcid.jaxb.model.message.Claimed in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testDefaultVisibilityForItemsAppliedOnUpdate.
@Test
@Transactional
@Rollback(true)
public void testDefaultVisibilityForItemsAppliedOnUpdate() {
OrcidProfile profile = createBasicProfile();
OrcidHistory orcidHistory = new OrcidHistory();
orcidHistory.setClaimed(new Claimed(true));
orcidHistory.setCreationMethod(CreationMethod.DIRECT);
orcidHistory.setSubmissionDate(new SubmissionDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
profile.setOrcidHistory(orcidHistory);
Keyword k = new Keyword("word", null);
Keywords kk = new Keywords();
kk.getKeyword().add(k);
kk.setVisibility(Visibility.LIMITED);
ResearcherUrl r = new ResearcherUrl(new Url("http://whatever.com"), null);
ResearcherUrls rr = new ResearcherUrls();
rr.getResearcherUrl().add(r);
rr.setVisibility(Visibility.LIMITED);
ExternalIdentifier i = new ExternalIdentifier(null);
i.setExternalIdReference(new ExternalIdReference("ref"));
i.setExternalIdCommonName(new ExternalIdCommonName("cn"));
ExternalIdentifiers ii = new ExternalIdentifiers();
ii.getExternalIdentifier().add(i);
ii.setVisibility(Visibility.LIMITED);
OtherNames oo = new OtherNames();
oo.addOtherName("other", null);
oo.setVisibility(Visibility.LIMITED);
profile.getOrcidBio().setKeywords(kk);
profile.getOrcidBio().setResearcherUrls(rr);
profile.getOrcidBio().setExternalIdentifiers(ii);
profile.getOrcidBio().getPersonalDetails().setOtherNames(oo);
//Create the profile
profile = orcidProfileManager.createOrcidProfile(profile, true, false);
Preferences preferences = new Preferences();
preferences.setSendChangeNotifications(new SendChangeNotifications(true));
preferences.setSendOrcidNews(new SendOrcidNews(true));
//Default visibility for user will be LIMITED
preferences.setActivitiesVisibilityDefault(new ActivitiesVisibilityDefault(Visibility.LIMITED));
preferences.setNotificationsEnabled(DefaultPreferences.NOTIFICATIONS_ENABLED);
preferences.setSendEmailFrequencyDays(DefaultPreferences.SEND_EMAIL_FREQUENCY_DAYS);
preferences.setSendMemberUpdateRequests(DefaultPreferences.SEND_MEMBER_UPDATE_REQUESTS);
OrcidInternal internal = new OrcidInternal();
internal.setPreferences(preferences);
profile.setOrcidInternal(internal);
profile.getOrcidInternal().getPreferences().setActivitiesVisibilityDefault(new ActivitiesVisibilityDefault(Visibility.LIMITED));
//Claim the profile
profile = orcidProfileManager.updateOrcidProfile(profile);
//now attempt to alter privacy. It should fail as record has been claimed.
profile.getOrcidBio().getKeywords().setVisibility(Visibility.PUBLIC);
profile.getOrcidBio().getResearcherUrls().setVisibility(Visibility.PUBLIC);
profile.getOrcidBio().getExternalIdentifiers().setVisibility(Visibility.PUBLIC);
profile.getOrcidBio().getPersonalDetails().getOtherNames().setVisibility(Visibility.PUBLIC);
profile = orcidProfileManager.updateOrcidProfile(profile);
assertEquals("word", profile.getOrcidBio().getKeywords().getKeyword().iterator().next().getContent());
assertEquals(Visibility.LIMITED, profile.getOrcidBio().getKeywords().getKeyword().iterator().next().getVisibility());
assertEquals(new Url("http://whatever.com"), profile.getOrcidBio().getResearcherUrls().getResearcherUrl().iterator().next().getUrl());
assertEquals(Visibility.LIMITED, profile.getOrcidBio().getResearcherUrls().getResearcherUrl().iterator().next().getVisibility());
assertEquals("cn", profile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().iterator().next().getExternalIdCommonName().getContent());
assertEquals(Visibility.LIMITED, profile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().iterator().next().getVisibility());
assertEquals("other", profile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName().iterator().next().getContent());
assertEquals(Visibility.LIMITED, profile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName().iterator().next().getVisibility());
}
use of org.orcid.jaxb.model.message.Claimed in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testUpdateOrcidBioKeepTheUserVisibility.
@Test
@Transactional
public void testUpdateOrcidBioKeepTheUserVisibility() {
OrcidProfile profile = createBasicProfile();
String orcidIdentifier = null;
profile.setOrcidIdentifier(orcidIdentifier);
setBio(profile, Visibility.LIMITED);
OrcidHistory orcidHistory = new OrcidHistory();
orcidHistory.setClaimed(new Claimed(true));
orcidHistory.setCreationMethod(CreationMethod.DIRECT);
orcidHistory.setSubmissionDate(new SubmissionDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
profile.setOrcidHistory(orcidHistory);
Preferences preferences = new Preferences();
preferences.setSendChangeNotifications(new SendChangeNotifications(true));
preferences.setSendOrcidNews(new SendOrcidNews(true));
//Default visibility for user will be LIMITED
preferences.setActivitiesVisibilityDefault(new ActivitiesVisibilityDefault(Visibility.LIMITED));
preferences.setNotificationsEnabled(DefaultPreferences.NOTIFICATIONS_ENABLED);
preferences.setSendEmailFrequencyDays(DefaultPreferences.SEND_EMAIL_FREQUENCY_DAYS);
preferences.setSendMemberUpdateRequests(DefaultPreferences.SEND_MEMBER_UPDATE_REQUESTS);
OrcidInternal internal = new OrcidInternal();
internal.setPreferences(preferences);
profile.setOrcidInternal(internal);
profile = orcidProfileManager.createOrcidProfile(profile, true, false);
//Update it setting it to PUBLIC and check
profile = orcidProfileManager.retrieveOrcidProfile(profile.getOrcidIdentifier().getPath());
assertNotNull(profile);
assertNotNull(profile.getOrcidBio());
OrcidBio bioToUpdate = profile.getOrcidBio();
assertEquals(Visibility.LIMITED, bioToUpdate.getBiography().getVisibility());
assertEquals("This is my biography", bioToUpdate.getBiography().getContent());
assertEquals(Visibility.LIMITED, bioToUpdate.getContactDetails().getAddress().getCountry().getVisibility());
assertEquals(Iso3166Country.US, bioToUpdate.getContactDetails().getAddress().getCountry().getValue());
assertEquals(Visibility.LIMITED, bioToUpdate.getExternalIdentifiers().getVisibility());
assertEquals(1, bioToUpdate.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals(Visibility.LIMITED, bioToUpdate.getKeywords().getVisibility());
assertEquals(1, bioToUpdate.getKeywords().getKeyword().size());
assertEquals(Visibility.LIMITED, bioToUpdate.getPersonalDetails().getOtherNames().getVisibility());
assertEquals(1, bioToUpdate.getPersonalDetails().getOtherNames().getOtherName().size());
assertEquals(Visibility.LIMITED, bioToUpdate.getResearcherUrls().getVisibility());
assertEquals(1, bioToUpdate.getResearcherUrls().getResearcherUrl().size());
//Update bio
bioToUpdate.getBiography().setContent("Updated biography");
bioToUpdate.getBiography().setVisibility(Visibility.PRIVATE);
//Update address
bioToUpdate.getContactDetails().getAddress().getCountry().setValue(Iso3166Country.CR);
bioToUpdate.getContactDetails().getAddress().getCountry().setVisibility(Visibility.PRIVATE);
//Update external identifiers
ExternalIdentifier extId = new ExternalIdentifier();
extId.setExternalIdCommonName(new ExternalIdCommonName("common-name-2"));
extId.setExternalIdReference(new ExternalIdReference("ext-id-reference-2"));
extId.setExternalIdUrl(new ExternalIdUrl("http://orcid.org/ext-id/2"));
extId.setVisibility(Visibility.PRIVATE);
bioToUpdate.getExternalIdentifiers().setVisibility(Visibility.PRIVATE);
bioToUpdate.getExternalIdentifiers().getExternalIdentifier().add(extId);
//Update keywords
Keyword k = new Keyword();
k.setContent("keyword-2");
k.setVisibility(Visibility.PRIVATE);
bioToUpdate.getKeywords().getKeyword().add(k);
bioToUpdate.getKeywords().setVisibility(Visibility.PRIVATE);
//Update researcher urls
ResearcherUrl rUrl = new ResearcherUrl();
rUrl.setUrl(new Url("http://orcid.org/researcher-url-2"));
rUrl.setUrlName(new UrlName("url-name-2"));
rUrl.setVisibility(Visibility.PRIVATE);
bioToUpdate.getResearcherUrls().getResearcherUrl().add(rUrl);
bioToUpdate.getResearcherUrls().setVisibility(Visibility.PRIVATE);
//Update other names
OtherName o = new OtherName();
o.setContent("other-name-2");
o.setVisibility(Visibility.PRIVATE);
bioToUpdate.getPersonalDetails().getOtherNames().getOtherName().add(o);
bioToUpdate.getPersonalDetails().getOtherNames().setVisibility(Visibility.PRIVATE);
//Update the biography
orcidProfileManager.updateOrcidBio(profile);
//Get the record again and check that visibilities where not updated
OrcidProfile updatedProfile = orcidProfileManager.retrieveOrcidProfile(profile.getOrcidIdentifier().getPath());
assertNotNull(updatedProfile);
assertNotNull(updatedProfile.getOrcidBio());
OrcidBio updatedBio = updatedProfile.getOrcidBio();
assertEquals(Visibility.LIMITED, updatedBio.getBiography().getVisibility());
assertEquals("Updated biography", updatedBio.getBiography().getContent());
assertEquals(Visibility.LIMITED, updatedBio.getContactDetails().getAddress().getCountry().getVisibility());
assertEquals(Iso3166Country.US, updatedBio.getContactDetails().getAddress().getCountry().getValue());
assertEquals(Visibility.LIMITED, updatedBio.getExternalIdentifiers().getVisibility());
assertEquals(2, updatedBio.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals(Visibility.LIMITED, updatedBio.getKeywords().getVisibility());
assertEquals(2, updatedBio.getKeywords().getKeyword().size());
assertEquals(Visibility.LIMITED, updatedBio.getPersonalDetails().getOtherNames().getVisibility());
assertEquals(2, updatedBio.getPersonalDetails().getOtherNames().getOtherName().size());
assertEquals(Visibility.LIMITED, updatedBio.getResearcherUrls().getVisibility());
assertEquals(2, updatedBio.getResearcherUrls().getResearcherUrl().size());
}
use of org.orcid.jaxb.model.message.Claimed in project ORCID-Source by ORCID.
the class RegistrationManagerImplTest method createBasicProfile.
private OrcidProfile createBasicProfile(String email, boolean claimed, String sourceId) {
OrcidProfile profile = new OrcidProfile();
profile.setPassword("password");
profile.setVerificationCode("1234");
OrcidBio bio = new OrcidBio();
ContactDetails contactDetails = new ContactDetails();
contactDetails.addOrReplacePrimaryEmail(new Email(email));
bio.setContactDetails(contactDetails);
profile.setOrcidBio(bio);
PersonalDetails personalDetails = new PersonalDetails();
bio.setPersonalDetails(personalDetails);
personalDetails.setGivenNames(new GivenNames("New"));
personalDetails.setFamilyName(new FamilyName("User"));
OrcidHistory orcidHistory = new OrcidHistory();
orcidHistory.setClaimed(new Claimed(claimed));
orcidHistory.setCreationMethod(CreationMethod.DIRECT);
orcidHistory.setSubmissionDate(new SubmissionDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
profile.setOrcidHistory(orcidHistory);
//Set the source
profile.getOrcidHistory().setSource(new Source(sourceId));
return profile;
}
use of org.orcid.jaxb.model.message.Claimed in project ORCID-Source by ORCID.
the class SourceInActivitiesTest method getMinimalOrcidProfile.
private OrcidProfile getMinimalOrcidProfile() {
OrcidProfile profile = new OrcidProfile();
OrcidBio bio = new OrcidBio();
ContactDetails contactDetails = new ContactDetails();
contactDetails.addOrReplacePrimaryEmail(new org.orcid.jaxb.model.message.Email(System.currentTimeMillis() + "@user.com"));
Preferences preferences = new Preferences();
preferences.setSendChangeNotifications(new SendChangeNotifications(true));
preferences.setSendOrcidNews(new SendOrcidNews(true));
preferences.setSendMemberUpdateRequests(true);
preferences.setSendEmailFrequencyDays("1");
preferences.setActivitiesVisibilityDefault(new ActivitiesVisibilityDefault(Visibility.fromValue("public")));
PersonalDetails personalDetails = new PersonalDetails();
personalDetails.setFamilyName(new FamilyName("First"));
personalDetails.setGivenNames(new GivenNames("Last"));
bio.setContactDetails(contactDetails);
bio.setPersonalDetails(personalDetails);
OrcidInternal internal = new OrcidInternal();
internal.setPreferences(preferences);
profile.setOrcidBio(bio);
profile.setOrcidInternal(internal);
OrcidHistory orcidHistory = new OrcidHistory();
orcidHistory.setClaimed(new Claimed(true));
orcidHistory.setCreationMethod(CreationMethod.fromValue("integration-test"));
profile.setOrcidHistory(orcidHistory);
orcidHistory.setSubmissionDate(new SubmissionDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
profile.setPassword("password1");
return orcidProfileManager.createOrcidProfile(profile, false, false);
}
Aggregations