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

Improve MessengerDestroy functor

parent 1ad1ef94
No related branches found
No related tags found
Loading
......@@ -11,10 +11,10 @@ public struct MessengerDestroy {
extension MessengerDestroy {
public static func live(_ env: MessengerEnvironment) -> MessengerDestroy {
MessengerDestroy {
try env.fileManager.removeDirectory(env.storageDir)
env.ud.set(nil)
env.e2e.set(nil)
env.cMix.set(nil)
try env.fileManager.removeDirectory(env.storageDir)
}
}
}
......
......@@ -13,30 +13,39 @@ final class MessengerDestroyTests: XCTestCase {
var env: MessengerEnvironment = .unimplemented
env.storageDir = storageDir
env.fileManager.removeDirectory = { didRemoveDirectory.append($0) }
env.ud.set = { didSetUD.append($0) }
env.e2e.set = { didSetE2E.append($0) }
env.cMix.set = { didSetCMix.append($0) }
env.fileManager.removeDirectory = { didRemoveDirectory.append($0) }
let destroy: MessengerDestroy = .live(env)
try destroy()
XCTAssertNoDifference(didRemoveDirectory, [storageDir])
XCTAssertNoDifference(didSetUD.map { $0 == nil }, [true])
XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true])
XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true])
XCTAssertNoDifference(didRemoveDirectory, [storageDir])
}
func testRemoveDirectoryFailure() {
struct Error: Swift.Error, Equatable {}
let error = Error()
var didSetUD: [UserDiscovery?] = []
var didSetE2E: [E2E?] = []
var didSetCMix: [CMix?] = []
var env: MessengerEnvironment = .unimplemented
env.ud.set = { didSetUD.append($0) }
env.e2e.set = { didSetE2E.append($0) }
env.cMix.set = { didSetCMix.append($0) }
env.fileManager.removeDirectory = { _ in throw error }
let destroy: MessengerDestroy = .live(env)
XCTAssertThrowsError(try destroy()) { err in
XCTAssertEqual(err as? Error, error)
}
XCTAssertNoDifference(didSetUD.map { $0 == nil }, [true])
XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true])
XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true])
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment