use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.
the class T2OrcidApiServiceDelegatorTest method testCreateAndReadOwnCreation.
@Test
public void testCreateAndReadOwnCreation() {
SecurityContextTestUtils.setUpSecurityContextForClientOnly();
OrcidMessage orcidMessage = createStubOrcidMessage();
Email email = new Email("madeupemail@semantico.com");
email.setPrimary(true);
orcidMessage.getOrcidProfile().getOrcidBio().getContactDetails().getEmail().add(email);
Response createResponse = t2OrcidApiServiceDelegator.createProfile(mockedUriInfo, orcidMessage);
assertNotNull(createResponse);
assertEquals(HttpStatus.SC_CREATED, createResponse.getStatus());
String location = ((URI) createResponse.getMetadata().getFirst("Location")).getPath();
assertNotNull(location);
String orcid = location.substring(1, 20);
Response readResponse = t2OrcidApiServiceDelegator.findFullDetails(orcid);
assertNotNull(readResponse);
assertEquals(HttpStatus.SC_OK, readResponse.getStatus());
OrcidMessage retrievedMessage = (OrcidMessage) readResponse.getEntity();
assertEquals(orcid, retrievedMessage.getOrcidProfile().getOrcidIdentifier().getPath());
assertEquals("Test credit name", retrievedMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getCreditName().getContent());
}
use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.
the class T2OrcidApiServiceDelegatorTest method testReadNonPrivateEmailsOnBio.
@Test
public void testReadNonPrivateEmailsOnBio() {
SecurityContextTestUtils.setUpSecurityContext("4444-4444-4444-4497", ScopePathType.ORCID_BIO_READ_LIMITED);
/*Example A List on 4444-4444-4444-4497:
Item 1 Private (client is source)
Item 2 Private (other source)
Item 3 Limited
Item 4 Public
*/
OrcidProfile p = ((OrcidMessage) t2OrcidApiServiceDelegator.findBioDetails("4444-4444-4444-4497").getEntity()).getOrcidProfile();
List<Email> emails = p.getOrcidBio().getContactDetails().getEmail();
assertEquals(2, emails.size());
boolean publicFound = false;
boolean limitedFound = false;
for (Email email : emails) {
if ("public_4444-4444-4444-4497@test.orcid.org".equals(email.getValue()) && Visibility.PUBLIC.equals(email.getVisibility())) {
publicFound = true;
} else if ("limited_4444-4444-4444-4497@test.orcid.org".equals(email.getValue()) && Visibility.LIMITED.equals(email.getVisibility())) {
limitedFound = true;
}
}
assertTrue(publicFound);
assertTrue(limitedFound);
}
use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.
the class OrcidProfileManagerImpl method deactivateOrcidProfile.
@Override
@Transactional
@Deprecated
public OrcidProfile deactivateOrcidProfile(OrcidProfile existingOrcidProfile) {
OrcidProfile blankedOrcidProfile = new OrcidProfile();
OrcidBio existingBio = existingOrcidProfile.getOrcidBio();
OrcidBio minimalBio = new OrcidBio();
ContactDetails minimalContactDetails = new ContactDetails();
minimalContactDetails.getEmail().addAll(existingBio.getContactDetails().getEmail());
OrcidInternal minimalOrcidInternal = new OrcidInternal();
minimalOrcidInternal.setSecurityDetails(existingOrcidProfile.getOrcidInternal().getSecurityDetails());
OrcidHistory deactivatedOrcidHistory = existingOrcidProfile.getOrcidHistory();
deactivatedOrcidHistory.setDeactivationDate(new DeactivationDate(DateUtils.convertToXMLGregorianCalendar(new Date())));
blankedOrcidProfile.setOrcidHistory(deactivatedOrcidHistory);
// only names names from bio with a visibility setting
PersonalDetails minimalPersonalDetails = new PersonalDetails();
minimalPersonalDetails.setOtherNames(null);
CreditName creditName = new CreditName();
creditName.setVisibility(Visibility.PUBLIC);
minimalPersonalDetails.setCreditName(creditName);
minimalPersonalDetails.setGivenNames(new GivenNames("Given Names Deactivated"));
minimalPersonalDetails.setFamilyName(new FamilyName("Family Name Deactivated"));
for (Email email : minimalContactDetails.getEmail()) {
setVisibilityToPrivate(email);
}
setVisibilityToPrivate(minimalPersonalDetails.getOtherNames());
if (minimalPersonalDetails.getOtherNames() != null && minimalPersonalDetails.getOtherNames().getOtherName() != null) {
for (OtherName name : minimalPersonalDetails.getOtherNames().getOtherName()) setVisibilityToPrivate(name);
}
minimalBio.setPersonalDetails(minimalPersonalDetails);
minimalBio.setContactDetails(minimalContactDetails);
minimalBio.setBiography(new Biography());
minimalBio.setExternalIdentifiers(new ExternalIdentifiers());
blankedOrcidProfile.setOrcidBio(minimalBio);
blankedOrcidProfile.setOrcidIdentifier(existingOrcidProfile.getOrcidIdentifier().getPath());
OrcidProfile profileToReturn = updateOrcidProfile(blankedOrcidProfile);
userConnectionDao.deleteByOrcid(existingOrcidProfile.getOrcidIdentifier().getPath());
notificationManager.sendAmendEmail(profileToReturn, AmendedSection.UNKNOWN);
return profileToReturn;
}
use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.
the class EmailsTest method updateEmailsUsingAlreadyExistingEmailTest.
/**
* Test update email using already existing email
* */
@Test
public void updateEmailsUsingAlreadyExistingEmailTest() throws JSONException, InterruptedException {
String clientId = getClient1ClientId();
String clientRedirectUri = getClient1RedirectUri();
String clientSecret = getClient1ClientSecret();
String userId = getUser1OrcidId();
String password = getUser1Password();
String user2Email = getUser2UserName();
String accessToken = getAccessToken(userId, password, Arrays.asList("/orcid-bio/update"), clientId, clientSecret, clientRedirectUri, true);
//Email already used by 9999-9999-9999-9990
ContactDetails contactDetails = new ContactDetails();
contactDetails.getEmail().add(new Email(user2Email));
OrcidBio orcidBio = new OrcidBio();
orcidBio.setContactDetails(contactDetails);
OrcidProfile orcidProfile = new OrcidProfile();
orcidProfile.setType(OrcidType.USER);
orcidProfile.setOrcidBio(orcidBio);
OrcidMessage orcidMessage = new OrcidMessage();
orcidMessage.setMessageVersion("1.2");
orcidMessage.setOrcidProfile(orcidProfile);
ClientResponse clientResponse = t2OAuthClient_1_2.updateBioDetailsXml(userId, orcidMessage, accessToken);
assertEquals(400, clientResponse.getStatus());
OrcidMessage errorMessage = clientResponse.getEntity(OrcidMessage.class);
assertNotNull(errorMessage);
assertNotNull(errorMessage.getErrorDesc());
assertEquals("Bad Request: Invalid incoming message: Email " + user2Email + " belongs to other user", errorMessage.getErrorDesc().getContent());
}
use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.
the class Api12MembersTest method createRecordTest.
@Test
public void createRecordTest() throws Exception {
JAXBContext context = JAXBContext.newInstance(OrcidMessage.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
OrcidMessage record = (OrcidMessage) unmarshaller.unmarshal(Api12MembersTest.class.getResourceAsStream("/samples/small_orcid_profile.xml"));
record.getOrcidProfile().setOrcidHistory(null);
String emailAddress = System.currentTimeMillis() + "_test@test.orcid.org";
Email email = new Email(emailAddress);
email.setPrimary(true);
List<Email> emails = Arrays.asList(email);
record.getOrcidProfile().getOrcidBio().getContactDetails().setEmail(emails);
String accessToken = getClientCredentialsAccessToken(ScopePathType.ORCID_PROFILE_CREATE, this.getClient1ClientId(), this.getClient1ClientSecret(), APIRequestType.MEMBER);
String orcid = Api12Helper.createRecord(accessToken, record, t2OAuthClient_1_2);
assertNotNull(orcid);
assertClientResponse401Details(t2OAuthClient_1_2.viewBioDetailsXml(orcid, null));
ClientResponse response = t2OAuthClient_1_2.viewFullDetailsXml(orcid, accessToken);
assertEquals(ClientResponse.Status.OK.getStatusCode(), response.getStatus());
OrcidMessage orcidMessage = response.getEntity(OrcidMessage.class);
assertNotNull(orcidMessage);
assertNotNull(orcidMessage.getOrcidProfile());
assertNotNull(orcidMessage.getOrcidProfile().getOrcidBio());
assertNotNull(orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails());
assertNotNull(orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getGivenNames());
assertEquals("given", orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getGivenNames().getContent());
assertNotNull(orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getFamilyName());
assertEquals("family", orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getFamilyName().getContent());
assertNotNull(orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getCreditName());
assertEquals("credit", orcidMessage.getOrcidProfile().getOrcidBio().getPersonalDetails().getCreditName().getContent());
assertEquals(1, orcidMessage.getOrcidProfile().getOrcidBio().getContactDetails().getEmail().size());
assertEquals(emailAddress, orcidMessage.getOrcidProfile().getOrcidBio().getContactDetails().getEmail().get(0).getValue());
}
Aggregations