Files
UUVPN/iOS-SwiftUI-Code/GRDB.swift-6.29.3/Tests/GRDBTests/RowTestCase.swift
T
2025-01-28 12:28:03 +08:00

162 lines
4.5 KiB
Swift

import XCTest
import GRDB
class RowTestCase: GRDBTestCase {
func assertRowRawValueEqual<T: Equatable>(_ row: Row, index: Int, value: T) {
// form 1
let v = row[index]
XCTAssertEqual(v as! T, value)
// form 2
XCTAssertEqual(row[index] as! T, value)
// form 3
if let v = row[index] as? T {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowRawValueEqual<T: Equatable>(_ row: Row, name: String, value: T) {
// form 1
let v = row[name]
XCTAssertEqual(v as! T, value)
// form 2
XCTAssertEqual(row[name] as! T, value)
// form 3
if let v = row[name] as? T {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowRawValueEqual<T: Equatable>(_ row: Row, column: Column, value: T) {
// form 1
let v = row[column]
XCTAssertEqual(v as! T, value)
// form 2
XCTAssertEqual(row[column] as! T, value)
// form 3
if let v = row[column] as? T {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible>(_ row: Row, index: Int, value: T) {
// form 1
XCTAssertEqual(row[index] as T, value)
// form 2
XCTAssertEqual(row[index]! as T, value)
// form 3
XCTAssertEqual((row[index] as T?)!, value)
// form 4
if let v = row[index] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible>(_ row: Row, name: String, value: T) {
// form 1
XCTAssertEqual(row[name] as T, value)
// form 2
XCTAssertEqual(row[name]! as T, value)
// form 3
XCTAssertEqual((row[name] as T?)!, value)
// form 4
if let v = row[name] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible>(_ row: Row, column: Column, value: T) {
// form 1
XCTAssertEqual(row[column] as T, value)
// form 2
XCTAssertEqual(row[column]! as T, value)
// form 3
XCTAssertEqual((row[column] as T?)!, value)
// form 4
if let v = row[column] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible & StatementColumnConvertible>(_ row: Row, index: Int, value: T) {
// form 1
XCTAssertEqual(row[index] as T, value)
// form 2
XCTAssertEqual(row[index]! as T, value)
// form 3
XCTAssertEqual((row[index] as T?)!, value)
// form 4
if let v = row[index] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible & StatementColumnConvertible>(_ row: Row, name: String, value: T) {
// form 1
XCTAssertEqual(row[name] as T, value)
// form 2
XCTAssertEqual(row[name]! as T, value)
// form 3
XCTAssertEqual((row[name] as T?)!, value)
// form 4
if let v = row[name] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
func assertRowConvertedValueEqual<T: Equatable & DatabaseValueConvertible & StatementColumnConvertible>(_ row: Row, column: Column, value: T) {
// form 1
XCTAssertEqual(row[column] as T, value)
// form 2
XCTAssertEqual(row[column]! as T, value)
// form 3
XCTAssertEqual((row[column] as T?)!, value)
// form 4
if let v = row[column] as T? {
XCTAssertEqual(v, value)
} else {
XCTFail("expected successful extraction")
}
}
}