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