    @Test
    public void testCancel01() {

        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.findOneWithDetails("01")).thenReturn(tour);
        when(tourInfoSharedService.isOverPaymentLimit(tour)).thenReturn(false); // within limit

        reserveService.cancel("001");

        ArgumentCaptor<String> argOfDelete = ArgumentCaptor.forClass(
                String.class);
        verify(reserveRepository, times(1)).deleteById(argOfDelete.capture());

        assertThat(argOfDelete.getValue(), is("001"));
    }