39 lines
1.2 KiB
Swift
39 lines
1.2 KiB
Swift
//
|
||
// OrderNumberParserTests.swift
|
||
// suixinkanTests
|
||
//
|
||
// Created by Codex on 2026/6/22.
|
||
//
|
||
|
||
import XCTest
|
||
@testable import suixinkan_ios
|
||
|
||
/// 订单号解析器测试,覆盖扫码内容中的常见订单号格式。
|
||
final class OrderNumberParserTests: XCTestCase {
|
||
/// 测试从 URL query 中解析 order_number。
|
||
func testParseOrderNumberFromURLQuery() {
|
||
XCTAssertEqual(
|
||
OrderNumberParser.parse("https://example.com/check?foo=1&order_number=ORD123456"),
|
||
"ORD123456"
|
||
)
|
||
}
|
||
|
||
/// 测试从 key-value 文本中解析订单号。
|
||
func testParseOrderNumberFromKeyValueText() {
|
||
XCTAssertEqual(OrderNumberParser.parse("order_number=ORD123456"), "ORD123456")
|
||
XCTAssertEqual(OrderNumberParser.parse("order-number:ORD654321"), "ORD654321")
|
||
}
|
||
|
||
/// 测试从纯文本中解析订单号。
|
||
func testParsePlainOrderNumberText() {
|
||
XCTAssertEqual(OrderNumberParser.parse(" VERIFY001 "), "VERIFY001")
|
||
}
|
||
|
||
/// 测试无效内容不会返回订单号。
|
||
func testParseInvalidTextReturnsNil() {
|
||
XCTAssertNil(OrderNumberParser.parse(""))
|
||
XCTAssertNil(OrderNumberParser.parse("abc def"))
|
||
XCTAssertNil(OrderNumberParser.parse("12345"))
|
||
}
|
||
}
|