// // PaymentModelsTests.swift // suixinkanTests // import XCTest @testable import suixinkan /// 收款模型解码测试。 final class PaymentModelsTests: XCTestCase { func testPayCodeResponseDecodesSnakeCaseFields() throws { let json = """ { "static_pay_url": "https://pay.example.com/static", "dynamic_pay_url": "https://pay.example.com/dynamic" } """.data(using: .utf8)! let response = try JSONDecoder().decode(PayCodeResponse.self, from: json) XCTAssertEqual(response.staticPayURL, "https://pay.example.com/static") XCTAssertEqual(response.dynamicPayURL, "https://pay.example.com/dynamic") } func testRepaymentCollectionRecordResponseDecodesGroupedFields() throws { let json = """ { "analyse": [ { "date": "2024-01-15", "order_count": 2, "order_amount_sum": "100.00" } ], "list": [ { "order_number": "NO001", "user_phone": "13800138000", "order_amount": "50.00", "create_date": "2024-01-15", "create_time": "10:00:00" } ] } """.data(using: .utf8)! let response = try JSONDecoder().decode(RepaymentCollectionRecordResponse.self, from: json) XCTAssertEqual(response.analyse.count, 1) XCTAssertEqual(response.analyse[0].orderCount, 2) XCTAssertEqual(response.list[0].orderNumber, "NO001") } }