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

Add SetFactsOnContact functor

parent e1462a9a
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
This commit is part of merge request !18. Comments created here will be created in the context of that merge request.
import Bindings import Bindings
import XCTestDynamicOverlay
public struct ContactFactsSetter { public struct SetFactsOnContact {
public var set: (Data, [Fact]) throws -> Data public var run: (Data, [Fact]) throws -> Data
public func callAsFunction( public func callAsFunction(
contact: Data, contact: Data,
facts: [Fact] facts: [Fact]
) throws -> Data { ) throws -> Data {
try set(contact, facts) try run(contact, facts)
} }
} }
extension ContactFactsSetter { extension SetFactsOnContact {
public static let live = ContactFactsSetter { contact, facts in public static let live = SetFactsOnContact { contact, facts in
let encoder = JSONEncoder() let factsData = try facts.encode()
let factsData = try encoder.encode(facts)
var error: NSError? var error: NSError?
let updatedContact = BindingsSetFactsOnContact(contact, factsData, &error) let updatedContact = BindingsSetFactsOnContact(contact, factsData, &error)
if let error = error { if let error = error {
...@@ -27,11 +27,8 @@ extension ContactFactsSetter { ...@@ -27,11 +27,8 @@ extension ContactFactsSetter {
} }
} }
#if DEBUG extension SetFactsOnContact {
extension ContactFactsSetter { public static let unimplemented = SetFactsOnContact(
public static let failing = ContactFactsSetter { _, _ in run: XCTUnimplemented("\(Self.self)")
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