Files
suixinkan_uikit/suixinkanTests/ProfileModelsTests.swift

66 lines
1.8 KiB
Swift

//
// ProfileModelsTests.swift
// suixinkanTests
//
import XCTest
@testable import suixinkan
/// Profile
final class ProfileModelsTests: XCTestCase {
func testUserInfoResponseDecodesSnakeCaseFields() throws {
let json = """
{
"avatar": "https://cdn.example.com/a.jpg",
"real_name": "张三",
"phone": "13800138000",
"nickname": "小张",
"role_name": "摄影师",
"status": 1,
"status_name": "正常"
}
""".data(using: .utf8)!
let info = try JSONDecoder().decode(UserInfoResponse.self, from: json)
XCTAssertEqual(info.realName, "")
XCTAssertEqual(info.nickname, "")
XCTAssertEqual(info.roleName, "")
XCTAssertEqual(info.statusName, "")
}
func testBankCardInfoDecodesAuditStatusAsString() throws {
let json = """
{
"real_name": "张三",
"bank_name": "中国银行",
"branch_name": "南京支行",
"card_number": "6222021234567890",
"audit_status": "2",
"audit_status_label": "审核通过",
"reject_reason": ""
}
""".data(using: .utf8)!
let info = try JSONDecoder().decode(BankCardInfo.self, from: json)
XCTAssertEqual(info.auditStatus, 2)
XCTAssertEqual(info.bankName, "")
}
func testRealNameInfoVerifiedWhenAuditStatusIsTwo() throws {
let json = """
{
"real_name": "张三",
"id_card_no": "320102199001011234",
"audit_status": 2,
"is_long_valid": 1
}
""".data(using: .utf8)!
let info = try JSONDecoder().decode(RealNameInfo.self, from: json)
XCTAssertTrue(info.verified)
}
}