52 lines
1.9 KiB
Swift
52 lines
1.9 KiB
Swift
import XCTest
|
|
|
|
@testable import GRDB
|
|
|
|
class DatabaseValueConvertibleEscapingTests: GRDBTestCase {
|
|
|
|
func testNull() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual(DatabaseValue.null.sqlExpression.quotedSQL(db), "NULL")
|
|
}
|
|
}
|
|
|
|
func testText() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual("".sqlExpression.quotedSQL(db), "''")
|
|
try XCTAssertEqual("foo".sqlExpression.quotedSQL(db), "'foo'")
|
|
try XCTAssertEqual("\"foo\"".sqlExpression.quotedSQL(db), #"'"foo"'"#)
|
|
try XCTAssertEqual("'foo'".sqlExpression.quotedSQL(db), "'''foo'''")
|
|
}
|
|
}
|
|
|
|
func testInteger() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual(0.sqlExpression.quotedSQL(db), "0")
|
|
try XCTAssertEqual(Int64.min.sqlExpression.quotedSQL(db), "-9223372036854775808")
|
|
try XCTAssertEqual(Int64.max.sqlExpression.quotedSQL(db), "9223372036854775807")
|
|
}
|
|
}
|
|
|
|
func testDouble() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual(0.0.sqlExpression.quotedSQL(db), "0.0")
|
|
try XCTAssertEqual(1.0.sqlExpression.quotedSQL(db), "1.0")
|
|
try XCTAssertEqual((-1.0).sqlExpression.quotedSQL(db), "-1.0")
|
|
try XCTAssertEqual(1.5.sqlExpression.quotedSQL(db), "1.5")
|
|
}
|
|
}
|
|
|
|
func testBlob() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual(Data().sqlExpression.quotedSQL(db), "X''")
|
|
try XCTAssertEqual("foo".data(using: .utf8)!.sqlExpression.quotedSQL(db), "X'666F6F'")
|
|
}
|
|
}
|
|
|
|
func testComplexExpression() throws {
|
|
try makeDatabaseQueue().inDatabase { db in
|
|
try XCTAssertEqual((Column("a") == 12).quotedSQL(db), #""a" = 12"#)
|
|
}
|
|
}
|
|
}
|