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

Update MessengerTrackServices

Use CMixTrackServicesWithIdentity instead of CMixTrackServices
parent 24a14ae9
No related branches found
No related tags found
2 merge requests!138Notifications,!102Release 1.0.0
...@@ -4,6 +4,7 @@ import XXClient ...@@ -4,6 +4,7 @@ import XXClient
public struct MessengerTrackServices { public struct MessengerTrackServices {
public enum Error: Swift.Error, Equatable { public enum Error: Swift.Error, Equatable {
case notLoaded case notLoaded
case notConnected
} }
public typealias OnError = (Swift.Error) -> Void public typealias OnError = (Swift.Error) -> Void
...@@ -21,6 +22,9 @@ extension MessengerTrackServices { ...@@ -21,6 +22,9 @@ extension MessengerTrackServices {
guard let cMix = env.cMix() else { guard let cMix = env.cMix() else {
throw Error.notLoaded throw Error.notLoaded
} }
guard let e2e = env.e2e() else {
throw Error.notConnected
}
let callback = TrackServicesCallback { result in let callback = TrackServicesCallback { result in
switch result { switch result {
case .success(let serviceList): case .success(let serviceList):
...@@ -30,7 +34,10 @@ extension MessengerTrackServices { ...@@ -30,7 +34,10 @@ extension MessengerTrackServices {
onError(error) onError(error)
} }
} }
cMix.trackServices(callback: callback) try cMix.trackServicesWithIdentity(
e2eId: e2e.getId(),
callback: callback
)
} }
} }
} }
......
...@@ -9,7 +9,9 @@ final class MessengerTrackServicesTests: XCTestCase { ...@@ -9,7 +9,9 @@ final class MessengerTrackServicesTests: XCTestCase {
struct Failure: Error, Equatable {} struct Failure: Error, Equatable {}
let failure = Failure() let failure = Failure()
let serviceList = MessageServiceList.stub() let serviceList = MessageServiceList.stub()
let e2eId = 123
var didTrackServicesWithIdentity: [Int] = []
var didSetServiceList: [MessageServiceList?] = [] var didSetServiceList: [MessageServiceList?] = []
var didReceiveError: [Error] = [] var didReceiveError: [Error] = []
var callbacks: [TrackServicesCallback] = [] var callbacks: [TrackServicesCallback] = []
...@@ -20,17 +22,24 @@ final class MessengerTrackServicesTests: XCTestCase { ...@@ -20,17 +22,24 @@ final class MessengerTrackServicesTests: XCTestCase {
} }
env.cMix.get = { env.cMix.get = {
var cMix: CMix = .unimplemented var cMix: CMix = .unimplemented
cMix.trackServices.run = { callback in cMix.trackServicesWithIdentity.run = { e2eId, callback in
didTrackServicesWithIdentity.append(e2eId)
callbacks.append(callback) callbacks.append(callback)
} }
return cMix return cMix
} }
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { e2eId }
return e2e
}
let track: MessengerTrackServices = .live(env) let track: MessengerTrackServices = .live(env)
try track(onError: { error in try track(onError: { error in
didReceiveError.append(error) didReceiveError.append(error)
}) })
XCTAssertNoDifference(didTrackServicesWithIdentity, [e2eId])
XCTAssertEqual(callbacks.count, 1) XCTAssertEqual(callbacks.count, 1)
didSetServiceList = [] didSetServiceList = []
...@@ -56,8 +65,22 @@ final class MessengerTrackServicesTests: XCTestCase { ...@@ -56,8 +65,22 @@ final class MessengerTrackServicesTests: XCTestCase {
XCTAssertThrowsError(try track(onError: unimplemented())) { error in XCTAssertThrowsError(try track(onError: unimplemented())) { error in
XCTAssertNoDifference( XCTAssertNoDifference(
error as NSError, error as? MessengerTrackServices.Error,
MessengerTrackServices.Error.notLoaded as NSError .notLoaded
)
}
}
func testTrackWhenNotConnected() {
var env: MessengerEnvironment = .unimplemented
env.cMix.get = { .unimplemented }
env.e2e.get = { nil }
let track: MessengerTrackServices = .live(env)
XCTAssertThrowsError(try track(onError: unimplemented())) { error in
XCTAssertNoDifference(
error as? MessengerTrackServices.Error,
.notConnected
) )
} }
} }
......
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