//
//  OrderNumberParserTests.swift
//  suixinkanTests
//
//  Created by Codex on 2026/6/22.
//

import XCTest
@testable import suixinkan

/// 订单号解析器测试，覆盖扫码内容中的常见订单号格式。
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"))
    }
}
