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

Add ConnectionGetPartner functor

parent f8547499
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
...@@ -2,24 +2,28 @@ import Bindings ...@@ -2,24 +2,28 @@ import Bindings
public struct Connection { public struct Connection {
public var getId: ConnectionGetId public var getId: ConnectionGetId
public var getPartner: ConnectionGetPartner
} }
extension Connection { extension Connection {
public static func live(_ bindingsConnection: BindingsConnection) -> Connection { public static func live(_ bindingsConnection: BindingsConnection) -> Connection {
Connection( Connection(
getId: .live(bindingsConnection) getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection)
) )
} }
public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection { public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection {
Connection( Connection(
getId: .live(bindingsConnection) getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection)
) )
} }
} }
extension Connection { extension Connection {
public static let unimplemented = Connection( public static let unimplemented = Connection(
getId: .unimplemented getId: .unimplemented,
getPartner: .unimplemented
) )
} }
import Bindings import Bindings
import XCTestDynamicOverlay
public struct ConnectionPartnerProvider { public struct ConnectionGetPartner {
public var get: () -> Data public var run: () -> Data
public func callAsFunction() -> Data { public func callAsFunction() -> Data {
get() run()
} }
} }
extension ConnectionPartnerProvider { extension ConnectionGetPartner {
public static func live( public static func live(_ bindingsConnection: BindingsConnection) -> ConnectionGetPartner {
bindingsConnection: BindingsConnection ConnectionGetPartner {
) -> ConnectionPartnerProvider {
ConnectionPartnerProvider {
guard let data = bindingsConnection.getPartner() else { guard let data = bindingsConnection.getPartner() else {
fatalError("BindingsConnection.getPartner returned `nil`") fatalError("BindingsConnection.getPartner returned `nil`")
} }
...@@ -20,11 +19,9 @@ extension ConnectionPartnerProvider { ...@@ -20,11 +19,9 @@ extension ConnectionPartnerProvider {
} }
} }
public static func live( public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> ConnectionGetPartner {
bindingsAuthenticatedConnection: BindingsAuthenticatedConnection ConnectionGetPartner {
) -> ConnectionPartnerProvider { guard let data = bindingsConnection.getPartner() else {
ConnectionPartnerProvider {
guard let data = bindingsAuthenticatedConnection.getPartner() else {
fatalError("BindingsAuthenticatedConnection.getPartner returned `nil`") fatalError("BindingsAuthenticatedConnection.getPartner returned `nil`")
} }
return data return data
...@@ -32,10 +29,8 @@ extension ConnectionPartnerProvider { ...@@ -32,10 +29,8 @@ extension ConnectionPartnerProvider {
} }
} }
#if DEBUG extension ConnectionGetPartner {
extension ConnectionPartnerProvider { public static let unimplemented = ConnectionGetPartner(
public static let failing = ConnectionPartnerProvider { run: XCTUnimplemented("\(Self.self)")
fatalError("Not implemented") )
}
} }
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment