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

Start ReceiveFileHandler when app starts

parent ada1bf9d
No related branches found
No related tags found
2 merge requests!124File transfers example,!102Release 1.0.0
......@@ -113,6 +113,9 @@ extension AppEnvironment {
messenger: messenger,
db: dbManager.getDB
),
receiveFileHandler: .live(
messenger: messenger
),
backupStorage: backupStorage,
log: .live(),
mainQueue: mainQueue,
......
......@@ -50,6 +50,7 @@ struct AppEnvironment {
var messenger: Messenger
var authHandler: AuthCallbackHandler
var messageListener: MessageListenerHandler
var receiveFileHandler: ReceiveFileHandler
var backupStorage: BackupStorage
var log: Logger
var mainQueue: AnySchedulerOf<DispatchQueue>
......@@ -66,6 +67,7 @@ extension AppEnvironment {
messenger: .unimplemented,
authHandler: .unimplemented,
messageListener: .unimplemented,
receiveFileHandler: .unimplemented,
backupStorage: .unimplemented,
log: .unimplemented,
mainQueue: .unimplemented,
......@@ -98,6 +100,10 @@ let appReducer = Reducer<AppState, AppAction, AppEnvironment>
cancellables.append(env.messageListener(onError: { error in
env.log(.error(error as NSError))
}))
cancellables.append(env.receiveFileHandler(onError: { error in
env.log(.error(error as NSError))
}))
cancellables.append(env.messenger.registerBackupCallback(.init { data in
try? env.backupStorage.store(data)
}))
......
......@@ -34,6 +34,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -49,6 +53,7 @@ final class AppFeatureTests: XCTestCase {
.didMakeDB,
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
])
......@@ -83,6 +88,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -98,6 +107,7 @@ final class AppFeatureTests: XCTestCase {
.didMakeDB,
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
.didLoadMessenger,
])
......@@ -132,6 +142,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -148,6 +162,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
.didLoadMessenger,
])
......@@ -182,6 +197,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -198,6 +217,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
.didLoadMessenger,
])
......@@ -229,6 +249,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -245,6 +269,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
])
......@@ -331,6 +356,10 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didStartMessageListener)
return Cancellable {}
}
store.environment.receiveFileHandler.run = { _ in
actions.append(.didStartReceiveFileHandler)
return Cancellable {}
}
store.environment.messenger.registerBackupCallback.run = { _ in
actions.append(.didRegisterBackupCallback)
return Cancellable {}
......@@ -346,6 +375,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
])
......@@ -356,6 +386,7 @@ final class AppFeatureTests: XCTestCase {
var actions: [Action]!
var authHandlerOnError: [AuthCallbackHandler.OnError] = []
var messageListenerOnError: [MessageListenerHandler.OnError] = []
var fileHandlerOnError: [ReceiveFileHandler.OnError] = []
var backupCallback: [UpdateBackupFunc] = []
let store = TestStore(
......@@ -383,6 +414,13 @@ final class AppFeatureTests: XCTestCase {
actions.append(.didCancelMessageListener)
}
}
store.environment.receiveFileHandler.run = { onError in
fileHandlerOnError.append(onError)
actions.append(.didStartReceiveFileHandler)
return Cancellable {
actions.append(.didCancelReceiveFileHandler)
}
}
store.environment.messenger.registerBackupCallback.run = { callback in
backupCallback.append(callback)
actions.append(.didRegisterBackupCallback)
......@@ -406,6 +444,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
])
......@@ -420,9 +459,11 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didCancelAuthHandler,
.didCancelMessageListener,
.didCancelReceiveFileHandler,
.didCancelBackupCallback,
.didStartAuthHandler,
.didStartMessageListener,
.didStartReceiveFileHandler,
.didRegisterBackupCallback,
])
......@@ -444,6 +485,14 @@ final class AppFeatureTests: XCTestCase {
.didLog(.error(messageError as NSError))
])
actions = []
let fileError = NSError(domain: "receive-file-error", code: 3)
fileHandlerOnError.first?(fileError)
XCTAssertNoDifference(actions, [
.didLog(.error(fileError))
])
actions = []
let backupData = "backup".data(using: .utf8)!
backupCallback.first?.handle(backupData)
......@@ -458,6 +507,7 @@ final class AppFeatureTests: XCTestCase {
XCTAssertNoDifference(actions, [
.didCancelAuthHandler,
.didCancelMessageListener,
.didCancelReceiveFileHandler,
.didCancelBackupCallback,
])
}
......@@ -467,10 +517,12 @@ private enum Action: Equatable {
case didMakeDB
case didStartAuthHandler
case didStartMessageListener
case didStartReceiveFileHandler
case didRegisterBackupCallback
case didLoadMessenger
case didCancelAuthHandler
case didCancelMessageListener
case didCancelReceiveFileHandler
case didCancelBackupCallback
case didLog(Logger.Message)
case didStoreBackup(Data)
......
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