51 lines
1.5 KiB
Swift
51 lines
1.5 KiB
Swift
import XCTest
|
|
import DataLiteCore
|
|
import DLCCommon
|
|
|
|
final class SQLiteRowTests: XCTestCase {
|
|
func testContainsKey() {
|
|
var row = SQLiteRow()
|
|
row["key1"] = .text("value1")
|
|
row["key2"] = .int(42)
|
|
|
|
XCTAssertTrue(row.contains(DummyKey(stringValue: "key1")))
|
|
XCTAssertFalse(row.contains(DummyKey(stringValue: "key3")))
|
|
|
|
XCTAssertTrue(row.contains(DummyKey(intValue: 0)))
|
|
XCTAssertFalse(row.contains(DummyKey(intValue: 2)))
|
|
}
|
|
|
|
func testSubscriptWithKey() {
|
|
var row = SQLiteRow()
|
|
row["key1"] = .text("value")
|
|
|
|
XCTAssertEqual(row[DummyKey(stringValue: "key1")], .text("value"))
|
|
XCTAssertNil(row[DummyKey(stringValue: "key2")])
|
|
|
|
XCTAssertEqual(row[DummyKey(intValue: 0)], .text("value"))
|
|
|
|
row[DummyKey(stringValue: "key1")] = .int(42)
|
|
XCTAssertEqual(row[DummyKey(stringValue: "key1")], .int(42))
|
|
|
|
row[DummyKey(intValue: 0)] = .real(3.14)
|
|
XCTAssertEqual(row[DummyKey(intValue: 0)], .real(3.14))
|
|
}
|
|
}
|
|
|
|
private extension SQLiteRowTests {
|
|
struct DummyKey: CodingKey, Equatable {
|
|
var stringValue: String
|
|
var intValue: Int?
|
|
|
|
init(stringValue: String) {
|
|
self.stringValue = stringValue
|
|
self.intValue = nil
|
|
}
|
|
|
|
init(intValue: Int) {
|
|
self.stringValue = "\(intValue)"
|
|
self.intValue = intValue
|
|
}
|
|
}
|
|
}
|