import XCTest import GRDB class RowTestCase: GRDBTestCase { func assertRowRawValueEqual(_ 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(_ 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(_ 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(_ 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(_ 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(_ 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(_ 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(_ 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(_ 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") } } }