use of org.orcid.jaxb.model.record.summary_rc3.WorkGroup in project ORCID-Source by ORCID.
the class ValidateV2SamplesTest method testUnmarshallWorks.
@Test
public void testUnmarshallWorks() throws JAXBException, SAXException, URISyntaxException {
Works works = (Works) unmarshallFromPath("/record_2.0/samples/read_samples/works-2.0.xml", Works.class, "/record_2.0/activities-2.0.xsd");
assertNotNull(works);
assertNotNull(works.getLastModifiedDate());
assertNotNull(works.getLastModifiedDate().getValue());
assertEquals(3, works.getWorkGroup().size());
boolean foundWorkWithNoExtIds = false;
for (WorkGroup group : works.getWorkGroup()) {
assertNotNull(group.getLastModifiedDate().getValue());
assertNotNull(group.getIdentifiers().getExternalIdentifier());
if (group.getIdentifiers().getExternalIdentifier().isEmpty()) {
WorkSummary summary = group.getWorkSummary().get(0);
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("doi", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("https://doi.org/123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3356", summary.getPath());
assertEquals("03", summary.getPublicationDate().getDay().getValue());
assertEquals("03", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 0", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.CONFERENCE_PAPER, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
foundWorkWithNoExtIds = true;
} else {
assertEquals(1, group.getIdentifiers().getExternalIdentifier().size());
ExternalID extId = group.getIdentifiers().getExternalIdentifier().get(0);
if (extId.getType().equals("arxiv")) {
assertEquals(Relationship.SELF, extId.getRelationship());
assertEquals("http://arxiv.org/abs/123456", extId.getUrl().getValue());
assertEquals("123456", extId.getValue());
} else if (extId.getType().equals("bibcode")) {
assertEquals(Relationship.SELF, extId.getRelationship());
assertEquals("http://adsabs.harvard.edu/abs/4567", extId.getUrl().getValue());
assertEquals("4567", extId.getValue());
} else {
fail("Invalid ext id type " + extId.getType());
}
assertEquals(1, group.getWorkSummary().size());
WorkSummary summary = group.getWorkSummary().get(0);
if (summary.getPutCode().equals(Long.valueOf(3357))) {
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("arxiv", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("http://arxiv.org/abs/123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3357", summary.getPath());
assertEquals("02", summary.getPublicationDate().getDay().getValue());
assertEquals("02", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 1", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.CONFERENCE_PAPER, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
} else if (summary.getPutCode().equals(Long.valueOf(3358))) {
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("bibcode", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("http://adsabs.harvard.edu/abs/4567", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("4567", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3358", summary.getPath());
assertEquals("03", summary.getPublicationDate().getDay().getValue());
assertEquals("03", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 2", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.JOURNAL_ARTICLE, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
} else {
fail("Invalid put code " + summary.getPutCode());
}
}
}
assertTrue(foundWorkWithNoExtIds);
}
use of org.orcid.jaxb.model.record.summary_rc3.WorkGroup in project ORCID-Source by ORCID.
the class ValidateV2_1SamplesTest method testUnmarshallWorks.
@Test
public void testUnmarshallWorks() throws JAXBException, SAXException, URISyntaxException {
Works works = (Works) unmarshallFromPath("/record_2.1/samples/read_samples/works-2.1.xml", Works.class, "/record_2.1/activities-2.1.xsd");
assertNotNull(works);
assertNotNull(works.getLastModifiedDate());
assertNotNull(works.getLastModifiedDate().getValue());
assertEquals(3, works.getWorkGroup().size());
boolean foundWorkWithNoExtIds = false;
for (WorkGroup group : works.getWorkGroup()) {
assertNotNull(group.getLastModifiedDate().getValue());
assertNotNull(group.getIdentifiers().getExternalIdentifier());
if (group.getIdentifiers().getExternalIdentifier().isEmpty()) {
WorkSummary summary = group.getWorkSummary().get(0);
validateSourceInHttps(summary.getSource());
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("doi", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("https://doi.org/123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3356", summary.getPath());
assertEquals("03", summary.getPublicationDate().getDay().getValue());
assertEquals("03", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 0", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.CONFERENCE_PAPER, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
foundWorkWithNoExtIds = true;
} else {
assertEquals(1, group.getIdentifiers().getExternalIdentifier().size());
ExternalID extId = group.getIdentifiers().getExternalIdentifier().get(0);
if (extId.getType().equals("arxiv")) {
assertEquals(Relationship.SELF, extId.getRelationship());
assertEquals("http://arxiv.org/abs/123456", extId.getUrl().getValue());
assertEquals("123456", extId.getValue());
} else if (extId.getType().equals("bibcode")) {
assertEquals(Relationship.SELF, extId.getRelationship());
assertEquals("http://adsabs.harvard.edu/abs/4567", extId.getUrl().getValue());
assertEquals("4567", extId.getValue());
} else {
fail("Invalid ext id type " + extId.getType());
}
assertEquals(1, group.getWorkSummary().size());
WorkSummary summary = group.getWorkSummary().get(0);
validateSourceInHttps(summary.getSource());
if (summary.getPutCode().equals(Long.valueOf(3357))) {
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("arxiv", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("http://arxiv.org/abs/123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("123456", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3357", summary.getPath());
assertEquals("02", summary.getPublicationDate().getDay().getValue());
assertEquals("02", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 1", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.CONFERENCE_PAPER, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
} else if (summary.getPutCode().equals(Long.valueOf(3358))) {
assertEquals("1", summary.getDisplayIndex());
assertEquals(1, summary.getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("bibcode", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getType());
assertEquals("http://adsabs.harvard.edu/abs/4567", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getUrl().getValue());
assertEquals("4567", summary.getExternalIdentifiers().getExternalIdentifier().get(0).getValue());
assertEquals("/8888-8888-8888-8880/work/3358", summary.getPath());
assertEquals("03", summary.getPublicationDate().getDay().getValue());
assertEquals("03", summary.getPublicationDate().getMonth().getValue());
assertEquals("2017", summary.getPublicationDate().getYear().getValue());
assertEquals("Work # 2", summary.getTitle().getTitle().getContent());
assertEquals(WorkType.JOURNAL_ARTICLE, summary.getType());
assertEquals(Visibility.PUBLIC, summary.getVisibility());
} else {
fail("Invalid put code " + summary.getPutCode());
}
}
}
assertTrue(foundWorkWithNoExtIds);
}
use of org.orcid.jaxb.model.record.summary_rc3.WorkGroup in project ORCID-Source by ORCID.
the class OrcidSecurityManagerImpl method checkAndFilter.
@Override
public void checkAndFilter(String orcid, ActivitiesSummary activities) {
if (activities == null) {
return;
}
// Check the token
isMyToken(orcid);
// Educations
if (activities.getEducations() != null) {
checkAndFilter(orcid, activities.getEducations().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
}
// Employments
if (activities.getEmployments() != null) {
checkAndFilter(orcid, activities.getEmployments().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
}
// Funding
if (activities.getFundings() != null) {
Iterator<FundingGroup> groupIt = activities.getFundings().getFundingGroup().iterator();
while (groupIt.hasNext()) {
FundingGroup group = groupIt.next();
// Filter the list of elements
checkAndFilter(orcid, group.getFundingSummary(), READ_FUNDING_REQUIRED_SCOPE, true);
// Clean external identifiers
if (group.getFundingSummary().isEmpty()) {
groupIt.remove();
} else {
filterExternalIdentifiers(group);
}
}
}
// PeerReviews
if (activities.getPeerReviews() != null) {
Iterator<PeerReviewGroup> groupIt = activities.getPeerReviews().getPeerReviewGroup().iterator();
while (groupIt.hasNext()) {
PeerReviewGroup group = groupIt.next();
// Filter the list of elements
checkAndFilter(orcid, group.getPeerReviewSummary(), READ_PEER_REVIEWS_REQUIRED_SCOPE, true);
if (group.getPeerReviewSummary().isEmpty()) {
groupIt.remove();
}
}
}
// Works
if (activities.getWorks() != null) {
Iterator<WorkGroup> groupIt = activities.getWorks().getWorkGroup().iterator();
while (groupIt.hasNext()) {
WorkGroup group = groupIt.next();
// Filter the list of elements
checkAndFilter(orcid, group.getWorkSummary(), READ_WORKS_REQUIRED_SCOPE, true);
// Clean external identifiers
if (group.getWorkSummary().isEmpty()) {
groupIt.remove();
} else {
filterExternalIdentifiers(group);
}
}
}
}
use of org.orcid.jaxb.model.record.summary_rc3.WorkGroup in project ORCID-Source by ORCID.
the class PublicV2Test method cleanActivities.
public void cleanActivities() throws JSONException, InterruptedException, URISyntaxException {
// Remove all activities
String token = getAccessToken();
ClientResponse activitiesResponse = memberV2ApiClient.viewActivities(getUser1OrcidId(), token);
assertNotNull(activitiesResponse);
ActivitiesSummary summary = activitiesResponse.getEntity(ActivitiesSummary.class);
assertNotNull(summary);
if (summary.getEducations() != null && !summary.getEducations().getSummaries().isEmpty()) {
for (EducationSummary education : summary.getEducations().getSummaries()) {
memberV2ApiClient.deleteEducationXml(getUser1OrcidId(), education.getPutCode(), token);
}
}
if (summary.getEmployments() != null && !summary.getEmployments().getSummaries().isEmpty()) {
for (EmploymentSummary employment : summary.getEmployments().getSummaries()) {
memberV2ApiClient.deleteEmploymentXml(getUser1OrcidId(), employment.getPutCode(), token);
}
}
if (summary.getFundings() != null && !summary.getFundings().getFundingGroup().isEmpty()) {
for (FundingGroup group : summary.getFundings().getFundingGroup()) {
for (FundingSummary funding : group.getFundingSummary()) {
memberV2ApiClient.deleteFundingXml(getUser1OrcidId(), funding.getPutCode(), token);
}
}
}
if (summary.getWorks() != null && !summary.getWorks().getWorkGroup().isEmpty()) {
for (WorkGroup group : summary.getWorks().getWorkGroup()) {
for (WorkSummary work : group.getWorkSummary()) {
memberV2ApiClient.deleteWorkXml(getUser1OrcidId(), work.getPutCode(), token);
}
}
}
if (summary.getPeerReviews() != null && !summary.getPeerReviews().getPeerReviewGroup().isEmpty()) {
for (PeerReviewGroup group : summary.getPeerReviews().getPeerReviewGroup()) {
for (PeerReviewSummary peerReview : group.getPeerReviewSummary()) {
memberV2ApiClient.deletePeerReviewXml(getUser1OrcidId(), peerReview.getPutCode(), token);
}
}
}
}
use of org.orcid.jaxb.model.record.summary_rc3.WorkGroup in project ORCID-Source by ORCID.
the class PublicV2Test method checkPublicActivities.
public void checkPublicActivities(String readPublicToken) throws JSONException, InterruptedException, URISyntaxException {
createActivities();
ClientResponse activitiesResponse = null;
if (readPublicToken != null) {
activitiesResponse = publicV2ApiClient.viewActivities(getUser1OrcidId(), readPublicToken);
} else {
activitiesResponse = publicV2ApiClient.viewActivities(getUser1OrcidId());
}
assertNotNull(activitiesResponse);
ActivitiesSummary summary = activitiesResponse.getEntity(ActivitiesSummary.class);
assertNotNull(summary);
assertNotNull("There are no educations, please verify users default visibility is public", summary.getEducations());
assertFalse(summary.getEducations().getSummaries().isEmpty());
boolean found0 = false, found3 = false;
for (EducationSummary education : summary.getEducations().getSummaries()) {
if (education.getDepartmentName() != null) {
if (education.getDepartmentName().equals("Education # 0")) {
found0 = true;
} else if (education.getDepartmentName().equals("Education # 3")) {
found3 = true;
}
}
}
assertTrue("One of the educations was not found: 0(" + found0 + ") 3(" + found3 + "), please verify users default visibility is public", found0 == found3 == true);
assertNotNull("There are no employment, please verify users default visibility is public", summary.getEmployments());
assertFalse(summary.getEmployments().getSummaries().isEmpty());
found0 = found3 = false;
for (EmploymentSummary employment : summary.getEmployments().getSummaries()) {
if (employment.getDepartmentName() != null) {
if (employment.getDepartmentName().equals("Employment # 0")) {
found0 = true;
} else if (employment.getDepartmentName().equals("Employment # 3")) {
found3 = true;
}
}
}
assertTrue("One of the employments was not found: 0(" + found0 + ") 3(" + found3 + "), please verify users default visibility is public", found0 == found3 == true);
assertNotNull(summary.getFundings());
found0 = found3 = false;
for (FundingGroup group : summary.getFundings().getFundingGroup()) {
for (FundingSummary funding : group.getFundingSummary()) {
if (funding.getTitle() != null && funding.getTitle().getTitle() != null) {
if (funding.getTitle().getTitle().getContent().equals("Funding # 0")) {
found0 = true;
} else if (funding.getTitle().getTitle().getContent().equals("Funding # 3")) {
found3 = true;
}
}
}
}
assertTrue("One of the fundings was not found: 0(" + found0 + ") 3(" + found3 + "), please verify users default visibility is public", found0 == found3 == true);
assertNotNull(summary.getWorks());
found0 = found3 = false;
for (WorkGroup group : summary.getWorks().getWorkGroup()) {
for (WorkSummary work : group.getWorkSummary()) {
if (work.getTitle().getTitle().getContent().equals("Work # 0")) {
found0 = true;
} else if (work.getTitle().getTitle().getContent().equals("Work # 3")) {
found3 = true;
}
}
}
assertTrue("One of the works was not found: 0(" + found0 + ") 3(" + found3 + "), please verify users default visibility is public", found0 == found3 == true);
assertNotNull(summary.getPeerReviews());
found0 = found3 = false;
for (PeerReviewGroup group : summary.getPeerReviews().getPeerReviewGroup()) {
for (PeerReviewSummary peerReview : group.getPeerReviewSummary()) {
if (peerReview.getCompletionDate() != null && peerReview.getCompletionDate().getYear() != null) {
if (peerReview.getCompletionDate().getYear().getValue().equals("1000")) {
found0 = true;
} else if (peerReview.getCompletionDate().getYear().getValue().equals("4000")) {
found3 = true;
}
}
}
}
assertTrue("One of the peer reviews was not found: 0(" + found0 + ") 3(" + found3 + "), please verify users default visibility is public", found0 == found3 == true);
}
Aggregations