### Question:
OrderService implements OrderItemSaver { public List<OrderReason> syncOrderReasons() { final ArrayList<OrderReason> savedReasons = new ArrayList<>(); final List<String> reasons = lmisServer.fetchOrderReasons(userService.getRegisteredUser()); dbUtil.withDao(OrderReason.class, new DbUtil.Operation<OrderReason, Void>() { @Override public Void operate(Dao<OrderReason, String> dao) throws SQLException { saveReasons(dao, reasons, savedReasons); return null; } }); return savedReasons; }  List<OrderReason> syncOrderReasons(); List<OrderType> allOrderTypes(); List<OrderReason> allOrderReasons(); List<Order> all(); String getNextSRVNumber(); void saveOrder(final Order order); @Override void saveOrderItem(final OrderItem orderItem); void syncOrderTypes();  }### Answer:
@Test public void shouldGetReasonsForOrderFromDHIS2AndSaveThem() throws Exception { addPendingHttpResponse(200, responseBody); orderService.syncOrderReasons(); List<OrderReason> orderReasons = reasonDao.queryForAll(); assertThat(orderReasons, contains(highDemand, losses, expiries)); }