@Test(expected = BusinessException.class)
public void testCancel03() {

    Reserve reserve = new Reserve("001");
    reserve.setAdultCount(1);
    reserve.setChildCount(2);
    TourInfo tour = new TourInfo("01");
    reserve.setTourInfo(tour);
    reserve.setTransfer(Reserve.NOT_TRANSFERED);
    when(reserveRepository.findById("001")).thenReturn(Optional.of(
            reserve));
    when(reserveRepository.findOneForUpdate("001")).thenReturn(reserve);
    when(tourInfoSharedService.isOverPaymentLimit(tour)).thenReturn(true); // !!!over limit
    try {
        reserveService.cancel("001");
        fail("error route");
    } catch (BusinessException e) {
        ResultMessages messages = e.getResultMessages();
        assertThat(messages.isNotEmpty(), is(true));
        assertThat(messages.getType(), is((ResultMessageType) ERROR));
        assertThat(messages.getList().size(), is(1));
        assertThat(messages.getList().get(0).getCode(), is(
                MessageId.E_TR_0002));
        throw e;
    }
}