package sample.controller.admin;
import static org.mockito.BDDMockito.*;
import java.time.LocalDate;
import java.util.*;
import org.junit.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import sample.WebTestSupport;
import sample.model.asset.CashInOut;
import sample.model.asset.CashInOut.FindCashInOut;
import sample.usecase.AssetAdminService;
import sample.util.DateUtils;
/**
* AssetAdminController の単体検証です。
* <p>low: 簡易な正常系検証が中心
*/
@WebMvcTest(AssetAdminController.class)
public class AssetAdminControllerTest extends WebTestSupport {
@MockBean
private AssetAdminService service;
@Override
protected String prefix() {
return "/api/admin/asset";
}
@Test
public void 振込入出金依頼を検索します() throws Exception {
String day = DateUtils.dayFormat(LocalDate.now());
given(service.findCashInOut(any(FindCashInOut.class))).willReturn(resultCashInOuts());
performGet(
uriBuilder("/cio/")
.queryParam("updFromDay", day)
.queryParam("updToDay", day)
.build(),
JsonExpects.success()
.match("$[0].currency", "JPY")
.match("$[0].absAmount", 3000)
.match("$[1].absAmount", 8000));
}
private List<CashInOut> resultCashInOuts() {
return Arrays.asList(
fixtures.cio("sample", "3000", true),
fixtures.cio("sample", "8000", false));
}
}