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

Add CmixStartNetworkFollower functor

parent 786f12f3
Branches
Tags
2 merge requests!102Release 1.0.0,!18Update Bindings
...@@ -6,6 +6,7 @@ public struct Cmix { ...@@ -6,6 +6,7 @@ public struct Cmix {
public var isHealthy: CmixIsHealthy public var isHealthy: CmixIsHealthy
public var hasRunningProcesses: CmixHasRunningProcesses public var hasRunningProcesses: CmixHasRunningProcesses
public var networkFollowerStatus: CmixNetworkFollowerStatus public var networkFollowerStatus: CmixNetworkFollowerStatus
public var startNetworkFollower: CmixStartNetworkFollower
} }
extension Cmix { extension Cmix {
...@@ -15,7 +16,8 @@ extension Cmix { ...@@ -15,7 +16,8 @@ extension Cmix {
makeReceptionIdentity: .live(bindingsCmix), makeReceptionIdentity: .live(bindingsCmix),
isHealthy: .live(bindingsCmix), isHealthy: .live(bindingsCmix),
hasRunningProcesses: .live(bindingsCmix), hasRunningProcesses: .live(bindingsCmix),
networkFollowerStatus: .live(bindingsCmix) networkFollowerStatus: .live(bindingsCmix),
startNetworkFollower: .live(bindingsCmix)
) )
} }
} }
...@@ -26,6 +28,7 @@ extension Cmix { ...@@ -26,6 +28,7 @@ extension Cmix {
makeReceptionIdentity: .unimplemented, makeReceptionIdentity: .unimplemented,
isHealthy: .unimplemented, isHealthy: .unimplemented,
hasRunningProcesses: .unimplemented, hasRunningProcesses: .unimplemented,
networkFollowerStatus: .unimplemented networkFollowerStatus: .unimplemented,
startNetworkFollower: .unimplemented
) )
} }
import Bindings
import XCTestDynamicOverlay
public struct CmixStartNetworkFollower {
public var start: (Int) throws -> Void
public func callAsFunction(timeoutMS: Int) throws {
try start(timeoutMS)
}
}
extension CmixStartNetworkFollower {
public static func live(_ bindingsCmix: BindingsCmix) -> CmixStartNetworkFollower {
CmixStartNetworkFollower { timeoutMS in
try bindingsCmix.startNetworkFollower(timeoutMS)
}
}
}
extension CmixStartNetworkFollower {
public static let unimplemented = CmixStartNetworkFollower(
start: XCTUnimplemented("\(Self.self)")
)
}
import Bindings //import Bindings
//
public struct NetworkFollower { //public struct NetworkFollower {
public var status: NetworkFollowerStatusProvider // public var status: NetworkFollowerStatusProvider
public var start: NetworkFollowerStarter // public var start: NetworkFollowerStarter
public var stop: NetworkFollowerStopper // public var stop: NetworkFollowerStopper
} //}
//
extension NetworkFollower { //extension NetworkFollower {
public static func live(bindingsClient: BindingsCmix) -> NetworkFollower { // public static func live(bindingsClient: BindingsCmix) -> NetworkFollower {
NetworkFollower( // NetworkFollower(
status: .live(bindingsClient: bindingsClient), // status: .live(bindingsClient: bindingsClient),
start: .live(bindingsClient: bindingsClient), // start: .live(bindingsClient: bindingsClient),
stop: .live(bindingsClient: bindingsClient) // stop: .live(bindingsClient: bindingsClient)
) // )
} // }
} //}
//
#if DEBUG //#if DEBUG
extension NetworkFollower { //extension NetworkFollower {
public static let failing = NetworkFollower( // public static let failing = NetworkFollower(
status: .failing, // status: .failing,
start: .failing, // start: .failing,
stop: .failing // stop: .failing
) // )
} //}
#endif //#endif
import Bindings
public struct NetworkFollowerStarter {
public var start: (_ timeoutMS: Int) throws -> Void
public func callAsFunction(timeoutMS: Int) throws {
try start(timeoutMS)
}
}
extension NetworkFollowerStarter {
public static func live(bindingsClient: BindingsCmix) -> NetworkFollowerStarter {
NetworkFollowerStarter { timeoutMS in
try bindingsClient.startNetworkFollower(timeoutMS)
}
}
}
#if DEBUG
extension NetworkFollowerStarter {
public static let failing = NetworkFollowerStarter { _ in
struct NotImplemented: Error {}
throw NotImplemented()
}
}
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment