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
This commit is part of merge request !138. Comments created here will be created in the context of that merge request.
......@@ -4,6 +4,7 @@ import XXClient
public struct MessengerTrackServices {
public enum Error: Swift.Error, Equatable {
case notLoaded
case notConnected
}
public typealias OnError = (Swift.Error) -> Void
......@@ -21,6 +22,9 @@ extension MessengerTrackServices {
guard let cMix = env.cMix() else {
throw Error.notLoaded
}
guard let e2e = env.e2e() else {
throw Error.notConnected
}
let callback = TrackServicesCallback { result in
switch result {
case .success(let serviceList):
......@@ -30,7 +34,10 @@ extension MessengerTrackServices {
onError(error)
}
}
cMix.trackServices(callback: callback)
try cMix.trackServicesWithIdentity(
e2eId: e2e.getId(),
callback: callback
)
}
}
}
......
......@@ -9,7 +9,9 @@ final class MessengerTrackServicesTests: XCTestCase {
struct Failure: Error, Equatable {}
let failure = Failure()
let serviceList = MessageServiceList.stub()
let e2eId = 123
var didTrackServicesWithIdentity: [Int] = []
var didSetServiceList: [MessageServiceList?] = []
var didReceiveError: [Error] = []
var callbacks: [TrackServicesCallback] = []
......@@ -20,17 +22,24 @@ final class MessengerTrackServicesTests: XCTestCase {
}
env.cMix.get = {
var cMix: CMix = .unimplemented
cMix.trackServices.run = { callback in
cMix.trackServicesWithIdentity.run = { e2eId, callback in
didTrackServicesWithIdentity.append(e2eId)
callbacks.append(callback)
}
return cMix
}
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { e2eId }
return e2e
}
let track: MessengerTrackServices = .live(env)
try track(onError: { error in
didReceiveError.append(error)
})
XCTAssertNoDifference(didTrackServicesWithIdentity, [e2eId])
XCTAssertEqual(callbacks.count, 1)
didSetServiceList = []
......@@ -56,8 +65,22 @@ final class MessengerTrackServicesTests: XCTestCase {
XCTAssertThrowsError(try track(onError: unimplemented())) { error in
XCTAssertNoDifference(
error as NSError,
MessengerTrackServices.Error.notLoaded as NSError
error as? MessengerTrackServices.Error,
.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