use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginatorTest method testTitleSortCaseInsensitive.
@Test
public void testTitleSortCaseInsensitive() {
Works works = get1000PublicWorkGroups();
for (WorkGroup workGroup : works.getWorkGroup()) {
if (new Random().nextBoolean()) {
for (WorkSummary summary : workGroup.getWorkSummary()) {
summary.getTitle().setTitle(new Title(summary.getTitle().getTitle().getContent().toUpperCase()));
}
}
}
Mockito.when(worksCacheManager.getGroupedWorks(Mockito.anyString())).thenReturn(works);
WorksPage page = worksPaginator.getWorksPage("orcid", 0, false, WorksPaginator.TITLE_SORT_KEY, true);
org.orcid.pojo.WorkGroup previous = page.getWorkGroups().remove(0);
while (!page.getWorkGroups().isEmpty()) {
org.orcid.pojo.WorkGroup next = page.getWorkGroups().remove(0);
String previousTitle = previous.getWorks().get(0).getTitle().getValue();
String nextTitle = next.getWorks().get(0).getTitle().getValue();
assertTrue(previousTitle.toLowerCase().compareTo(nextTitle.toLowerCase()) <= 0);
previous = next;
}
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginatorTest method get1000PublicWorkGroups.
private Works get1000PublicWorkGroups() {
Works works = new Works();
works.setLastModifiedDate(new LastModifiedDate(DateUtils.convertToXMLGregorianCalendar(System.currentTimeMillis())));
works.setPath("some path");
for (int i = 0; i < 1000; i++) {
works.getWorkGroup().add(getPublicWorkGroup(i));
}
return works;
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginatorTest method testGetWorkWithNulltitle.
/**
* Check null titles don't cause errors
*/
@Test
public void testGetWorkWithNulltitle() {
WorkGroup workGroup = getPublicWorkGroup(0);
for (WorkSummary workSummary : workGroup.getWorkSummary()) {
workSummary.setTitle(null);
}
Works works = new Works();
works.getWorkGroup().add(workGroup);
Mockito.when(worksCacheManager.getGroupedWorks(Mockito.anyString())).thenReturn(works);
WorksPage page = worksPaginator.getAllWorks("orcid", WorksPaginator.TITLE_SORT_KEY, true);
for (org.orcid.pojo.WorkGroup group : page.getWorkGroups()) {
for (WorkForm work : group.getWorks()) {
assertEquals("", work.getTitle().getValue());
}
}
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginatorTest method testReverseSecondaryTitleSortForNullDates.
@Test
public void testReverseSecondaryTitleSortForNullDates() {
Works works = getWorkGroupsWithNullDates();
Mockito.when(worksCacheManager.getGroupedWorks(Mockito.anyString())).thenReturn(works);
WorksPage page = worksPaginator.getWorksPage("orcid", 0, false, WorksPaginator.DATE_SORT_KEY, true);
org.orcid.pojo.WorkGroup previous = page.getWorkGroups().remove(0);
while (!page.getWorkGroups().isEmpty()) {
org.orcid.pojo.WorkGroup next = page.getWorkGroups().remove(0);
String previousTitle = previous.getWorks().get(0).getTitle().getValue();
String nextTitle = next.getWorks().get(0).getTitle().getValue();
assertTrue(previousTitle.toLowerCase().compareTo(nextTitle.toLowerCase()) >= 0);
previous = next;
}
}
use of org.orcid.jaxb.model.v3.dev1.record.summary.Works in project ORCID-Source by ORCID.
the class WorksPaginator method refreshWorks.
public WorksPage refreshWorks(String orcid, int limit, 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 < limit && 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(limit);
return worksPage;
}
Aggregations