| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package com.ruoyi.system.omgpay.mapper;
- import org.junit.jupiter.api.Test;
- import java.io.IOException;
- import java.io.InputStream;
- import java.nio.charset.StandardCharsets;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.List;
- import java.util.Objects;
- import static org.junit.jupiter.api.Assertions.assertFalse;
- import static org.junit.jupiter.api.Assertions.assertTrue;
- class OmgPaymentAttemptMapperContractTest {
- @Test
- void mapperAndSqlOnlyReferenceNewAttemptStorage() throws IOException {
- String xml = loadMapperXml();
- String sql = loadSql();
- assertTrue(xml.contains("FROM pos_order"));
- assertTrue(xml.contains("FOR UPDATE"));
- assertTrue(xml.contains("FROM pos_order_omg_attempt"));
- assertFalse(xml.contains("pos_order_omg_payment"));
- assertFalse(xml.contains("pos_order_omg_refund"));
- assertTrue(sql.contains("UNIQUE KEY uk_omg_attempt_trade_no"));
- assertTrue(sql.contains("UNIQUE KEY uk_omg_attempt_active_dd"));
- assertTrue(sql.contains("IF(attempt_status = 0, dd_id, NULL)"));
- }
- private String loadMapperXml() throws IOException {
- try (InputStream inputStream = getClass().getClassLoader()
- .getResourceAsStream("mapper/omgpay/OmgPaymentAttemptMapper.xml")) {
- return new String(Objects.requireNonNull(inputStream,
- "mapper xml not found").readAllBytes(), StandardCharsets.UTF_8);
- }
- }
- private String loadSql() throws IOException {
- for (Path candidate : sqlCandidates()) {
- if (Files.exists(candidate)) {
- return Files.readString(candidate, StandardCharsets.UTF_8);
- }
- }
- throw new IOException("updatesql/sql.md not found");
- }
- private List<Path> sqlCandidates() {
- return List.of(
- Paths.get("updatesql", "sql.md"),
- Paths.get("..", "updatesql", "sql.md")
- );
- }
- }
|