diff --git a/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift b/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift index 3c0620a2..147fda67 100644 --- a/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift +++ b/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift @@ -83,9 +83,15 @@ public func fixture(filePath: String, status: Int32 = 200, headers: [NSObject: A * - Returns: The opaque `OHHTTPStubsDescriptor` that uniquely identifies the stub * and can be later used to remove it with `removeStub:` */ +#if swift(>=3.0) +public func stub(condition: @escaping OHHTTPStubsTestBlock, response: @escaping OHHTTPStubsResponseBlock) -> OHHTTPStubsDescriptor { + return OHHTTPStubs.stubRequests(passingTest: condition, withStubResponse: response) +} +#else public func stub(condition: OHHTTPStubsTestBlock, response: OHHTTPStubsResponseBlock) -> OHHTTPStubsDescriptor { return OHHTTPStubs.stubRequests(passingTest: condition, withStubResponse: response) } +#endif @@ -275,9 +281,15 @@ public func hasHeaderNamed(_ name: String, value: String) -> OHHTTPStubsTestBloc * * - Returns: a matcher (`OHHTTPStubsTestBlock`) that succeeds if either of the given matchers succeeds */ +#if swift(>=3.0) +public func || (lhs: @escaping OHHTTPStubsTestBlock, rhs: @escaping OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { + return { req in lhs(req) || rhs(req) } +} +#else public func || (lhs: OHHTTPStubsTestBlock, rhs: OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { return { req in lhs(req) || rhs(req) } } +#endif /** * Combine different `OHHTTPStubsTestBlock` matchers with an 'AND' operation. @@ -287,9 +299,15 @@ public func || (lhs: OHHTTPStubsTestBlock, rhs: OHHTTPStubsTestBlock) -> OHHTTPS * * - Returns: a matcher (`OHHTTPStubsTestBlock`) that only succeeds if both of the given matchers succeeds */ +#if swift(>=3.0) +public func && (lhs: @escaping OHHTTPStubsTestBlock, rhs: @escaping OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { + return { req in lhs(req) && rhs(req) } +} +#else public func && (lhs: OHHTTPStubsTestBlock, rhs: OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { return { req in lhs(req) && rhs(req) } } +#endif /** * Create the opposite of a given `OHHTTPStubsTestBlock` matcher. @@ -298,6 +316,12 @@ public func && (lhs: OHHTTPStubsTestBlock, rhs: OHHTTPStubsTestBlock) -> OHHTTPS * * - Returns: a matcher (OHHTTPStubsTestBlock) that only succeeds if the expr matcher fails */ +#if swift(>=3.0) +public prefix func ! (expr: @escaping OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { + return { req in !expr(req) } +} +#else public prefix func ! (expr: OHHTTPStubsTestBlock) -> OHHTTPStubsTestBlock { return { req in !expr(req) } } +#endif