Search in sources :

Example 56 with Employment

use of org.orcid.jaxb.model.record_v2.Employment in project ORCID-Source by ORCID.

the class ValidateV2SamplesTest method testUnmarshallRecord.

@Test
public void testUnmarshallRecord() throws SAXException, URISyntaxException {
    Record record = (Record) unmarshallFromPath("/record_2.0/samples/read_samples/record-2.0.xml", Record.class, "/record_2.0/record-2.0.xsd");
    assertNotNull(record);
    //Check activities
    assertNotNull(record.getActivitiesSummary());
    ActivitiesSummary activities = record.getActivitiesSummary();
    assertNotNull(activities.getLastModifiedDate());
    assertNotNull(activities.getEducations());
    Educations educations = activities.getEducations();
    assertNotNull(educations.getLastModifiedDate());
    assertEquals(1, educations.getSummaries().size());
    EducationSummary education = educations.getSummaries().get(0);
    assertEquals(Long.valueOf(0), education.getPutCode());
    assertEquals(Visibility.PRIVATE, education.getVisibility());
    assertEquals("education:department-name", education.getDepartmentName());
    assertEquals("education:role-title", education.getRoleTitle());
    assertNotNull(education.getEndDate());
    assertEquals("02", education.getEndDate().getDay().getValue());
    assertEquals("02", education.getEndDate().getMonth().getValue());
    assertEquals("1848", education.getEndDate().getYear().getValue());
    assertNotNull(education.getStartDate());
    assertEquals("02", education.getStartDate().getDay().getValue());
    assertEquals("02", education.getStartDate().getMonth().getValue());
    assertEquals("1848", education.getStartDate().getYear().getValue());
    assertNotNull(education.getOrganization());
    assertEquals("common:name", education.getOrganization().getName());
    assertEquals("common:city", education.getOrganization().getAddress().getCity());
    assertEquals("common:region", education.getOrganization().getAddress().getRegion());
    assertEquals(Iso3166Country.AF, education.getOrganization().getAddress().getCountry());
    assertNotNull(activities.getEmployments());
    Employments employments = activities.getEmployments();
    assertNotNull(employments.getLastModifiedDate());
    assertEquals(1, employments.getSummaries().size());
    EmploymentSummary employment = employments.getSummaries().get(0);
    assertEquals(Long.valueOf(0), employment.getPutCode());
    assertEquals(Visibility.PRIVATE, employment.getVisibility());
    assertEquals("employment:department-name", employment.getDepartmentName());
    assertEquals("employment:role-title", employment.getRoleTitle());
    assertNotNull(employment.getEndDate());
    assertEquals("02", employment.getEndDate().getDay().getValue());
    assertEquals("02", employment.getEndDate().getMonth().getValue());
    assertEquals("1848", employment.getEndDate().getYear().getValue());
    assertNotNull(employment.getStartDate());
    assertEquals("02", employment.getStartDate().getDay().getValue());
    assertEquals("02", employment.getStartDate().getMonth().getValue());
    assertEquals("1848", employment.getStartDate().getYear().getValue());
    assertNotNull(employment.getOrganization());
    assertEquals("common:name", employment.getOrganization().getName());
    assertEquals("common:city", employment.getOrganization().getAddress().getCity());
    assertEquals("common:region", employment.getOrganization().getAddress().getRegion());
    assertEquals(Iso3166Country.AF, employment.getOrganization().getAddress().getCountry());
    assertNotNull(activities.getFundings());
    Fundings fundings = activities.getFundings();
    assertNotNull(fundings.getLastModifiedDate());
    assertEquals(1, fundings.getFundingGroup().size());
    assertNotNull(fundings.getFundingGroup().get(0).getLastModifiedDate());
    assertEquals(1, fundings.getFundingGroup().get(0).getFundingSummary().size());
    assertEquals(1, fundings.getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertEquals("grant_number", fundings.getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getType());
    assertEquals("external-id-value", fundings.getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
    assertEquals(1, fundings.getFundingGroup().get(0).getFundingSummary().size());
    FundingSummary funding = fundings.getFundingGroup().get(0).getFundingSummary().get(0);
    assertEquals(Long.valueOf(0), funding.getPutCode());
    assertEquals(Visibility.PRIVATE, funding.getVisibility());
    assertNotNull(funding.getTitle());
    assertEquals("common:title", funding.getTitle().getTitle().getContent());
    assertEquals("common:translated-title", funding.getTitle().getTranslatedTitle().getContent());
    assertEquals("en", funding.getTitle().getTranslatedTitle().getLanguageCode());
    assertNotNull(funding.getExternalIdentifiers());
    assertEquals(1, funding.getExternalIdentifiers().getExternalIdentifier().size());
    assertEquals(Relationship.SELF, funding.getExternalIdentifiers().getExternalIdentifier().get(0).getRelationship());
    assertEquals("grant_number", funding.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
    assertEquals("http://tempuri.org", funding.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
    assertEquals("external-id-value", funding.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
    assertNotNull(funding.getEndDate());
    assertEquals("02", funding.getEndDate().getDay().getValue());
    assertEquals("02", funding.getEndDate().getMonth().getValue());
    assertEquals("1848", funding.getEndDate().getYear().getValue());
    assertNotNull(funding.getStartDate());
    assertEquals("02", funding.getStartDate().getDay().getValue());
    assertEquals("02", funding.getStartDate().getMonth().getValue());
    assertEquals("1848", funding.getStartDate().getYear().getValue());
    assertNotNull(funding.getOrganization());
    assertEquals("common:name", funding.getOrganization().getName());
    assertEquals("common:city", funding.getOrganization().getAddress().getCity());
    assertEquals("common:region", funding.getOrganization().getAddress().getRegion());
    assertEquals(Iso3166Country.AF, funding.getOrganization().getAddress().getCountry());
    assertNotNull(activities.getPeerReviews());
    assertNotNull(activities.getPeerReviews().getLastModifiedDate());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup());
    assertEquals(1, activities.getPeerReviews().getPeerReviewGroup().size());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier());
    assertEquals(1, activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getType());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getUrl());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getRelationship());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary());
    assertEquals(1, activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().size());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCompletionDate());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCompletionDate().getDay());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCompletionDate().getMonth());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCompletionDate().getYear());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCreatedDate());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getCreatedDate().getValue());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getDisplayIndex());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier());
    assertEquals(1, activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier().size());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier().get(0).getType());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier().get(0).getUrl());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getExternalIdentifiers().getExternalIdentifier().get(0).getRelationship());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getGroupId());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getLastModifiedDate());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization().getAddress());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization().getAddress().getCity());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization().getAddress().getCountry());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization().getAddress().getRegion());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getOrganization().getName());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getPutCode());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getSource());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getSource().retrieveSourcePath());
    assertNotNull(activities.getPeerReviews().getPeerReviewGroup().get(0).getPeerReviewSummary().get(0).getVisibility());
    assertNotNull(activities.getWorks());
    Works works = activities.getWorks();
    assertNotNull(works.getLastModifiedDate());
    assertEquals(1, works.getWorkGroup().size());
    assertNotNull(works.getWorkGroup().get(0).getIdentifiers());
    assertEquals(1, works.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertEquals(Relationship.PART_OF, works.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getRelationship());
    assertEquals("agr", works.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getType());
    assertEquals("http://orcid.org", works.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
    assertEquals("external-id-value", works.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
    assertEquals(1, works.getWorkGroup().get(0).getWorkSummary().size());
    WorkSummary work = works.getWorkGroup().get(0).getWorkSummary().get(0);
    assertEquals(Long.valueOf(0), work.getPutCode());
    assertEquals(Visibility.PRIVATE, work.getVisibility());
    assertNotNull(work.getTitle());
    assertEquals("common:title", work.getTitle().getTitle().getContent());
    assertEquals("common:translated-title", work.getTitle().getTranslatedTitle().getContent());
    assertEquals("en", work.getTitle().getTranslatedTitle().getLanguageCode());
    assertNotNull(work.getExternalIdentifiers());
    assertEquals(1, work.getExternalIdentifiers().getExternalIdentifier().size());
    assertEquals(Relationship.SELF, work.getExternalIdentifiers().getExternalIdentifier().get(0).getRelationship());
    assertEquals("agr", work.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
    assertEquals("http://tempuri.org", work.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
    assertEquals("external-id-value", work.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
    assertEquals(WorkType.ARTISTIC_PERFORMANCE, work.getType());
    assertNotNull(work.getPublicationDate());
    assertEquals("02", work.getPublicationDate().getDay().getValue());
    assertEquals("02", work.getPublicationDate().getMonth().getValue());
    assertEquals("1848", work.getPublicationDate().getYear().getValue());
    //Check biography
    Person person = record.getPerson();
    assertNotNull(person);
    assertNotNull(person.getLastModifiedDate().getValue());
    assertNotNull(person.getAddresses());
    assertNotNull(person.getAddresses().getLastModifiedDate());
    assertEquals(1, person.getAddresses().getAddress().size());
    Address address = person.getAddresses().getAddress().get(0);
    assertEquals(Long.valueOf(1), address.getPutCode());
    assertEquals(Visibility.PUBLIC, address.getVisibility());
    assertEquals(Iso3166Country.US, address.getCountry().getValue());
    assertEquals(Long.valueOf(0), address.getDisplayIndex());
    assertNotNull(address.getLastModifiedDate());
    assertNotNull(person.getBiography());
    assertEquals(Visibility.PUBLIC, person.getBiography().getVisibility());
    assertEquals("biography", person.getBiography().getContent());
    assertNotNull(person.getEmails());
    assertTrue(StringUtils.isNotBlank(person.getEmails().getPath()));
    assertNotNull(person.getEmails().getLastModifiedDate());
    assertNotNull(person.getEmails().getEmails());
    assertEquals(1, person.getEmails().getEmails().size());
    Email email = person.getEmails().getEmails().get(0);
    assertNotNull(email.getCreatedDate().getValue());
    assertEquals("user1@email.com", email.getEmail());
    assertNotNull(email.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(0), email.getPutCode());
    assertNotNull(email.getSource());
    assertEquals(Visibility.PUBLIC, email.getVisibility());
    assertNotNull(person.getExternalIdentifiers());
    assertTrue(StringUtils.isNotBlank(person.getExternalIdentifiers().getPath()));
    assertNotNull(person.getExternalIdentifiers().getLastModifiedDate().getValue());
    assertNotNull(person.getExternalIdentifiers().getExternalIdentifiers());
    assertEquals(1, person.getExternalIdentifiers().getExternalIdentifiers().size());
    PersonExternalIdentifier extId = person.getExternalIdentifiers().getExternalIdentifiers().get(0);
    assertNotNull(extId.getCreatedDate().getValue());
    assertNotNull(extId.getLastModifiedDate());
    assertEquals(Long.valueOf(0), extId.getDisplayIndex());
    assertEquals(Long.valueOf(1), extId.getPutCode());
    assertEquals(Relationship.PART_OF, extId.getRelationship());
    assertNotNull(extId.getSource());
    assertEquals("type-1", extId.getType());
    assertEquals("http://url.com/1", extId.getUrl().getValue());
    assertEquals("value-1", extId.getValue());
    assertEquals(Visibility.PUBLIC, extId.getVisibility());
    assertNotNull(person.getKeywords());
    assertTrue(StringUtils.isNotBlank(person.getKeywords().getPath()));
    assertNotNull(person.getKeywords().getLastModifiedDate().getValue());
    assertNotNull(person.getKeywords().getKeywords());
    assertEquals(1, person.getKeywords().getKeywords().size());
    Keyword keyword = person.getKeywords().getKeywords().get(0);
    assertEquals("keyword1", keyword.getContent());
    assertNotNull(keyword.getCreatedDate().getValue());
    assertNotNull(keyword.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(0), keyword.getDisplayIndex());
    assertEquals(Long.valueOf(1), keyword.getPutCode());
    assertNotNull(keyword.getSource());
    assertEquals(Visibility.PUBLIC, keyword.getVisibility());
    assertNotNull(person.getOtherNames());
    assertTrue(StringUtils.isNotBlank(person.getOtherNames().getPath()));
    assertNotNull(person.getOtherNames().getLastModifiedDate().getValue());
    assertNotNull(person.getOtherNames().getOtherNames());
    assertEquals(1, person.getOtherNames().getOtherNames().size());
    OtherName otherName = person.getOtherNames().getOtherNames().get(0);
    assertEquals("other-name-1", otherName.getContent());
    assertNotNull(otherName.getCreatedDate().getValue());
    assertNotNull(otherName.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(0), otherName.getDisplayIndex());
    assertEquals(Long.valueOf(1), otherName.getPutCode());
    assertNotNull(otherName.getSource());
    assertEquals(Visibility.PUBLIC, otherName.getVisibility());
    assertNotNull(person.getResearcherUrls());
    assertTrue(StringUtils.isNotBlank(person.getResearcherUrls().getPath()));
    assertNotNull(person.getResearcherUrls().getLastModifiedDate().getValue());
    assertNotNull(person.getResearcherUrls().getResearcherUrls().size());
    ResearcherUrl rUrl = person.getResearcherUrls().getResearcherUrls().get(0);
    assertNotNull(rUrl.getCreatedDate().getValue());
    assertEquals(Long.valueOf(0), rUrl.getDisplayIndex());
    assertNotNull(rUrl.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(1248), rUrl.getPutCode());
    assertNotNull(rUrl.getSource());
    assertEquals("http://url.com/", rUrl.getUrl().getValue());
    assertEquals("url-name-1", rUrl.getUrlName());
    assertEquals(Visibility.PUBLIC, rUrl.getVisibility());
    assertNotNull(person.getName());
    Name name = person.getName();
    assertTrue(StringUtils.isNotBlank(name.getPath()));
    assertEquals("credit-name", name.getCreditName().getContent());
    assertEquals("family-name", name.getFamilyName().getContent());
    assertEquals("give-names", name.getGivenNames().getContent());
    assertNotNull(name.getLastModifiedDate().getValue());
    assertEquals(Visibility.PUBLIC, name.getVisibility());
}
Also used : Email(org.orcid.jaxb.model.record_v2.Email) Address(org.orcid.jaxb.model.record_v2.Address) Keyword(org.orcid.jaxb.model.record_v2.Keyword) Fundings(org.orcid.jaxb.model.record.summary_v2.Fundings) OtherName(org.orcid.jaxb.model.record_v2.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.record_v2.PersonExternalIdentifier) ActivitiesSummary(org.orcid.jaxb.model.record.summary_v2.ActivitiesSummary) CreditName(org.orcid.jaxb.model.record_v2.CreditName) OtherName(org.orcid.jaxb.model.record_v2.OtherName) Name(org.orcid.jaxb.model.record_v2.Name) Employments(org.orcid.jaxb.model.record.summary_v2.Employments) WorkSummary(org.orcid.jaxb.model.record.summary_v2.WorkSummary) EducationSummary(org.orcid.jaxb.model.record.summary_v2.EducationSummary) Educations(org.orcid.jaxb.model.record.summary_v2.Educations) FundingSummary(org.orcid.jaxb.model.record.summary_v2.FundingSummary) EmploymentSummary(org.orcid.jaxb.model.record.summary_v2.EmploymentSummary) Record(org.orcid.jaxb.model.record_v2.Record) ResearcherUrl(org.orcid.jaxb.model.record_v2.ResearcherUrl) Works(org.orcid.jaxb.model.record.summary_v2.Works) Person(org.orcid.jaxb.model.record_v2.Person) Test(org.junit.Test)

Example 57 with Employment

use of org.orcid.jaxb.model.record_v2.Employment in project ORCID-Source by ORCID.

the class MemberV2ApiServiceDelegatorImpl method createEmployment.

@Override
public Response createEmployment(String orcid, Employment employment) {
    orcidSecurityManager.checkClientAccessAndScopes(orcid, ScopePathType.AFFILIATIONS_CREATE);
    clearSource(employment);
    Employment e = affiliationsManager.createEmploymentAffiliation(orcid, employment, true);
    sourceUtils.setSourceName(e);
    try {
        return Response.created(new URI(String.valueOf(e.getPutCode()))).build();
    } catch (URISyntaxException ex) {
        throw new RuntimeException(localeManager.resolveMessage("apiError.createemployment_response.exception"), ex);
    }
}
Also used : Employment(org.orcid.jaxb.model.record_v2.Employment) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI)

Example 58 with Employment

use of org.orcid.jaxb.model.record_v2.Employment in project ORCID-Source by ORCID.

the class MemberV2ApiServiceDelegatorImpl method viewEmployment.

@Override
public Response viewEmployment(String orcid, Long putCode) {
    Employment e = affiliationsManagerReadOnly.getEmploymentAffiliation(orcid, putCode);
    orcidSecurityManager.checkAndFilter(orcid, e, ScopePathType.AFFILIATIONS_READ_LIMITED);
    ActivityUtils.setPathToActivity(e, orcid);
    sourceUtils.setSourceName(e);
    return Response.ok(e).build();
}
Also used : Employment(org.orcid.jaxb.model.record_v2.Employment)

Example 59 with Employment

use of org.orcid.jaxb.model.record_v2.Employment in project ORCID-Source by ORCID.

the class AffiliationsManagerTest method testAddEmploymentToUnclaimedRecordPreserveEmploymentVisibility.

@Test
public void testAddEmploymentToUnclaimedRecordPreserveEmploymentVisibility() {
    when(sourceManager.retrieveSourceEntity()).thenReturn(new SourceEntity(new ClientDetailsEntity(CLIENT_1_ID)));
    Employment employment = getEmployment();
    employment = affiliationsManager.createEmploymentAffiliation(unclaimedOrcid, employment, true);
    employment = affiliationsManager.getEmploymentAffiliation(unclaimedOrcid, employment.getPutCode());
    assertNotNull(employment);
    assertEquals(Visibility.PUBLIC, employment.getVisibility());
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) Employment(org.orcid.jaxb.model.record_v2.Employment) SourceEntity(org.orcid.persistence.jpa.entities.SourceEntity) Test(org.junit.Test) BaseTest(org.orcid.core.BaseTest)

Example 60 with Employment

use of org.orcid.jaxb.model.record_v2.Employment in project ORCID-Source by ORCID.

the class MemberV2Test method createViewUpdateAndDeleteEmployment.

@Test
public void createViewUpdateAndDeleteEmployment() throws JSONException, InterruptedException, URISyntaxException {
    Employment employment = (Employment) unmarshallFromPath("/record_2.0_rc1/samples/employment-2.0_rc1.xml", Employment.class);
    employment.setPutCode(null);
    employment.setVisibility(Visibility.PUBLIC);
    String accessToken = getAccessToken();
    ClientResponse postResponse = memberV2ApiClient.createEmploymentXml(this.getUser1OrcidId(), employment, accessToken);
    assertNotNull(postResponse);
    assertEquals(Response.Status.CREATED.getStatusCode(), postResponse.getStatus());
    String locationPath = postResponse.getLocation().getPath();
    assertTrue("Location header path should match pattern, but was " + locationPath, locationPath.matches(".*/v2.0_rc1/" + this.getUser1OrcidId() + "/employment/\\d+"));
    ClientResponse getResponse = memberV2ApiClient.viewLocationXml(postResponse.getLocation(), accessToken);
    assertEquals(Response.Status.OK.getStatusCode(), getResponse.getStatus());
    Employment gotEmployment = getResponse.getEntity(Employment.class);
    assertEquals("affiliation:department-name", gotEmployment.getDepartmentName());
    assertEquals("affiliation:role-title", gotEmployment.getRoleTitle());
    gotEmployment.setDepartmentName("updated dept. name");
    gotEmployment.setRoleTitle("updated role title");
    //Save the original visibility
    Visibility originalVisibility = gotEmployment.getVisibility();
    Visibility updatedVisibility = Visibility.PRIVATE.equals(originalVisibility) ? Visibility.LIMITED : Visibility.PRIVATE;
    //Verify you cant update the visibility
    gotEmployment.setVisibility(updatedVisibility);
    ClientResponse putResponse = memberV2ApiClient.updateLocationXml(postResponse.getLocation(), accessToken, gotEmployment);
    assertEquals(Response.Status.FORBIDDEN.getStatusCode(), putResponse.getStatus());
    OrcidError error = putResponse.getEntity(OrcidError.class);
    assertNotNull(error);
    assertEquals(Integer.valueOf(9035), error.getErrorCode());
    //Set the visibility again to the initial one
    gotEmployment.setVisibility(originalVisibility);
    putResponse = memberV2ApiClient.updateLocationXml(postResponse.getLocation(), accessToken, gotEmployment);
    assertEquals(Response.Status.OK.getStatusCode(), putResponse.getStatus());
    ClientResponse getAfterUpdateResponse = memberV2ApiClient.viewLocationXml(postResponse.getLocation(), accessToken);
    assertEquals(Response.Status.OK.getStatusCode(), getAfterUpdateResponse.getStatus());
    Employment gotAfterUpdateEmployment = getAfterUpdateResponse.getEntity(Employment.class);
    assertEquals("updated dept. name", gotAfterUpdateEmployment.getDepartmentName());
    assertEquals("updated role title", gotAfterUpdateEmployment.getRoleTitle());
    ClientResponse deleteResponse = memberV2ApiClient.deleteEmploymentXml(this.getUser1OrcidId(), gotEmployment.getPutCode(), accessToken);
    assertEquals(Response.Status.NO_CONTENT.getStatusCode(), deleteResponse.getStatus());
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) OrcidError(org.orcid.jaxb.model.error_rc1.OrcidError) Employment(org.orcid.jaxb.model.record_rc1.Employment) Visibility(org.orcid.jaxb.model.common_rc1.Visibility) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)43 Employment (org.orcid.jaxb.model.record_v2.Employment)38 ClientResponse (com.sun.jersey.api.client.ClientResponse)22 Response (javax.ws.rs.core.Response)14 DBUnitTest (org.orcid.test.DBUnitTest)14 Education (org.orcid.jaxb.model.record_v2.Education)10 OtherName (org.orcid.jaxb.model.record_v2.OtherName)9 ResearcherUrl (org.orcid.jaxb.model.record_v2.ResearcherUrl)9 Employment (org.orcid.jaxb.model.record_rc1.Employment)8 Funding (org.orcid.jaxb.model.record_v2.Funding)8 Work (org.orcid.jaxb.model.record_v2.Work)8 ArrayList (java.util.ArrayList)6 EmploymentSummary (org.orcid.jaxb.model.record.summary_v2.EmploymentSummary)6 Address (org.orcid.jaxb.model.record_v2.Address)6 Keyword (org.orcid.jaxb.model.record_v2.Keyword)6 PersonExternalIdentifier (org.orcid.jaxb.model.record_v2.PersonExternalIdentifier)6 ActivitiesSummary (org.orcid.jaxb.model.record.summary_v2.ActivitiesSummary)5 EducationSummary (org.orcid.jaxb.model.record.summary_v2.EducationSummary)5 FundingSummary (org.orcid.jaxb.model.record.summary_v2.FundingSummary)5 WorkSummary (org.orcid.jaxb.model.record.summary_v2.WorkSummary)5