ContractSortCommandHelper { public void sortContractInfoSetRegardingCommand( List<ContractInfo> contractInfoSet, ContractSortCommand csc) { String sortByValue = csc.getSortOptionMap().get(SORT_BY_KEY).toString(); if (StringUtils.equalsIgnoreCase(sortByValue, LAST_AUDIT_MARK_SORT_VALUE)) { contractInfoSet.sort(new ContractInfoMarkSorter( Integer.parseInt(csc.getSortOptionMap().get(SORT_ORDER_KEY).toString( )))); } else if (StringUtils.equalsIgnoreCase(sortByValue, LAST_AUDIT_DATE_SORT_VALUE)) { contractInfoSet.sort(new ContractInfoDateSorter( Integer.parseInt(csc.getSortOptionMap().get(SORT_ORDER_KEY).toString( )))); } else { contractInfoSet.sort(new ContractInfoLabelSorter( Integer.parseInt(csc.getSortOptionMap().get(SORT_ORDER_KEY).toString( )))); } } ContractSortCommandHelper(ContractDataService contractDataService,
                                     ContractSortCommandFactory contractSortCommandFactory,
                                     DetailedContractInfoFactory contractInfoFactory); Collection<ContractInfo> prepareContractInfo(
            User user, 
            ContractSortCommand csc, 
            List<FormFieldBuilder> displayOptionFieldsBuilderList,
            Model model); Collection<Contract> prepareContract(
            User user, 
            ContractSortCommand csc, 
            List<FormFieldBuilder> displayOptionFieldsBuilderList,
            Model model); void sortContractInfoSetRegardingCommand(
            List<ContractInfo> contractInfoSet, 
            ContractSortCommand csc);  }
@Test public void testGetLastAuditMarkSortValue() { List<ContractInfo> contractInfoSet = new ArrayList<>(); ContractSortCommand csc = new ContractSortCommand(); ContractInfo c1 = new ContractInfo(); ActInfo lastActInfo1 = new ActInfo(); lastActInfo1.setRawMark(15); c1.setLastActInfo(lastActInfo1); c1.setLabel(("A1")); contractInfoSet.add(c1); ContractInfo c2 = new ContractInfo(); ActInfo lastActInfo2 = new ActInfo(); lastActInfo2.setRawMark(95); c2.setLastActInfo(lastActInfo2); c2.setLabel(("B2")); contractInfoSet.add(c2); ContractInfo c3 = new ContractInfo(); ActInfo lastActInfo3 = new ActInfo(); lastActInfo3.setRawMark(53); c3.setLastActInfo(lastActInfo3); c3.setLabel(("C3")); contractInfoSet.add(c3); ContractInfo c4 = new ContractInfo(); c4.setLastActInfo(null); c4.setLabel(("D4")); contractInfoSet.add(c4); ContractInfo c5 = new ContractInfo(); c5.setLastActInfo(null); c5.setLabel(("A4")); contractInfoSet.add(c5); Map<String, Object> map = new HashMap<>(); map.put("order-choice", SortOrderEnum.ASCENDING.getCode()); map.put("sort-by-choice", "MARK"); csc.setSortOptionMap(map); contractSortCommandHelper.sortContractInfoSetRegardingCommand(contractInfoSet, csc); assertTrue(contractInfoSet.get(0).equals(c1)); assertTrue(contractInfoSet.get(1).equals(c3)); assertTrue(contractInfoSet.get(2).equals(c2)); map = new HashMap<>(); map.put("order-choice", SortOrderEnum.DESCENDING.getCode()); map.put("sort-by-choice", "MARK"); csc.setSortOptionMap(map); contractSortCommandHelper.sortContractInfoSetRegardingCommand(contractInfoSet, csc); assertTrue(contractInfoSet.get(0).equals(c2)); assertTrue(contractInfoSet.get(1).equals(c3)); assertTrue(contractInfoSet.get(2).equals(c1)); }