liujie
2026-09-09 39f6fca28e3f78abe48f08e474ec011abb990b36
backend/src/test/java/com/tourguide/modules/order/payment/HuifuPaymentRefundGatewayTest.java
@@ -55,6 +55,24 @@
                .hasMessage("refund failed");
    }
    @Test
    void shouldReadNestedHuifuResponseCode() throws Exception {
        DouGongRefundBiz refundBiz = mock(DouGongRefundBiz.class);
        TourOrderPaymentAttemptMapper attemptMapper = mock(TourOrderPaymentAttemptMapper.class);
        HuifuPaymentRefundGateway gateway = new HuifuPaymentRefundGateway(refundBiz, attemptMapper);
        TourOrder order = order();
        when(attemptMapper.selectByReqSeqIdForUpdate(order.getPaymentOrderNo())).thenReturn(attempt());
        Map<String, Object> nested = new HashMap<>();
        nested.put("resp_code", "00000100");
        Map<String, Object> response = new HashMap<>();
        response.put("data", nested);
        when(refundBiz.refund(order.getRefundOrderNo(), new BigDecimal("36.00"),
                "20260803", order.getPaymentOrderNo())).thenReturn(response);
        assertThat(gateway.refund(order, new BigDecimal("36.00")))
                .isEqualTo(order.getRefundOrderNo());
    }
    private TourOrder order() {
        TourOrder order = new TourOrder();
        order.setPaymentOrderNo("PY202608031700000000000000000001");