|
|
|
|
@ -238,6 +238,39 @@ class PaymentControllerTest {
|
|
|
|
|
"WALLET_B_7D8E9F0A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6E7F8A9B0C1D2E3F4A5B6"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void refreshActionsProjectCompletedModuleThreeWalletsWhenSharedRowsAreMissing() throws Exception {
|
|
|
|
|
clearSharedWalletProjection();
|
|
|
|
|
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM digital_wallet WHERE wallet_id IN (?,?)",
|
|
|
|
|
Integer.class, PAYER_WALLET, PAYEE_WALLET)).isZero();
|
|
|
|
|
|
|
|
|
|
String created = mockMvc.perform(post("/api/v1/payment/attempts").with(payer()))
|
|
|
|
|
.andExpect(status().isOk())
|
|
|
|
|
.andReturn().getResponse().getContentAsString();
|
|
|
|
|
String attemptId = JsonPath.read(created, "$.data.attemptId");
|
|
|
|
|
|
|
|
|
|
mockMvc.perform(post("/api/v1/payment/attempts/{id}/steps/01/actions/refresh-payer", attemptId)
|
|
|
|
|
.with(payer()).contentType(MediaType.APPLICATION_JSON).content("{}"))
|
|
|
|
|
.andExpect(status().isOk())
|
|
|
|
|
.andExpect(jsonPath("$.data.actionStatus").value("COMPLETED"))
|
|
|
|
|
.andExpect(jsonPath("$.data.output.walletId").value(PAYER_WALLET));
|
|
|
|
|
mockMvc.perform(post("/api/v1/payment/attempts/{id}/steps/01/actions/refresh-payee", attemptId)
|
|
|
|
|
.with(payer()).contentType(MediaType.APPLICATION_JSON)
|
|
|
|
|
.content("{\"payeeWalletId\":\"" + PAYEE_WALLET + "\"}"))
|
|
|
|
|
.andExpect(status().isOk())
|
|
|
|
|
.andExpect(jsonPath("$.data.actionStatus").value("COMPLETED"))
|
|
|
|
|
.andExpect(jsonPath("$.data.output.walletId").value(PAYEE_WALLET));
|
|
|
|
|
|
|
|
|
|
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM digital_wallet WHERE wallet_id IN (?,?)",
|
|
|
|
|
Integer.class, PAYER_WALLET, PAYEE_WALLET)).isEqualTo(2);
|
|
|
|
|
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM wallet_certificate WHERE wallet_id IN (?,?)",
|
|
|
|
|
Integer.class, PAYER_WALLET, PAYEE_WALLET)).isEqualTo(2);
|
|
|
|
|
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM wallet_contract WHERE wallet_id IN (?,?)",
|
|
|
|
|
Integer.class, PAYER_WALLET, PAYEE_WALLET)).isEqualTo(2);
|
|
|
|
|
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM wallet_bank_binding WHERE wallet_id IN (?,?)",
|
|
|
|
|
Integer.class, PAYER_WALLET, PAYEE_WALLET)).isEqualTo(2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void rejectsPaymentWhenPayerHasNoWalletOwnedCoins() throws Exception {
|
|
|
|
|
String created = mockMvc.perform(post("/api/v1/payments").with(payer()).contentType(MediaType.APPLICATION_JSON)
|
|
|
|
|
@ -427,13 +460,17 @@ class PaymentControllerTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cleanWalletState() {
|
|
|
|
|
clearSharedWalletProjection();
|
|
|
|
|
WalletOpeningTestData.deleteWalletFacts(jdbc, PAYER_USER);
|
|
|
|
|
WalletOpeningTestData.deleteWalletFacts(jdbc, PAYEE_USER);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void clearSharedWalletProjection() {
|
|
|
|
|
jdbc.update("DELETE FROM wallet_bank_binding WHERE wallet_id IN (?,?)", PAYER_WALLET, PAYEE_WALLET);
|
|
|
|
|
jdbc.update("DELETE FROM wallet_contract WHERE wallet_id IN (?,?)", PAYER_WALLET, PAYEE_WALLET);
|
|
|
|
|
jdbc.update("DELETE FROM wallet_certificate WHERE wallet_id IN (?,?)", PAYER_WALLET, PAYEE_WALLET);
|
|
|
|
|
jdbc.update("DELETE FROM simulated_bank_account WHERE user_id IN (?,?)", PAYER_USER, PAYEE_USER);
|
|
|
|
|
jdbc.update("DELETE FROM digital_wallet WHERE wallet_id IN (?,?)", PAYER_WALLET, PAYEE_WALLET);
|
|
|
|
|
WalletOpeningTestData.deleteWalletFacts(jdbc, PAYER_USER);
|
|
|
|
|
WalletOpeningTestData.deleteWalletFacts(jdbc, PAYEE_USER);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cleanPaymentData() {
|
|
|
|
|
|