Files

31 lines
1.9 KiB
Swift

import XCTest
@testable import GRDB
class SQLIdentifyingColumnsTests: GRDBTestCase {
func testIdentifyingColumns() throws {
try makeDatabaseQueue().write { db in
try db.create(table: "t") { t in
t.autoIncrementedPrimaryKey("id")
}
let alias = TableAlias(tableName: "t")
let otherAlias = TableAlias()
try XCTAssertEqual((alias[Column("a")] == 1).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((alias[Column("a")] === 1).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((alias[Column("a")] == nil).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((1 == alias[Column("a")]).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((alias[SQLExpression.fastPrimaryKey] == 1).identifyingColums(db, for: alias), ["id"])
try XCTAssertEqual((alias[Column("a")] == 1 && alias[Column("a")] == 2).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((alias[Column("a")] == 1 && alias[Column("b")] == 1).identifyingColums(db, for: alias), ["a", "b"])
try XCTAssertEqual((alias[Column("a")] == 1 && alias[Column("b")] > 1).identifyingColums(db, for: alias), ["a"])
try XCTAssertEqual((otherAlias[Column("a")] == 1 && alias[Column("b")] == 1).identifyingColums(db, for: alias), ["b"])
try XCTAssertEqual((otherAlias[Column("a")]).identifyingColums(db, for: alias), [])
try XCTAssertEqual((alias[Column("a")] == 1 || alias[Column("a")] == 2).identifyingColums(db, for: alias), [])
try XCTAssertEqual((alias[Column("a")] == alias[Column("b")]).identifyingColums(db, for: alias), [])
try XCTAssertEqual((alias[Column("a")] > 1).identifyingColums(db, for: alias), [])
try XCTAssertEqual((alias[Column("a")] != 1).identifyingColums(db, for: alias), [])
}
}
}