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
......@@ -4,6 +4,7 @@ public struct DBManager {
public var hasDB: DBManagerHasDB
public var makeDB: DBManagerMakeDB
public var getDB: DBManagerGetDB
public var removeDB: DBManagerRemoveDB
}
extension DBManager {
......@@ -17,7 +18,8 @@ extension DBManager {
return DBManager(
hasDB: .init { container.db != nil },
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 {
public static let unimplemented = DBManager(
hasDB: .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.
Finish editing this message first!
Please register or to comment