use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class GetMyDataControllerTest method before.
@Before
public void before() {
MockitoAnnotations.initMocks(this);
TargetProxyHelper.injectIntoProxy(getMyDataController, "batchSize", 50);
TargetProxyHelper.injectIntoProxy(getMyDataController, "personDetailsManager", mockPersonDetailsManager);
TargetProxyHelper.injectIntoProxy(getMyDataController, "workEntityCacheManager", mockWorkEntityCacheManager);
TargetProxyHelper.injectIntoProxy(getMyDataController, "affiliationManagerReadOnly", mockAffiliationManagerReadOnly);
TargetProxyHelper.injectIntoProxy(getMyDataController, "profileFundingManagerReadOnly", mockProfileFundingManagerReadOnly);
TargetProxyHelper.injectIntoProxy(getMyDataController, "peerReviewManagerReadOnly", mockPeerReviewManagerReadOnly);
TargetProxyHelper.injectIntoProxy(getMyDataController, "workManagerReadOnly", mockWorkManagerReadOnly);
when(mockPersonDetailsManager.getPersonDetails(anyString())).thenAnswer(new Answer<Person>() {
@Override
public Person answer(InvocationOnMock invocation) throws Throwable {
Person p = new Person();
p.setBiography(new Biography("Biography", Visibility.LIMITED));
Name name = new Name();
name.setVisibility(Visibility.LIMITED);
name.setFamilyName(new FamilyName("Family Name"));
name.setGivenNames(new GivenNames("Given Names"));
name.setCreditName(new CreditName("Credit Name"));
p.setName(name);
return p;
}
});
when(mockAffiliationManagerReadOnly.getAffiliations(anyString())).thenAnswer(new Answer<List<Affiliation>>() {
@Override
public List<Affiliation> answer(InvocationOnMock invocation) throws Throwable {
List<Affiliation> affs = new ArrayList<Affiliation>();
FuzzyDate startDate = new FuzzyDate(new Year(2018), new Month(1), new Day(1));
FuzzyDate endDate = new FuzzyDate(new Year(2018), new Month(12), new Day(31));
Distinction d = new Distinction();
d.setDepartmentName("distinction");
d.setEndDate(endDate);
d.setStartDate(startDate);
d.setPutCode(1L);
setOrg(d);
affs.add(d);
Education e = new Education();
e.setDepartmentName("education");
e.setEndDate(endDate);
e.setStartDate(startDate);
e.setPutCode(2L);
setOrg(e);
affs.add(e);
Employment emp = new Employment();
emp.setDepartmentName("employment");
emp.setEndDate(endDate);
emp.setStartDate(startDate);
emp.setPutCode(3L);
setOrg(emp);
affs.add(emp);
InvitedPosition i = new InvitedPosition();
i.setDepartmentName("invited position");
i.setEndDate(endDate);
i.setStartDate(startDate);
i.setPutCode(4L);
setOrg(i);
affs.add(i);
Membership m = new Membership();
m.setDepartmentName("membership");
m.setEndDate(endDate);
m.setStartDate(startDate);
m.setPutCode(5L);
setOrg(m);
affs.add(m);
Qualification q = new Qualification();
q.setDepartmentName("qualification");
q.setEndDate(endDate);
q.setStartDate(startDate);
q.setPutCode(6L);
setOrg(q);
affs.add(q);
Service s = new Service();
s.setDepartmentName("service");
s.setEndDate(endDate);
s.setStartDate(startDate);
s.setPutCode(7L);
setOrg(s);
affs.add(s);
return affs;
}
});
when(mockProfileFundingManagerReadOnly.getFundingList(anyString())).thenAnswer(new Answer<List<Funding>>() {
@Override
public List<Funding> answer(InvocationOnMock invocation) throws Throwable {
List<Funding> fundings = new ArrayList<Funding>();
Funding f = new Funding();
Amount a = new Amount();
a.setContent("1000");
a.setCurrencyCode("$");
f.setAmount(a);
FundingTitle t = new FundingTitle();
t.setTitle(new Title("title"));
f.setTitle(t);
setOrg(f);
f.setPutCode(1L);
fundings.add(f);
return fundings;
}
});
when(mockPeerReviewManagerReadOnly.findPeerReviews(anyString())).thenAnswer(new Answer<List<PeerReview>>() {
@Override
public List<PeerReview> answer(InvocationOnMock invocation) throws Throwable {
List<PeerReview> peerReviews = new ArrayList<PeerReview>();
PeerReview p = new PeerReview();
setOrg(p);
p.setPutCode(1L);
peerReviews.add(p);
return peerReviews;
}
});
when(mockWorkManagerReadOnly.findWorks(anyString(), any())).thenAnswer(new Answer<List<Work>>() {
@Override
public List<Work> answer(InvocationOnMock invocation) throws Throwable {
List<Work> works = new ArrayList<Work>();
Work w = new Work();
WorkTitle t = new WorkTitle();
t.setTitle(new Title("title"));
w.setPutCode(1L);
works.add(w);
return works;
}
});
when(mockWorkManagerReadOnly.getLastModified(anyString())).thenReturn(0L);
when(mockWorkEntityCacheManager.retrieveWorkLastModifiedList(anyString(), anyLong())).thenAnswer(new Answer<List<WorkLastModifiedEntity>>() {
@Override
public List<WorkLastModifiedEntity> answer(InvocationOnMock invocation) throws Throwable {
List<WorkLastModifiedEntity> works = new ArrayList<WorkLastModifiedEntity>();
WorkLastModifiedEntity w = new WorkLastModifiedEntity();
w.setId(1L);
w.setOrcid(ORCID);
w.setLastModified(new Date());
works.add(w);
return works;
}
});
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class GetMyDataControllerTest method testDownload.
@Test
public void testDownload() throws JAXBException, IOException {
SecurityContextHolder.getContext().setAuthentication(getAuthentication());
MockHttpServletResponse response = new MockHttpServletResponse();
getMyDataController.getMyData(response);
byte[] content = response.getContentAsByteArray();
ByteArrayInputStream is = new ByteArrayInputStream(content);
ZipInputStream zip = new ZipInputStream(is);
ZipEntry zipEntry = zip.getNextEntry();
JAXBContext jaxbContext1 = JAXBContext.newInstance(Person.class, Distinction.class, Education.class, Employment.class, InvitedPosition.class, Membership.class, Qualification.class, Service.class, Funding.class, PeerReview.class, Work.class);
Unmarshaller u = jaxbContext1.createUnmarshaller();
boolean personFound = false;
boolean distinctionFound = false;
boolean educationFound = false;
boolean employmentFound = false;
boolean invitedPositionFound = false;
boolean membershipFound = false;
boolean qualificationFound = false;
boolean serviceFound = false;
boolean fundingFound = false;
boolean peerReviewFound = false;
boolean workFound = false;
while (zipEntry != null) {
String fileName = zipEntry.getName();
byte[] buffer = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
int len;
while ((len = zip.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
if (fileName.equals("person.xml")) {
Person x = (Person) u.unmarshal(in);
assertNotNull(x);
assertEquals("Biography", x.getBiography().getContent());
assertEquals(Visibility.LIMITED, x.getBiography().getVisibility());
personFound = true;
} else if (fileName.startsWith("affiliations/distinctions")) {
assertEquals("affiliations/distinctions/1.xml", fileName);
Distinction x = (Distinction) u.unmarshal(in);
assertNotNull(x);
assertEquals("distinction", x.getDepartmentName());
assertEquals(Long.valueOf(1), x.getPutCode());
validateOrg(x);
distinctionFound = true;
} else if (fileName.startsWith("affiliations/educations")) {
assertEquals("affiliations/educations/2.xml", fileName);
Education x = (Education) u.unmarshal(in);
assertNotNull(x);
assertEquals("education", x.getDepartmentName());
assertEquals(Long.valueOf(2), x.getPutCode());
validateOrg(x);
educationFound = true;
} else if (fileName.startsWith("affiliations/employments")) {
assertEquals("affiliations/employments/3.xml", fileName);
Employment x = (Employment) u.unmarshal(in);
assertNotNull(x);
assertEquals("employment", x.getDepartmentName());
assertEquals(Long.valueOf(3), x.getPutCode());
validateOrg(x);
employmentFound = true;
} else if (fileName.startsWith("affiliations/invited_positions")) {
assertEquals("affiliations/invited_positions/4.xml", fileName);
InvitedPosition x = (InvitedPosition) u.unmarshal(in);
assertNotNull(x);
assertEquals("invited position", x.getDepartmentName());
assertEquals(Long.valueOf(4), x.getPutCode());
validateOrg(x);
invitedPositionFound = true;
} else if (fileName.startsWith("affiliations/memberships")) {
assertEquals("affiliations/memberships/5.xml", fileName);
Membership x = (Membership) u.unmarshal(in);
assertNotNull(x);
assertEquals("membership", x.getDepartmentName());
assertEquals(Long.valueOf(5), x.getPutCode());
validateOrg(x);
membershipFound = true;
} else if (fileName.startsWith("affiliations/qualifications")) {
assertEquals("affiliations/qualifications/6.xml", fileName);
Qualification x = (Qualification) u.unmarshal(in);
assertNotNull(x);
assertEquals("qualification", x.getDepartmentName());
assertEquals(Long.valueOf(6), x.getPutCode());
validateOrg(x);
qualificationFound = true;
} else if (fileName.startsWith("affiliations/services")) {
assertEquals("affiliations/services/7.xml", fileName);
Service x = (Service) u.unmarshal(in);
assertNotNull(x);
assertEquals("service", x.getDepartmentName());
assertEquals(Long.valueOf(7), x.getPutCode());
validateOrg(x);
serviceFound = true;
} else if (fileName.startsWith("fundings")) {
assertEquals("fundings/1.xml", fileName);
Funding x = (Funding) u.unmarshal(in);
assertNotNull(x);
assertEquals("title", x.getTitle().getTitle().getContent());
assertEquals("1000", x.getAmount().getContent());
assertEquals("$", x.getAmount().getCurrencyCode());
assertEquals(Long.valueOf(1), x.getPutCode());
validateOrg(x);
fundingFound = true;
} else if (fileName.startsWith("peer_reviews")) {
assertEquals("peer_reviews/1.xml", fileName);
PeerReview x = (PeerReview) u.unmarshal(in);
assertNotNull(x);
validateOrg(x);
assertEquals(Long.valueOf(1), x.getPutCode());
peerReviewFound = true;
} else if (fileName.startsWith("works")) {
assertEquals("works/1.xml", fileName);
Work x = (Work) u.unmarshal(in);
assertNotNull(x);
assertEquals(Long.valueOf(1), x.getPutCode());
workFound = true;
}
zipEntry = zip.getNextEntry();
}
assertTrue(personFound);
assertTrue(distinctionFound);
assertTrue(educationFound);
assertTrue(employmentFound);
assertTrue(invitedPositionFound);
assertTrue(membershipFound);
assertTrue(qualificationFound);
assertTrue(serviceFound);
assertTrue(fundingFound);
assertTrue(peerReviewFound);
assertTrue(workFound);
zip.closeEntry();
zip.close();
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginator method getWorksPage.
public WorksPage getWorksPage(String orcid, int offset, boolean justPublic, String sort, boolean sortAsc) {
Works works = worksCacheManager.getGroupedWorks(orcid);
List<org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup> filteredGroups = filter(works, justPublic);
filteredGroups = sort(filteredGroups, sort, sortAsc);
WorksPage worksPage = new WorksPage();
worksPage.setTotalGroups(filteredGroups.size());
List<WorkGroup> workGroups = new ArrayList<>();
for (int i = offset; i < Math.min(offset + PAGE_SIZE, filteredGroups.size()); i++) {
org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup group = filteredGroups.get(i);
workGroups.add(WorkGroup.valueOf(group, i, orcid));
}
worksPage.setWorkGroups(workGroups);
worksPage.setNextOffset(offset + PAGE_SIZE);
return worksPage;
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginator method getAllWorks.
public WorksPage getAllWorks(String orcid, String sort, boolean sortAsc) {
Works works = worksCacheManager.getGroupedWorks(orcid);
List<org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup> sortedGroups = sort(works.getWorkGroup(), sort, sortAsc);
WorksPage worksPage = new WorksPage();
worksPage.setTotalGroups(sortedGroups.size());
List<WorkGroup> workGroups = new ArrayList<>();
for (int i = 0; i < sortedGroups.size(); i++) {
org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup group = sortedGroups.get(i);
workGroups.add(WorkGroup.valueOf(group, i, orcid));
}
worksPage.setWorkGroups(workGroups);
worksPage.setNextOffset(sortedGroups.size());
return worksPage;
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class OrcidSecurityManager_ActivitiesSummaryTest method testActivitiesSummary_When_SomePrivate_NoSource_ReadLimitedToken.
@Test
public void testActivitiesSummary_When_SomePrivate_NoSource_ReadLimitedToken() {
SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.ACTIVITIES_READ_LIMITED);
DistinctionSummary d1 = createDistinctionSummary(Visibility.PUBLIC, CLIENT_2);
DistinctionSummary d2 = createDistinctionSummary(Visibility.PRIVATE, CLIENT_2);
DistinctionSummary d3 = createDistinctionSummary(Visibility.PRIVATE, CLIENT_2);
EducationSummary e1 = createEducationSummary(Visibility.PUBLIC, CLIENT_2);
EducationSummary e2 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
EducationSummary e3 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
EmploymentSummary em1 = createEmploymentSummary(Visibility.PUBLIC, CLIENT_2);
EmploymentSummary em2 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
EmploymentSummary em3 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
InvitedPositionSummary i1 = createInvitedPositionSummary(Visibility.PUBLIC, CLIENT_2);
InvitedPositionSummary i2 = createInvitedPositionSummary(Visibility.PRIVATE, CLIENT_2);
InvitedPositionSummary i3 = createInvitedPositionSummary(Visibility.PRIVATE, CLIENT_2);
MembershipSummary m1 = createMembershipSummary(Visibility.PUBLIC, CLIENT_2);
MembershipSummary m2 = createMembershipSummary(Visibility.PRIVATE, CLIENT_2);
MembershipSummary m3 = createMembershipSummary(Visibility.PRIVATE, CLIENT_2);
QualificationSummary q1 = createQualificationSummary(Visibility.PUBLIC, CLIENT_2);
QualificationSummary q2 = createQualificationSummary(Visibility.PRIVATE, CLIENT_2);
QualificationSummary q3 = createQualificationSummary(Visibility.PRIVATE, CLIENT_2);
ServiceSummary s1 = createServiceSummary(Visibility.PUBLIC, CLIENT_2);
ServiceSummary s2 = createServiceSummary(Visibility.PRIVATE, CLIENT_2);
ServiceSummary s3 = createServiceSummary(Visibility.PRIVATE, CLIENT_2);
FundingSummary f1 = createFundingSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
FundingSummary f2 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
FundingSummary f3 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
PeerReviewSummary p1 = createPeerReviewSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
PeerReviewSummary p2 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
PeerReviewSummary p3 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
WorkSummary w1 = createWorkSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
WorkSummary w2 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
WorkSummary w3 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
ActivitiesSummary as = new ActivitiesSummary();
as.setEducations(createEducations(e1, e2, e3));
as.setEmployments(createEmployments(em1, em2, em3));
as.setFundings(createFundings(f1, f2, f3));
as.setPeerReviews(createPeerReviews(p1, p2, p3));
as.setWorks(createWorks(w1, w2, w3));
as.setDistinctions(createDistinctions(d1, d2, d3));
as.setInvitedPositions(createInvitedPositions(i1, i2, i3));
as.setMemberships(createMemberships(m1, m2, m3));
as.setQualifications(createQualifications(q1, q2, q3));
as.setServices(createServices(s1, s2, s3));
orcidSecurityManager.checkAndFilter(ORCID_1, as);
assertNotNull(as);
// Check distinctions
assertEquals(1, as.getDistinctions().getSummaries().size());
assertTrue(as.getDistinctions().getSummaries().contains(d1));
assertFalse(as.getDistinctions().getSummaries().contains(d2));
assertFalse(as.getDistinctions().getSummaries().contains(d3));
// Check invited positions
assertEquals(1, as.getInvitedPositions().getSummaries().size());
assertTrue(as.getInvitedPositions().getSummaries().contains(i1));
assertFalse(as.getInvitedPositions().getSummaries().contains(i2));
assertFalse(as.getInvitedPositions().getSummaries().contains(i3));
// Check memberships
assertEquals(1, as.getMemberships().getSummaries().size());
assertTrue(as.getMemberships().getSummaries().contains(m1));
assertFalse(as.getMemberships().getSummaries().contains(m2));
assertFalse(as.getMemberships().getSummaries().contains(m3));
// Check qualifications
assertEquals(1, as.getQualifications().getSummaries().size());
assertTrue(as.getQualifications().getSummaries().contains(q1));
assertFalse(as.getQualifications().getSummaries().contains(q2));
assertFalse(as.getQualifications().getSummaries().contains(q3));
// Check services
assertEquals(1, as.getServices().getSummaries().size());
assertTrue(as.getServices().getSummaries().contains(s1));
assertFalse(as.getServices().getSummaries().contains(s2));
assertFalse(as.getServices().getSummaries().contains(s3));
// Check educations
assertEquals(1, as.getEducations().getSummaries().size());
assertTrue(as.getEducations().getSummaries().contains(e1));
assertFalse(as.getEducations().getSummaries().contains(e2));
assertFalse(as.getEducations().getSummaries().contains(e3));
// Check employments
assertEquals(1, as.getEmployments().getSummaries().size());
assertTrue(as.getEmployments().getSummaries().contains(em1));
assertFalse(as.getEmployments().getSummaries().contains(em2));
assertFalse(as.getEmployments().getSummaries().contains(em3));
// Check fundings
assertEquals(1, as.getFundings().getFundingGroup().size());
assertEquals(1, as.getFundings().getFundingGroup().get(0).getActivities().size());
assertTrue(as.getFundings().getFundingGroup().get(0).getActivities().contains(f1));
assertFalse(as.getFundings().getFundingGroup().get(0).getActivities().contains(f2));
assertFalse(as.getFundings().getFundingGroup().get(0).getActivities().contains(f3));
assertEquals(2, as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
assertFalse(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
assertFalse(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
// Check peer reviews
assertEquals(1, as.getPeerReviews().getPeerReviewGroup().size());
assertEquals(1, as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().size());
assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p1));
assertFalse(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p2));
assertFalse(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p3));
assertEquals(1, as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED, "peer-review")));
// Check works
assertEquals(1, as.getWorks().getWorkGroup().size());
assertEquals(1, as.getWorks().getWorkGroup().get(0).getActivities().size());
assertTrue(as.getWorks().getWorkGroup().get(0).getActivities().contains(w1));
assertFalse(as.getWorks().getWorkGroup().get(0).getActivities().contains(w2));
assertFalse(as.getWorks().getWorkGroup().get(0).getActivities().contains(w3));
assertEquals(2, as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
assertFalse(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
assertFalse(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
}
Aggregations