Files
UUVPN/iOS-SwiftUI-Code/GRDB.swift-6.29.3/Tests/GRDBTests/DatabaseQueueInMemoryTests.swift
T
2025-01-28 12:28:03 +08:00

45 lines
1.6 KiB
Swift

import XCTest
import GRDB
class DatabaseQueueInMemoryTests : GRDBTestCase {
func test_independent_in_memory_database() throws {
let baz = try DatabaseQueue().write { db in
try db.execute(sql: "CREATE TABLE foo (bar TEXT)")
try db.execute(sql: "INSERT INTO foo (bar) VALUES ('baz')")
return try String.fetchOne(db, sql: "SELECT bar FROM foo")!
}
XCTAssertEqual(baz, "baz")
}
func test_independent_in_memory_databases_are_independent() throws {
try DatabaseQueue().write { db in
try db.execute(sql: "CREATE TABLE foo (bar TEXT)")
}
try XCTAssertFalse(DatabaseQueue().read { try $0.tableExists("foo") })
}
func test_shared_in_memory_database() throws {
let name = UUID().uuidString
let baz = try DatabaseQueue(named: name).write { db in
try db.execute(sql: "CREATE TABLE foo (bar TEXT)")
try db.execute(sql: "INSERT INTO foo (bar) VALUES ('baz')")
return try String.fetchOne(db, sql: "SELECT bar FROM foo")!
}
XCTAssertEqual(baz, "baz")
}
func test_shared_in_memory_databases_are_shared_by_name() throws {
let nameA = UUID().uuidString
let dbA = try DatabaseQueue(named: nameA)
try dbA.write { db in
try db.execute(sql: "CREATE TABLE foo (bar TEXT)")
}
try withExtendedLifetime(dbA) {
try XCTAssertTrue(DatabaseQueue(named: nameA).read { try $0.tableExists("foo") })
try XCTAssertFalse(DatabaseQueue(named: UUID().uuidString).read { try $0.tableExists("foo") })
}
}
}