### Question:
Dhis2 implements LmisServer { @Override public List<String> fetchOrderReasons(User user) { Dhis2Endpoint service = dhis2EndPointFactory.getEndPoint(user); OptionSetResponse optionSetResponse = service.searchOptionSets("order", "name,id,options"); List<String> optionSets = new ArrayList<>(); List<OptionSet> optionSetList = optionSetResponse.getOptionSets(); if (!isEmpty(optionSetList)) { optionSets = from(optionSetList.get(0).getOptions()).transform(new Function<Option, String>() { @Override public String apply(Option input) { return input.getName(); } }).toList(); } return optionSets; }  @Override UserProfile validateLogin(User user); void writeJson(User user); @Override List<Category> fetchCategories(User user); List<DataSet> fetchDataSets(User user); @Override List<String> fetchOrderReasons(User user); @Override List<OrderType> fetchOrderTypes(User user); @Override List<CommodityActionValue> fetchCommodityActionValues(User user); @Override List<CommodityActionValue> fetchIndicatorValues(User user, List<Commodity> commodities); @Override List<CommodityActionValue> fetchAllocations(User user); @Override DataValueSetPushResponse pushDataValueSet(DataValueSet valueSet, User user); @Override Integer fetchIntegerConstant(User user, String constantKey); @Override String fetchPhoneNumberConstant(User user, String constantKey, String defaultValue); @Override String fetchLatestVersion(); List<CommodityActionValue> convertDataValuesToCommodityActions(List<DataValue> values); List<CommodityActionValue> convertIndicatorValuesToCommodityActions(
            List<List<String>> values, List<CommodityAction> indicatorActions); @Override List<IndicatorGroup> fetchIndicatorGroups(User user); List<Indicator> fetchClientIndicators(User user); static final String SYNC; static final SimpleDateFormat SIMPLE_DATE_FORMAT; }### Answer:
@Test public void testShouldFetchReasonsForOrder() throws Exception { setUpSuccessHttpGetRequest(200, "systemSettingForReasonsForOrder.json"); List<String> reasons = dhis2.fetchOrderReasons(new User("test", "pass")); assertThat(reasons.size(), is(3)); assertThat(reasons, contains(OrderReason.HIGH_DEMAND, OrderReason.LOSSES, OrderReason.EXPIRIES)); }