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
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.
Finish editing this message first!
Please register or to comment