31 lines
1.9 KiB
Swift
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), [])
|
|
}
|
|
}
|
|
}
|