Skip to content
Snippets Groups Projects
Commit f7ff8b59 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add DBManagerRemoveDB function

parent 7a15a34d
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!68Messenger example - send auth request
This commit is part of merge request !68. Comments created here will be created in the context of that merge request.
...@@ -4,6 +4,7 @@ public struct DBManager { ...@@ -4,6 +4,7 @@ public struct DBManager {
public var hasDB: DBManagerHasDB public var hasDB: DBManagerHasDB
public var makeDB: DBManagerMakeDB public var makeDB: DBManagerMakeDB
public var getDB: DBManagerGetDB public var getDB: DBManagerGetDB
public var removeDB: DBManagerRemoveDB
} }
extension DBManager { extension DBManager {
...@@ -17,7 +18,8 @@ extension DBManager { ...@@ -17,7 +18,8 @@ extension DBManager {
return DBManager( return DBManager(
hasDB: .init { container.db != nil }, hasDB: .init { container.db != nil },
makeDB: .live(setDB: { container.db = $0 }), makeDB: .live(setDB: { container.db = $0 }),
getDB: .live(getDB: { container.db }) getDB: .live(getDB: { container.db }),
removeDB: .live(getDB: { container.db }, unsetDB: { container.db = nil })
) )
} }
} }
...@@ -26,6 +28,7 @@ extension DBManager { ...@@ -26,6 +28,7 @@ extension DBManager {
public static let unimplemented = DBManager( public static let unimplemented = DBManager(
hasDB: .unimplemented, hasDB: .unimplemented,
makeDB: .unimplemented, makeDB: .unimplemented,
getDB: .unimplemented getDB: .unimplemented,
removeDB: .unimplemented
) )
} }
import Foundation
import XCTestDynamicOverlay
import XXDatabase
import XXModels
public struct DBManagerRemoveDB {
public var run: () throws -> Void
public func callAsFunction() throws -> Void {
try run()
}
}
extension DBManagerRemoveDB {
public static func live(
getDB: @escaping () -> Database?,
unsetDB: @escaping () -> Void
) -> DBManagerRemoveDB {
DBManagerRemoveDB {
try getDB()?.drop()
unsetDB()
}
}
}
extension DBManagerRemoveDB {
public static let unimplemented = DBManagerRemoveDB(
run: XCTUnimplemented("\(Self.self)")
)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment