From d99fab4c1b508cd2ded88c370efc4c1b82bc1efd Mon Sep 17 00:00:00 2001 From: Jordhan Date: Wed, 14 Apr 2021 19:19:27 +0200 Subject: [PATCH 1/4] update README.md --- README.md | 98 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 87de7d8..8fa29f9 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,9 @@ MockSwift

-Welcome to MockSwift! +Welcome to MockSwift ======= + [![Release](https://img.shields.io/github/v/release/leoture/MockSwift?color=red)](https://github.com/leoture/MockSwift/releases) [![Build Status](https://github.com/leoture/MockSwift/workflows/Master/badge.svg?branch=master)](https://github.com/leoture/MockSwift/actions) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/d857788324854dc989d76a18a9d48f7e)](https://www.codacy.com/gh/leoture/MockSwift/dashboard?utm_source=github.com&utm_medium=referral&utm_content=leoture/MockSwift&utm_campaign=Badge_Grade) @@ -13,36 +14,43 @@ Welcome to MockSwift! [![Swift](https://img.shields.io/badge/Swift-5.3-important)](https://swift.org) [![license MIT](https://img.shields.io/badge/license-MIT-informational)](https://github.com/leoture/MockSwift/blob/master/LICENSE) -**MockSwift** allows you to [**write mocks**](#write-mocks) and [**make better tests**](#make-better-tests). Because **MockSwift** is an **open source** library **100%** written in **Swift**, it is **AVAILABLE ON ALL PLATFORMS**. +**MockSwift** allows you to [**write mocks**](#write-mocks) and [**make better tests**](#make-better-tests). Because **MockSwift** is an **open source** library **100%** written in **Swift**, it is **AVAILABLE ON ALL PLATFORMS**. Initially MockSwift is inspired by [Mockito](https://site.mockito.org). - ###### Table of Contents + - [Features](#features) - [Installation](#installation) - [Usage](#usage) - [Documentation](#documentation) -- [Playgrounds](#playgrounds) - [Contribution](#contribution) - [License](#license) # Features + Actually MockSwift supports: -- **Mocking** - - [x] **protocol** (methods, properties, subscripts) - - [ ] class ([v2](https://github.com/leoture/MockSwift/projects/2)) - - [ ] struct ([v2](https://github.com/leoture/MockSwift/projects/2)) - - [ ] enum ([v2](https://github.com/leoture/MockSwift/projects/2)) -- **Call verification** - - [x] **protocol** (methods, properties, subscripts) - - [ ] class ([v2](https://github.com/leoture/MockSwift/projects/2)) - - [ ] struct ([v2](https://github.com/leoture/MockSwift/projects/2)) - - [ ] enum ([v2](https://github.com/leoture/MockSwift/projects/2)) -- [x] **Generics** -- [x] **Parameters matching** -- [x] **Default values for Types** + +- **Stub** + - [x] Protocol methods + - [x] Protocol properties + - [x] Protocol subscripts + - [ ] Class + - [ ] Struct + - [ ] Enum + - [x] Default values for types +- **Verify interactions** + - [x] Protocol methods + - [x] Protocol properties + - [x] Protocol subscripts + - [ ] Class + - [ ] Struct + - [ ] Enum +_ **Parameter matching** + - [x] Predicates + - [x] Generics #### CHANGELOG + You can see all changes and new features [here](https://github.com/leoture/MockSwift/blob/master/CHANGELOG.md). # Installation @@ -65,6 +73,37 @@ let package = Package( ``` # Usage +## Quick Look +```swift +class AwesomeTests: XCTestCase { + + private var printer: Printer! + @Mock private var userService: UserService + + override func setUp() { + printer = Printer(userService) + } + + func test_sayHello() { + // Given + given(userService).fetchUserName(of: "you").willReturn("my friend") + given(userService).isConnected.get.willReturn(true) + given(userService)[cache: .any()].set(.any()).willDoNothing() + + // When + let message = printer.sayHello(to: "you", from: "me") + + // Then + then(userService).fetchUserName(of: .any()).called() + then(userService).isConnected.get.called(times: 1) + then(userService)[cache: "you"].set("my friend").calledOnce() + + XCTAssertEqual(message, "me: Hello my friend") + } +} +``` + +## Details Suppose that you have a `UserService` protocol. ```swift struct User: Equatable { @@ -95,6 +134,7 @@ class UserCore { ## Make better tests Now, with MockSwift, you can use a mocked `UserService` in your tests with the `@Mock` annotation. + ```swift @Mock private var service: UserService @@ -104,6 +144,7 @@ private var service: UserService = Mock() ``` And easly configure it to fully test `UseCore`. + ```swift class UserCoreTests: XCTestCase { @@ -164,9 +205,11 @@ you can also define behaviours when you instantiate the mock. }) private var service: UserService ``` + ### Then `then()` enables you to verify calls. example: + ```swift then(service).fetch(identifier: .any()).called() @@ -176,18 +219,30 @@ then(service) { $0.fetch(identifier: .any()).called() } ``` + ```swift then(service) { $0.fetch(identifier: "current").called(times: >=2) - $0.fetch(identifier: =="").called(times: 0) + $0.fetch(identifier: == "").called(times: 0) } ``` + +You can go further and verify order of calls +```swift +let assertion = then(service).fetch(identifier: "current").called(times: >=2) +then(service).fetch(identifier: == "").called(times: 1, after: assertion) +``` + ### Stubs + In MockSwift, stubs are default values that are returned when no behaviours has been found. + #### Global Stubs + You can define a **global stub** for any type. It will concern **all mocks** you will use in **every tests**. + ```swift extension User: GlobalStub { static func stub() -> User { @@ -195,6 +250,7 @@ extension User: GlobalStub { } } ``` + #### Local Stubs You can also define a **stub localy** for any type. It will concern only the **current mock**. @@ -276,13 +332,9 @@ extension Then where WrappedType == UserService { } } ``` + # Documentation If you need more details about the API, you can check out our [API documentation](https://leoture.github.io/MockSwift/) or our [GitBook](https://mockswift.gitbook.io/mockswift/). -# Playgrounds -This project contains playgrounds that can help you experiment **MockSwift** . -To use playgrounds: -- open **MockSwift.xcworkspace** -- build the **MockSwiftPlayground scheme**. # Contribution Would you like to contribute to MockSwift? Please read our [contributing guidelines](https://github.com/leoture/MockSwift/blob/master/CONTRIBUTING.md) and [code of conduct](https://github.com/leoture/MockSwift/blob/master/CODE_OF_CONDUCT.md). From 0f8531c4bd07701e19954d1ee926a6e7f70ba187 Mon Sep 17 00:00:00 2001 From: Jordhan Date: Wed, 14 Apr 2021 19:26:15 +0200 Subject: [PATCH 2/4] update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 13cf92b..0b8993b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ Before you start contributing, please read this file and do your best to comply ## 🤔 Asking Questions If you have a question, check that nobody asked this question before. -Otherwise, please open an issue as a [**Bug Report**](https://github.com/leoture/MockSwift/issues/new?assignees=&labels=bug&template=bug_report.md&title=) and add `question` label. +Otherwise, please open an issue as a [**Question**](https://github.com/leoture/MockSwift/issues/new?assignees=&labels=question&template=question.md&title=). We will make our best to answer you as quickly as possible! >If you find that this question has already been asked in an issue, add 👍 as *reaction* on the issue. From 6d2aee45f579db50b6f392707baec07d77d16ab0 Mon Sep 17 00:00:00 2001 From: Jordhan Date: Wed, 14 Apr 2021 19:34:43 +0200 Subject: [PATCH 3/4] remove playground --- CONTRIBUTING.md | 1 - .../contents.xcworkspacedata | 3 - .../project.pbxproj | 366 ------------------ .../xcschemes/MockSwiftPlayground.xcscheme | 67 ---- .../MockSwiftPlayground/Info.plist | 22 -- .../MockSwiftPlayground/MockSwiftPlayground.h | 19 - .../Playground.playground/Contents.swift | 92 ----- .../contents.xcplayground | 4 - .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - 10 files changed, 589 deletions(-) delete mode 100644 MockSwiftPlayground/MockSwiftPlayground.xcodeproj/project.pbxproj delete mode 100644 MockSwiftPlayground/MockSwiftPlayground.xcodeproj/xcshareddata/xcschemes/MockSwiftPlayground.xcscheme delete mode 100644 MockSwiftPlayground/MockSwiftPlayground/Info.plist delete mode 100644 MockSwiftPlayground/MockSwiftPlayground/MockSwiftPlayground.h delete mode 100644 MockSwiftPlayground/Playground.playground/Contents.swift delete mode 100644 MockSwiftPlayground/Playground.playground/contents.xcplayground delete mode 100644 MockSwiftPlayground/Playground.playground/playground.xcworkspace/contents.xcworkspacedata delete mode 100644 MockSwiftPlayground/Playground.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0b8993b..977d166 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,6 @@ We will make our best to answer you as quickly as possible! #### With Xcode - Open `MockSwift.xcworkspace`. - To build or test the project: choose `MockSwift-Package` scheme on `My Mac`. -- Before using playgrounds build the `MockSwiftPlayground` scheme. #### With Swift Package Manager - To build or test the project: use the respective commands `swift build` and `swift test`. diff --git a/MockSwift.xcworkspace/contents.xcworkspacedata b/MockSwift.xcworkspace/contents.xcworkspacedata index d1328dd..bc9731f 100644 --- a/MockSwift.xcworkspace/contents.xcworkspacedata +++ b/MockSwift.xcworkspace/contents.xcworkspacedata @@ -4,9 +4,6 @@ - - diff --git a/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/project.pbxproj b/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/project.pbxproj deleted file mode 100644 index 19bcb29..0000000 --- a/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/project.pbxproj +++ /dev/null @@ -1,366 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 9EB7257F22F5E6C900F285FD /* MockSwiftPlayground.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EB7257D22F5E6C900F285FD /* MockSwiftPlayground.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9EB7258822F5E74900F285FD /* MockSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EB7258722F5E74900F285FD /* MockSwift.framework */; }; - 9EB7258922F5E74900F285FD /* MockSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9EB7258722F5E74900F285FD /* MockSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9EB7258A22F5E74900F285FD /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 9EB7258922F5E74900F285FD /* MockSwift.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 9EB7257A22F5E6C900F285FD /* MockSwiftPlayground.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MockSwiftPlayground.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9EB7257D22F5E6C900F285FD /* MockSwiftPlayground.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockSwiftPlayground.h; sourceTree = ""; }; - 9EB7257E22F5E6C900F285FD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9EB7258522F5E70700F285FD /* Playground.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Playground.playground; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 9EB7258722F5E74900F285FD /* MockSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MockSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 9EB7257722F5E6C900F285FD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9EB7258822F5E74900F285FD /* MockSwift.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9EB7257022F5E6C900F285FD = { - isa = PBXGroup; - children = ( - 9EB7258522F5E70700F285FD /* Playground.playground */, - 9EB7257C22F5E6C900F285FD /* MockSwiftPlayground */, - 9EB7257B22F5E6C900F285FD /* Products */, - 9EB7258622F5E74900F285FD /* Frameworks */, - ); - sourceTree = ""; - }; - 9EB7257B22F5E6C900F285FD /* Products */ = { - isa = PBXGroup; - children = ( - 9EB7257A22F5E6C900F285FD /* MockSwiftPlayground.framework */, - ); - name = Products; - sourceTree = ""; - }; - 9EB7257C22F5E6C900F285FD /* MockSwiftPlayground */ = { - isa = PBXGroup; - children = ( - 9EB7257D22F5E6C900F285FD /* MockSwiftPlayground.h */, - 9EB7257E22F5E6C900F285FD /* Info.plist */, - ); - path = MockSwiftPlayground; - sourceTree = ""; - }; - 9EB7258622F5E74900F285FD /* Frameworks */ = { - isa = PBXGroup; - children = ( - 9EB7258722F5E74900F285FD /* MockSwift.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 9EB7257522F5E6C900F285FD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9EB7257F22F5E6C900F285FD /* MockSwiftPlayground.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 9EB7257922F5E6C900F285FD /* MockSwiftPlayground */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9EB7258222F5E6C900F285FD /* Build configuration list for PBXNativeTarget "MockSwiftPlayground" */; - buildPhases = ( - 9EB7257522F5E6C900F285FD /* Headers */, - 9EB7257622F5E6C900F285FD /* Sources */, - 9EB7257722F5E6C900F285FD /* Frameworks */, - 9EB7257822F5E6C900F285FD /* Resources */, - 9EB7258A22F5E74900F285FD /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MockSwiftPlayground; - productName = MockSwiftPlayground; - productReference = 9EB7257A22F5E6C900F285FD /* MockSwiftPlayground.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 9EB7257122F5E6C900F285FD /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1200; - ORGANIZATIONNAME = "jordhan leoture"; - TargetAttributes = { - 9EB7257922F5E6C900F285FD = { - CreatedOnToolsVersion = 11.0; - }; - }; - }; - buildConfigurationList = 9EB7257422F5E6C900F285FD /* Build configuration list for PBXProject "MockSwiftPlayground" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 9EB7257022F5E6C900F285FD; - productRefGroup = 9EB7257B22F5E6C900F285FD /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 9EB7257922F5E6C900F285FD /* MockSwiftPlayground */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 9EB7257822F5E6C900F285FD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 9EB7257622F5E6C900F285FD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 9EB7258022F5E6C900F285FD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 9EB7258122F5E6C900F285FD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 9EB7258322F5E6C900F285FD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = VFBUQ866W5; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = MockSwiftPlayground/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.jordhan-leoture.MockSwiftPlayground"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 9EB7258422F5E6C900F285FD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = VFBUQ866W5; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = MockSwiftPlayground/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.jordhan-leoture.MockSwiftPlayground"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 9EB7257422F5E6C900F285FD /* Build configuration list for PBXProject "MockSwiftPlayground" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9EB7258022F5E6C900F285FD /* Debug */, - 9EB7258122F5E6C900F285FD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9EB7258222F5E6C900F285FD /* Build configuration list for PBXNativeTarget "MockSwiftPlayground" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9EB7258322F5E6C900F285FD /* Debug */, - 9EB7258422F5E6C900F285FD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 9EB7257122F5E6C900F285FD /* Project object */; -} diff --git a/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/xcshareddata/xcschemes/MockSwiftPlayground.xcscheme b/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/xcshareddata/xcschemes/MockSwiftPlayground.xcscheme deleted file mode 100644 index 83c6877..0000000 --- a/MockSwiftPlayground/MockSwiftPlayground.xcodeproj/xcshareddata/xcschemes/MockSwiftPlayground.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MockSwiftPlayground/MockSwiftPlayground/Info.plist b/MockSwiftPlayground/MockSwiftPlayground/Info.plist deleted file mode 100644 index 9bcb244..0000000 --- a/MockSwiftPlayground/MockSwiftPlayground/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/MockSwiftPlayground/MockSwiftPlayground/MockSwiftPlayground.h b/MockSwiftPlayground/MockSwiftPlayground/MockSwiftPlayground.h deleted file mode 100644 index 11584f6..0000000 --- a/MockSwiftPlayground/MockSwiftPlayground/MockSwiftPlayground.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// MockSwiftPlayground.h -// MockSwiftPlayground -// -// Created by jordhan leoture on 03/08/2019. -// Copyright © 2019 jordhan leoture. All rights reserved. -// - -#import - -//! Project version number for MockSwiftPlayground. -FOUNDATION_EXPORT double MockSwiftPlaygroundVersionNumber; - -//! Project version string for MockSwiftPlayground. -FOUNDATION_EXPORT const unsigned char MockSwiftPlaygroundVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/MockSwiftPlayground/Playground.playground/Contents.swift b/MockSwiftPlayground/Playground.playground/Contents.swift deleted file mode 100644 index 84c4c43..0000000 --- a/MockSwiftPlayground/Playground.playground/Contents.swift +++ /dev/null @@ -1,92 +0,0 @@ -import XCTest -import MockSwift - -struct User: Equatable { - let identifier: String - let name: String -} - -protocol UserService { - func fetch(identifier: String) -> User - func fetch(identifier: String) -> String -} - -extension Mock: UserService where WrappedType == UserService { - func fetch(identifier: String) -> User { mocked(identifier) } - func fetch(identifier: String) -> String { mocked(identifier) } -} - -extension Given where WrappedType == UserService { - func fetch(identifier: Predicate) -> Mockable { mockable(identifier) } - func fetch(identifier: Predicate) -> Mockable { mockable(identifier) } -} - -extension Then where WrappedType == UserService { - func fetch(identifier: Predicate) -> Verifiable { verifiable(identifier) } - func fetch(identifier: Predicate) -> Verifiable { verifiable(identifier) } -} - -extension User: GlobalStub { - static func stub() -> User { - User(identifier: "id", name: "John") - } -} - -class MyTests: XCTestCase { - @Mock private var service: UserService - - func test_fetch() { - // Given - let expectedUser = User(identifier: "id", name: "John") - - given(service) - .fetch(identifier: .any()) - .willReturn(expectedUser) - - // When - let user: User = service.fetch(identifier: "id") - - // Then - then(service) - .fetch(identifier: .any()) - .disambiguate(with: User.self) - .called() - XCTAssertEqual(user, expectedUser) - } - - func test_fetch_withDefault() { - // Given - let expectedUser = User(identifier: "id", name: "John") - - // When - let user: User = service.fetch(identifier: "id") - - // Then - XCTAssertEqual(user, expectedUser) - } -} - -MyTests.defaultTestSuite.run() - -let myPredicate = Predicate.match(description: "User.identifer == id") { user in - user.identifier == "id" -} - -myPredicate.satisfy(by: User(identifier: "id", name: "John")) -myPredicate.satisfy(by: User(identifier: "identifier", name: "John")) - -extension User: AnyPredicate { - var description: String { - "User.identifer == \(identifier)" - } - - func satisfy(by element: Any) -> Bool { - guard let element = element as? User else { - return false - } - return identifier == element.identifier - } -} - -User(identifier: "id", name: "").satisfy(by: User(identifier: "id", name: "John")) -User(identifier: "id", name: "").satisfy(by: User(identifier: "identifier", name: "John")) diff --git a/MockSwiftPlayground/Playground.playground/contents.xcplayground b/MockSwiftPlayground/Playground.playground/contents.xcplayground deleted file mode 100644 index 5da2641..0000000 --- a/MockSwiftPlayground/Playground.playground/contents.xcplayground +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/MockSwiftPlayground/Playground.playground/playground.xcworkspace/contents.xcworkspacedata b/MockSwiftPlayground/Playground.playground/playground.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a..0000000 --- a/MockSwiftPlayground/Playground.playground/playground.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/MockSwiftPlayground/Playground.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MockSwiftPlayground/Playground.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/MockSwiftPlayground/Playground.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - From dc1cdbe6bdfe6dbcf6e7e474b13da16ed5ebfdb8 Mon Sep 17 00:00:00 2001 From: Jordhan Date: Wed, 14 Apr 2021 19:55:53 +0200 Subject: [PATCH 4/4] documentation for release --- CHANGELOG.md | 26 +- README.md | 2 +- docs/Classes.html | 54 +- docs/Classes/Given.html | 54 +- docs/Classes/Interaction.html | 54 +- docs/Classes/Mock.html | 54 +- docs/Classes/Mockable.html | 99 +++- docs/Classes/MockableProperty.html | 54 +- docs/Classes/MockableProperty/Readable.html | 54 +- docs/Classes/MockableProperty/Writable.html | 54 +- docs/Classes/MockableSubscript.html | 54 +- docs/Classes/MockableSubscript/Readable.html | 54 +- docs/Classes/MockableSubscript/Writable.html | 54 +- docs/Classes/Predicate.html | 130 ++--- docs/Classes/Stub.html | 54 +- docs/Classes/Then.html | 54 +- docs/Classes/Verifiable.html | 220 +++++++- docs/Classes/VerifiableProperty.html | 54 +- docs/Classes/VerifiableProperty/Readable.html | 54 +- docs/Classes/VerifiableProperty/Writable.html | 54 +- docs/Classes/VerifiableSubscript.html | 54 +- .../Classes/VerifiableSubscript/Readable.html | 54 +- .../Classes/VerifiableSubscript/Writable.html | 54 +- docs/Enums.html | 54 +- docs/Enums/StrategyIdentifier.html | 54 +- docs/Extensions.html | 532 +++++++++++++++++- docs/Extensions/Array.html | 57 +- docs/Extensions/Decimal.html | 324 +++++++++++ docs/Extensions/Double.html | 324 +++++++++++ docs/Extensions/Float.html | 324 +++++++++++ docs/Extensions/Float80.html | 324 +++++++++++ docs/Extensions/NSNumber.html | 324 +++++++++++ docs/Functions.html | 54 +- docs/Protocols.html | 54 +- docs/Protocols/AnyPredicate.html | 54 +- docs/Protocols/Assertion.html | 54 +- docs/Protocols/GlobalStub.html | 54 +- docs/Typealiases.html | 54 +- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 54 +- .../Resources/Documents/Classes/Given.html | 54 +- .../Documents/Classes/Interaction.html | 54 +- .../Resources/Documents/Classes/Mock.html | 54 +- .../Resources/Documents/Classes/Mockable.html | 99 +++- .../Documents/Classes/MockableProperty.html | 54 +- .../Classes/MockableProperty/Readable.html | 54 +- .../Classes/MockableProperty/Writable.html | 54 +- .../Documents/Classes/MockableSubscript.html | 54 +- .../Classes/MockableSubscript/Readable.html | 54 +- .../Classes/MockableSubscript/Writable.html | 54 +- .../Documents/Classes/Predicate.html | 130 ++--- .../Resources/Documents/Classes/Stub.html | 54 +- .../Resources/Documents/Classes/Then.html | 54 +- .../Documents/Classes/Verifiable.html | 220 +++++++- .../Documents/Classes/VerifiableProperty.html | 54 +- .../Classes/VerifiableProperty/Readable.html | 54 +- .../Classes/VerifiableProperty/Writable.html | 54 +- .../Classes/VerifiableSubscript.html | 54 +- .../Classes/VerifiableSubscript/Readable.html | 54 +- .../Classes/VerifiableSubscript/Writable.html | 54 +- .../Contents/Resources/Documents/Enums.html | 54 +- .../Documents/Enums/StrategyIdentifier.html | 54 +- .../Resources/Documents/Extensions.html | 532 +++++++++++++++++- .../Resources/Documents/Extensions/Array.html | 57 +- .../Documents/Extensions/Decimal.html | 324 +++++++++++ .../Documents/Extensions/Double.html | 324 +++++++++++ .../Resources/Documents/Extensions/Float.html | 324 +++++++++++ .../Documents/Extensions/Float80.html | 324 +++++++++++ .../Documents/Extensions/NSNumber.html | 324 +++++++++++ .../Resources/Documents/Functions.html | 54 +- .../Resources/Documents/Protocols.html | 54 +- .../Documents/Protocols/AnyPredicate.html | 54 +- .../Documents/Protocols/Assertion.html | 54 +- .../Documents/Protocols/GlobalStub.html | 54 +- .../Resources/Documents/Typealiases.html | 54 +- .../Contents/Resources/Documents/badge.svg | 4 +- .../Contents/Resources/Documents/index.html | 135 +++-- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 28 + .../Contents/Resources/docSet.dsidx | Bin 40960 -> 45056 bytes docs/docsets/MockSwift.tgz | Bin 119005 -> 129861 bytes docs/index.html | 135 +++-- docs/search.json | 2 +- 83 files changed, 7834 insertions(+), 628 deletions(-) create mode 100644 docs/Extensions/Decimal.html create mode 100644 docs/Extensions/Double.html create mode 100644 docs/Extensions/Float.html create mode 100644 docs/Extensions/Float80.html create mode 100644 docs/Extensions/NSNumber.html create mode 100644 docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Decimal.html create mode 100644 docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Double.html create mode 100644 docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Float.html create mode 100644 docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Float80.html create mode 100644 docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/NSNumber.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c081a0..257575b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ [Unrelease](#Unrelease) +##### 1.x Releases +- [1.0.0](#1.0.0) + ##### 0.x Releases - [0.7.0](#0.7.0) - [0.6.0](#0.6.0) @@ -13,7 +16,22 @@ --- ## Unrelease -[Compare](https://github.com/leoture/MockSwift/compare/v0.7.0...HEAD) +[Compare](https://github.com/leoture/MockSwift/compare/v1.0.0...HEAD) +#### Added + +#### Changed + +#### Deprecated + +#### Removed + +#### Fixed + +#### Security + +--- +## [1.0.0](https://github.com/leoture/MockSwift/releases/tag/v1.0.0) - 2021-04-14 +[Compare](https://github.com/leoture/MockSwift/compare/v0.7.0...v1.0.0) #### Added - Add willDoNothing [#107](https://github.com/leoture/MockSwift/pull/107) by [Jordhan Leoture](https://github.com/leoture) - Add neverCalled [#106](https://github.com/leoture/MockSwift/pull/106) by [Jordhan Leoture](https://github.com/leoture) @@ -27,18 +45,12 @@ - Add GlobalStub for ExpressibleByArrayLiteral [#109](https://github.com/leoture/MockSwift/pull/109) by [Jordhan Leoture](https://github.com/leoture) - Add GlobalStub for ExpressibleByDictionaryLiteral [#109](https://github.com/leoture/MockSwift/pull/109) by [Jordhan Leoture](https://github.com/leoture) -#### Changed - -#### Deprecated - #### Removed - Remove Predicate.match(description:keyPath:) [#108](https://github.com/leoture/MockSwift/pull/108) by [Jordhan Leoture](https://github.com/leoture) #### Fixed - Make called(after:) fail when previsous Assertion is not valid [#110](https://github.com/leoture/MockSwift/pull/110) by [Jordhan Leoture](https://github.com/leoture) -#### Security - --- ## [0.7.0](https://github.com/leoture/MockSwift/releases/tag/v0.7.0) - 2020-10-21 [Compare](https://github.com/leoture/MockSwift/compare/v0.6.0...v0.7.0) diff --git a/README.md b/README.md index 8fa29f9..9266b08 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ import PackageDescription let package = Package( name: "MyProject", dependencies: [ - .package(url: "https://github.com/leoture/MockSwift.git", from: "0.7.0") + .package(url: "https://github.com/leoture/MockSwift.git", from: "1.0.0") ], targets: [ .testTarget(name: "MyProjectTests", dependencies: ["MockSwift"]) diff --git a/docs/Classes.html b/docs/Classes.html index e6290ed..33a0388 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

@@ -136,29 +136,71 @@ Array

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +

Available where ReturnType == Void

+

+
+
+
    +
  • +
    + + + + willDoNothing() + +
    +
    +
    +
    +
    +
    +

    Registers an empty block to excecute.

    +
    +

    See also

    + will(_ completion:) + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func willDoNothing()
    + +
    +
    +
    +
    +
  • +
+
diff --git a/docs/Classes/MockableProperty.html b/docs/Classes/MockableProperty.html index 85d76b7..7ced30e 100644 --- a/docs/Classes/MockableProperty.html +++ b/docs/Classes/MockableProperty.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

@@ -136,29 +136,71 @@ Array

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
  • - -
    -
    -
    -
    -
    -

    Creates a Predicate<Input>.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class func match(description: String? = nil,
    -                        any type: Input.Type = Input.self,
    -                        when keyPath: KeyPath<Input, Bool>) -> Predicate<Input>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - description - - -
    -

    The description of the Predicate.

    -
    -
    - - type - - -
    -

    The type to match.

    -
    -
    - - keyPath - - -
    -

    The keyPath that will be used to verify that the entry statisfies the Predicate.

    -
    -
    -
    -
    -

    Return Value

    -

    A new Predicate<Input>.

    -
    -
    -
    -
  • @@ -1364,8 +1330,8 @@

    Parameters

    diff --git a/docs/Classes/Stub.html b/docs/Classes/Stub.html index 788f3ec..c3761e4 100644 --- a/docs/Classes/Stub.html +++ b/docs/Classes/Stub.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
    +
    +
    +
    +
    +

    Checks that the function has never been called.

    +
    +

    Important

    + When assertion is specify, only calls that appear after +the minimum amount of calls required by the previous assertion will be considered. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func neverCalled(after assertion: Assertion? = nil,
    +                        file: StaticString = #file,
    +                        line: UInt = #line) -> Assertion
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assertion + + +
    +

    Previous assertion. nil by default.

    +
    +
    + + file + + +
    +

    File where called is called.

    +
    +
    + + line + + +
    +

    Line where calledis called.

    +
    +
    +
    +
    +

    Return Value

    +

    A new Assertion.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Checks that the function has been called once.

    +
    +

    Important

    + When assertion is specify, only calls that appear after +the minimum amount of calls required by the previous assertion will be considered. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func calledOnce(after assertion: Assertion? = nil,
    +                       file: StaticString = #file,
    +                       line: UInt = #line) -> Assertion
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assertion + + +
    +

    Previous assertion. nil by default.

    +
    +
    + + file + + +
    +

    File where called is called.

    +
    +
    + + line + + +
    +

    Line where calledis called.

    +
    +
    +
    +
    +

    Return Value

    +

    A new Assertion.

    +
    +
    +
    +
  • @@ -567,8 +775,8 @@

    Return Value

    diff --git a/docs/Classes/VerifiableProperty.html b/docs/Classes/VerifiableProperty.html index 3d7fd34..3111f51 100644 --- a/docs/Classes/VerifiableProperty.html +++ b/docs/Classes/VerifiableProperty.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • +
    + + + + IndexPath + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension IndexPath: GlobalStub
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Set + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Set: GlobalStub
    + +
    +
    +
    +
    +
  • + + +
    +
    + + +
    + +

    ExpressibleByNilLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Optional + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Optional: GlobalStub
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByBooleanLiteral

    +

    +
    +
    +
    • @@ -460,7 +614,6 @@

      Declaration

      Declaration

      @@ -475,14 +628,357 @@

      Declaration

    +
    +
    + + +
    + +

    ExpressibleByIntegerLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Int + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Int: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByFloatLiteral

    +

    +
    +
    + +
    +
    +
    + + +
    + +

    ExpressibleByStringLiteral

    +

    +
    +
    +
      +
    • +
      + + + + String + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension String: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + Substring + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Substring: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + StaticString + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension StaticString: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByDictionaryLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Dictionary + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Dictionary: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + KeyValuePairs + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension KeyValuePairs: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/docs/Extensions/Array.html b/docs/Extensions/Array.html index a9620f2..b6ef8c6 100644 --- a/docs/Extensions/Array.html +++ b/docs/Extensions/Array.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +

    Available where ReturnType == Void

    +

    +
    +
    +
      +
    • +
      + + + + willDoNothing() + +
      +
      +
      +
      +
      +
      +

      Registers an empty block to excecute.

      +
      +

      See also

      + will(_ completion:) + +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func willDoNothing()
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/MockableProperty.html b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/MockableProperty.html index 85d76b7..7ced30e 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/MockableProperty.html +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/MockableProperty.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
  • - -
    -
    -
    -
    -
    -

    Creates a Predicate<Input>.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class func match(description: String? = nil,
    -                        any type: Input.Type = Input.self,
    -                        when keyPath: KeyPath<Input, Bool>) -> Predicate<Input>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - description - - -
    -

    The description of the Predicate.

    -
    -
    - - type - - -
    -

    The type to match.

    -
    -
    - - keyPath - - -
    -

    The keyPath that will be used to verify that the entry statisfies the Predicate.

    -
    -
    -
    -
    -

    Return Value

    -

    A new Predicate<Input>.

    -
    -
    -
    -
  • @@ -1364,8 +1330,8 @@

    Parameters

    diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/Stub.html b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/Stub.html index 788f3ec..c3761e4 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/Stub.html +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/Stub.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
    +
    +
    +
    +
    +

    Checks that the function has never been called.

    +
    +

    Important

    + When assertion is specify, only calls that appear after +the minimum amount of calls required by the previous assertion will be considered. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func neverCalled(after assertion: Assertion? = nil,
    +                        file: StaticString = #file,
    +                        line: UInt = #line) -> Assertion
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assertion + + +
    +

    Previous assertion. nil by default.

    +
    +
    + + file + + +
    +

    File where called is called.

    +
    +
    + + line + + +
    +

    Line where calledis called.

    +
    +
    +
    +
    +

    Return Value

    +

    A new Assertion.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Checks that the function has been called once.

    +
    +

    Important

    + When assertion is specify, only calls that appear after +the minimum amount of calls required by the previous assertion will be considered. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func calledOnce(after assertion: Assertion? = nil,
    +                       file: StaticString = #file,
    +                       line: UInt = #line) -> Assertion
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assertion + + +
    +

    Previous assertion. nil by default.

    +
    +
    + + file + + +
    +

    File where called is called.

    +
    +
    + + line + + +
    +

    Line where calledis called.

    +
    +
    +
    +
    +

    Return Value

    +

    A new Assertion.

    +
    +
    +
    +
  • @@ -567,8 +775,8 @@

    Return Value

    diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/VerifiableProperty.html b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/VerifiableProperty.html index 3d7fd34..3111f51 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/VerifiableProperty.html +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Classes/VerifiableProperty.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • +
    + + + + IndexPath + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension IndexPath: GlobalStub
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Set + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Set: GlobalStub
    + +
    +
    +
    +
    +
  • + + +
    +
    + + +
    + +

    ExpressibleByNilLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Optional + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Optional: GlobalStub
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByBooleanLiteral

    +

    +
    +
    +
    • @@ -460,7 +614,6 @@

      Declaration

      Declaration

      @@ -475,14 +628,357 @@

      Declaration

    +
    +
    + + +
    + +

    ExpressibleByIntegerLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Int + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Int: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByFloatLiteral

    +

    +
    +
    + +
    +
    +
    + + +
    + +

    ExpressibleByStringLiteral

    +

    +
    +
    +
      +
    • +
      + + + + String + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension String: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + Substring + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Substring: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + StaticString + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension StaticString: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    ExpressibleByDictionaryLiteral

    +

    +
    +
    +
      +
    • +
      + + + + Dictionary + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension Dictionary: GlobalStub
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + KeyValuePairs + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension KeyValuePairs: GlobalStub
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Array.html b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Array.html index a9620f2..b6ef8c6 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Array.html +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/Extensions/Array.html @@ -23,7 +23,7 @@ MockSwift Docs - (94% documented) + (95% documented)

    @@ -136,29 +136,71 @@ Array

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Installation
  • Usage
  • Documentation
  • -
  • Playgrounds
  • Contribution
  • License
  • @@ -256,25 +297,30 @@

    Features

    Actually MockSwift supports:

      -
    • Mocking +
    • Stub
        -
      • [x] protocol (methods, properties, subscripts)
      • -
      • [ ] class (v2)
      • -
      • [ ] struct (v2)
      • -
      • [ ] enum (v2)
      • +
      • [x] Protocol methods
      • +
      • [x] Protocol properties
      • +
      • [x] Protocol subscripts
      • +
      • [ ] Class
      • +
      • [ ] Struct
      • +
      • [ ] Enum
      • +
      • [x] Default values for types
    • -
    • Call verification +
    • Verify interactions
        -
      • [x] protocol (methods, properties, subscripts)
      • -
      • [ ] class (v2)
      • -
      • [ ] struct (v2)
      • -
      • [ ] enum (v2)
      • +
      • [x] Protocol methods
      • +
      • [x] Protocol properties
      • +
      • [x] Protocol subscripts
      • +
      • [ ] Class
      • +
      • [ ] Struct
      • +
      • [ ] Enum +_ Parameter matching
      • +
      • [x] Predicates
      • +
      • [x] Generics
    • -
    • [x] Generics
    • -
    • [x] Parameters matching
    • -
    • [x] Default values for Types

    CHANGELOG

    @@ -290,7 +336,7 @@

    Swift Package Manager

    let package = Package( name: "MyProject", dependencies: [ - .package(url: "https://github.com/leoture/MockSwift.git", from: "0.7.0") + .package(url: "https://github.com/leoture/MockSwift.git", from: "1.0.0") ], targets: [ .testTarget(name: "MyProjectTests", dependencies: ["MockSwift"]) @@ -298,6 +344,35 @@

    Swift Package Manager

    )

    Usage

    +

    Quick Look

    +
    class AwesomeTests: XCTestCase {
    +
    +  private var printer: Printer!
    +  @Mock private var userService: UserService
    +
    +  override func setUp() {
    +    printer = Printer(userService)
    +  }
    +
    +  func test_sayHello() {
    +    // Given
    +    given(userService).fetchUserName(of: "you").willReturn("my friend")
    +    given(userService).isConnected.get.willReturn(true)
    +    given(userService)[cache: .any()].set(.any()).willDoNothing()
    +
    +    // When
    +    let message = printer.sayHello(to: "you", from: "me")
    +
    +    // Then
    +    then(userService).fetchUserName(of: .any()).called()
    +    then(userService).isConnected.get.called(times: 1)
    +    then(userService)[cache: "you"].set("my friend").calledOnce()
    +
    +    XCTAssertEqual(message, "me: Hello my friend")
    +  }
    +}
    +
    +

    Details

    Suppose that you have a UserService protocol.

    struct User: Equatable {
    @@ -403,9 +478,14 @@ 

    Then

    then(service) {
       $0.fetch(identifier: "current").called(times: >=2)
     
    -  $0.fetch(identifier: =="").called(times: 0)
    +  $0.fetch(identifier: == "").called(times: 0)
     }
     
    + +

    You can go further and verify order of calls

    +
    let assertion = then(service).fetch(identifier: "current").called(times: >=2)
    +then(service).fetch(identifier: == "").called(times: 1, after: assertion)
    +

    Stubs

    In MockSwift, stubs are default values that are returned when no behaviours has been found.

    @@ -496,15 +576,6 @@

    Manually

    Documentation

    If you need more details about the API, you can check out our API documentation or our GitBook.

    -

    Playgrounds

    - -

    This project contains playgrounds that can help you experiment MockSwift .
    -To use playgrounds:

    - -
      -
    • open MockSwift.xcworkspace
    • -
    • build the MockSwiftPlayground scheme.
    • -

    Contribution

    Would you like to contribute to MockSwift? Please read our contributing guidelines and code of conduct.

    @@ -522,8 +593,8 @@

    Credits

    diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/search.json b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/search.json index 2a63ce0..92ce7bb 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:9MockSwift13ParameterTypea":{"name":"ParameterType","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Self.

    ","parent_name":"GlobalStub"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP14firstValidTimeSdvp":{"name":"firstValidTime","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicateP7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicatePAASQRzrlE7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html":{"name":"AnyPredicate","abstract":"

    AnyPredicate represents a condition on an Any? element.

    "},"Protocols/Assertion.html":{"name":"Assertion","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html":{"name":"GlobalStub","abstract":"

    GlobalStub represents an entity able to give a stub value.

    "},"Functions.html#/s:9MockSwift5given_4file4lineAA5GivenCyxGx_s12StaticStringVSutlF":{"name":"given(_:file:line:)","abstract":"

    Creates a Given based on value.

    "},"Functions.html#/s:9MockSwift5given_4file4line_yx_s12StaticStringVSuyAA5GivenCyxGXEtlF":{"name":"given(_:file:line:_:)","abstract":"

    Call completion with a Given based on value.

    "},"Functions.html#/s:9MockSwift11interaction4withAA11InteractionCyxGx_tlF":{"name":"interaction(with:)","abstract":"

    Creates an Interaction based on value.

    "},"Functions.html#/s:9MockSwift2egoiyAA4StubCxm_xtlF":{"name":"=>(_:_:)","abstract":"

    Creates a Stub

    "},"Functions.html#/s:9MockSwift4then_4file4lineAA4ThenCyxGx_s12StaticStringVSutlF":{"name":"then(_:file:line:)","abstract":"

    Creates a Then based on value.

    "},"Functions.html#/s:9MockSwift4then_4file4line_yx_s12StaticStringVSuyAA4ThenCyxGXEtlF":{"name":"then(_:file:line:_:)","abstract":"

    Call completion with a Then based on value.

    "},"Functions.html#/s:9MockSwift3eeeopyAA9PredicateCyxGxRlzClF":{"name":"===(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    "},"Functions.html#/s:9MockSwift2eeopyAA9PredicateCyxGxSQRzlF":{"name":"==(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    "},"Functions.html#/s:9MockSwift1gopyAA9PredicateCyxGxSLRzlF":{"name":">(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    "},"Functions.html#/s:9MockSwift2geopyAA9PredicateCyxGxSLRzlF":{"name":">=(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    "},"Extensions/Bool.html#/s:Sb9MockSwiftE4stubSbyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Bool.

    ","parent_name":"Bool"},"Extensions/Int.html#/s:Si9MockSwiftE4stubSiyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Int.

    ","parent_name":"Int"},"Extensions/String.html#/s:SS9MockSwiftE4stubSSyFZ":{"name":"stub()","abstract":"

    Creates a stub value of String.

    ","parent_name":"String"},"Extensions/Array.html#/s:Sa9MockSwiftAA18StrategyIdentifierORszlE7defaultSayACGvpZ":{"name":"default","abstract":"

    Strategy alias of Stategies","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions.html#/c:objc(cs)NSObject":{"name":"NSObject"},"Extensions.html#/s:s18BooleanLiteralTypea":{"name":"BooleanLiteralType"},"Extensions.html#/s:s18IntegerLiteralTypea":{"name":"IntegerLiteralType"},"Extensions.html#/s:s17StringLiteralTypea":{"name":"StringLiteralType"},"Extensions.html#/s:s16FloatLiteralTypea":{"name":"FloatLiteralType"},"Extensions/String.html":{"name":"String"},"Extensions/Int.html":{"name":"Int"},"Extensions/Bool.html":{"name":"Bool"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO5givenyA2CmF":{"name":"given","abstract":"

    Stragegy that return values from Given block

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO10localStubsyA2CmF":{"name":"localStubs","abstract":"

    Stragegy that return values local stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO11globalStubsyA2CmF":{"name":"globalStubs","abstract":"

    Stragegy that return values global stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html":{"name":"StrategyIdentifier","abstract":"

    Undocumented

    "},"Classes/Predicate.html#/s:9MockSwift9PredicateC11descriptionSSvp":{"name":"description","abstract":"

    Description of the Predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any_ACyxGSSSg_xmSbxctFZ":{"name":"match(description:any:_:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any4whenACyxGSSSg_xms7KeyPathCyxSbGtFZ":{"name":"match(description:any:when:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3anyyACyxGxmFZ":{"name":"any(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3notyACyxGAEFZ":{"name":"not(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input not matched by an other predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5isNilACyqd__SgGylFZ":{"name":"isNil()","abstract":"

    Creates a Predicate<Input?> able to match nil.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE9identical2toACyxGx_tFZ":{"name":"identical(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE2idyACyxGxFZ":{"name":"id(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE6isTrueACySbGyFZ":{"name":"isTrue()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to true

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE7isFalseACySbGyFZ":{"name":"isFalse()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to false

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE6equals2toACyxGx_tFZ":{"name":"equals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE2eqyACyxGxFZ":{"name":"eq(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE7greater4thanACyxGx_tFZ":{"name":"greater(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2gtyACyxGxFZ":{"name":"gt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE19greaterThanOrEquals2toACyxGx_tFZ":{"name":"greaterThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2geyACyxGxFZ":{"name":"ge(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE4less4thanACyxGx_tFZ":{"name":"less(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2ltyACyxGxFZ":{"name":"lt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE16lessThanOrEquals2toACyxGx_tFZ":{"name":"lessThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2leyACyxGxFZ":{"name":"le(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Readable.html#/s:9MockSwift19VerifiableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Readable.html#/s:9MockSwift18VerifiablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableProperty"},"Classes/VerifiableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableProperty"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC18receivedParametersSaySayypSgGGvp":{"name":"receivedParameters","abstract":"

    Return a list of all parameters’ list with whom the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC9callCountSivp":{"name":"callCount","abstract":"

    Return the number of times that the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pAA9PredicateCySiG_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called a number of times corresponding to the predicate.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pSi_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called.

    ","parent_name":"Verifiable"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA10VerifiableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a Verifiable for function with parameters.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Readable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Writable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Readable for a subscript.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Writable for a subscript.

    ","parent_name":"Then"},"Classes/Stub.html#/s:9MockSwift4StubCyACxm_xtclufc":{"name":"init(_:_:)","abstract":"

    Creates a Stub

    ","parent_name":"Stub"},"Classes/Mock.html#/s:9MockSwift0A0C12wrappedValuexvp":{"name":"wrappedValue","abstract":"

    Returns self as a WrappedType.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0CACyxGycfc":{"name":"init()","abstract":"

    Creates a Mock<WrappedType>.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionyypSgd_SStF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionyypSgd_SStKF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionqd__ypSgd_SStlF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionqd__ypSgd_SStKlF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C8strategy5stubs_ACyxGSayAA18StrategyIdentifierOG_SayAA4StubCGyAA5GivenCyxGXEtcfc":{"name":"init(strategy:stubs:_:)","abstract":"

    Creates a Mock<WrappedType> with a custom configuration.

    ","parent_name":"Mock"},"Classes/Interaction.html#/s:9MockSwift11InteractionC5ended4file4lineys12StaticStringV_SutF":{"name":"ended(file:line:)","abstract":"

    Checks that the WrappedType value has no calls to check anymore.

    ","parent_name":"Interaction"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Readable.html#/s:9MockSwift17MockableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Readable"},"Classes/MockableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableSubscript"},"Classes/MockableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableSubscript"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Readable.html#/s:9MockSwift16MockablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/MockableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableProperty"},"Classes/MockableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableProperty"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxF":{"name":"willReturn(_:)","abstract":"

    Registers a return value.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxd_tF":{"name":"willReturn(_:)","abstract":"

    Registers return values.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC4willyyxSayypGKcF":{"name":"will(_:)","abstract":"

    Registers a block to excecute.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pF":{"name":"willThrow(_:)","abstract":"

    Registers an error.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pd_tF":{"name":"willThrow(_:)","abstract":"

    Registers errors.

    ","parent_name":"Mockable"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA8MockableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a Mockable for function with parameters.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Readable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Writable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Readable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Writable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html":{"name":"Given","abstract":"

    Given is used to define behaviours.

    "},"Classes/Mockable.html":{"name":"Mockable","abstract":"

    Represents a function call that returns ReturnType and can be stubbed.

    "},"Classes/MockableProperty.html":{"name":"MockableProperty","abstract":"

    Represents a property call that can be stubbed.

    "},"Classes/MockableSubscript.html":{"name":"MockableSubscript","abstract":"

    Represents a subcript call that can be stubbed.

    "},"Classes/Interaction.html":{"name":"Interaction","abstract":"

    Interaction is used to verify method calls.

    "},"Classes/Mock.html":{"name":"Mock","abstract":"

    Undocumented

    "},"Classes/Stub.html":{"name":"Stub","abstract":"

    Stub represents a paire of type and a value of this type

    "},"Classes/Then.html":{"name":"Then","abstract":"

    Then is used to verify method calls.

    "},"Classes/Verifiable.html":{"name":"Verifiable","abstract":"

    Represents a function call that returns ReturnType and can be checked.

    "},"Classes/VerifiableProperty.html":{"name":"VerifiableProperty","abstract":"

    Represents a property call that can be checked.

    "},"Classes/VerifiableSubscript.html":{"name":"VerifiableSubscript","abstract":"

    Represents a property call that can be checked.

    "},"Classes/Predicate.html":{"name":"Predicate","abstract":"

    Predicate represents a condition on an Input.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:9MockSwift13ParameterTypea":{"name":"ParameterType","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Self.

    ","parent_name":"GlobalStub"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP14firstValidTimeSdvp":{"name":"firstValidTime","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicateP7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicatePAASQRzrlE7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html":{"name":"AnyPredicate","abstract":"

    AnyPredicate represents a condition on an Any? element.

    "},"Protocols/Assertion.html":{"name":"Assertion","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html":{"name":"GlobalStub","abstract":"

    GlobalStub represents an entity able to give a stub value.

    "},"Functions.html#/s:9MockSwift5given_4file4lineAA5GivenCyxGx_s12StaticStringVSutlF":{"name":"given(_:file:line:)","abstract":"

    Creates a Given based on value.

    "},"Functions.html#/s:9MockSwift5given_4file4line_yx_s12StaticStringVSuyAA5GivenCyxGXEtlF":{"name":"given(_:file:line:_:)","abstract":"

    Call completion with a Given based on value.

    "},"Functions.html#/s:9MockSwift11interaction4withAA11InteractionCyxGx_tlF":{"name":"interaction(with:)","abstract":"

    Creates an Interaction based on value.

    "},"Functions.html#/s:9MockSwift2egoiyAA4StubCxm_xtlF":{"name":"=>(_:_:)","abstract":"

    Creates a Stub

    "},"Functions.html#/s:9MockSwift4then_4file4lineAA4ThenCyxGx_s12StaticStringVSutlF":{"name":"then(_:file:line:)","abstract":"

    Creates a Then based on value.

    "},"Functions.html#/s:9MockSwift4then_4file4line_yx_s12StaticStringVSuyAA4ThenCyxGXEtlF":{"name":"then(_:file:line:_:)","abstract":"

    Call completion with a Then based on value.

    "},"Functions.html#/s:9MockSwift3eeeopyAA9PredicateCyxGxRlzClF":{"name":"===(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    "},"Functions.html#/s:9MockSwift2eeopyAA9PredicateCyxGxSQRzlF":{"name":"==(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    "},"Functions.html#/s:9MockSwift1gopyAA9PredicateCyxGxSLRzlF":{"name":">(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    "},"Functions.html#/s:9MockSwift2geopyAA9PredicateCyxGxSLRzlF":{"name":">=(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    "},"Extensions/NSNumber.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"NSNumber"},"Extensions/Decimal.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Decimal"},"Extensions/Float80.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Float80"},"Extensions/Float.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Float"},"Extensions/Double.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Double"},"Extensions/Array.html#/s:Sa9MockSwiftAA18StrategyIdentifierORszlE7defaultSayACGvpZ":{"name":"default","abstract":"

    Strategy alias of Stategies","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions.html#/c:objc(cs)NSObject":{"name":"NSObject"},"Extensions.html#/s:s18BooleanLiteralTypea":{"name":"BooleanLiteralType"},"Extensions.html#/s:s18IntegerLiteralTypea":{"name":"IntegerLiteralType"},"Extensions.html#/s:s17StringLiteralTypea":{"name":"StringLiteralType"},"Extensions.html#/s:s16FloatLiteralTypea":{"name":"FloatLiteralType"},"Extensions.html#/s:Sq":{"name":"Optional"},"Extensions.html#/s:Sb":{"name":"Bool"},"Extensions.html#/s:Si":{"name":"Int"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Float80.html":{"name":"Float80"},"Extensions/Decimal.html":{"name":"Decimal"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions.html#/s:SS":{"name":"String"},"Extensions.html#/s:Ss":{"name":"Substring"},"Extensions.html#/s:s12StaticStringV":{"name":"StaticString"},"Extensions.html#/s:s10ArraySliceV":{"name":"ArraySlice"},"Extensions.html#/s:s15ContiguousArrayV":{"name":"ContiguousArray"},"Extensions.html#/s:10Foundation9IndexPathV":{"name":"IndexPath"},"Extensions.html#/s:Sh":{"name":"Set"},"Extensions.html#/s:SD":{"name":"Dictionary"},"Extensions.html#/s:s13KeyValuePairsV":{"name":"KeyValuePairs"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO5givenyA2CmF":{"name":"given","abstract":"

    Stragegy that return values from Given block

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO10localStubsyA2CmF":{"name":"localStubs","abstract":"

    Stragegy that return values local stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO11globalStubsyA2CmF":{"name":"globalStubs","abstract":"

    Stragegy that return values global stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html":{"name":"StrategyIdentifier","abstract":"

    Undocumented

    "},"Classes/Predicate.html#/s:9MockSwift9PredicateC11descriptionSSvp":{"name":"description","abstract":"

    Description of the Predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any_ACyxGSSSg_xmSbxctFZ":{"name":"match(description:any:_:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3anyyACyxGxmFZ":{"name":"any(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3notyACyxGAEFZ":{"name":"not(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input not matched by an other predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5isNilACyqd__SgGylFZ":{"name":"isNil()","abstract":"

    Creates a Predicate<Input?> able to match nil.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE9identical2toACyxGx_tFZ":{"name":"identical(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE2idyACyxGxFZ":{"name":"id(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE6isTrueACySbGyFZ":{"name":"isTrue()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to true

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE7isFalseACySbGyFZ":{"name":"isFalse()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to false

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE6equals2toACyxGx_tFZ":{"name":"equals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE2eqyACyxGxFZ":{"name":"eq(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE7greater4thanACyxGx_tFZ":{"name":"greater(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2gtyACyxGxFZ":{"name":"gt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE19greaterThanOrEquals2toACyxGx_tFZ":{"name":"greaterThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2geyACyxGxFZ":{"name":"ge(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE4less4thanACyxGx_tFZ":{"name":"less(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2ltyACyxGxFZ":{"name":"lt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE16lessThanOrEquals2toACyxGx_tFZ":{"name":"lessThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2leyACyxGxFZ":{"name":"le(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Readable.html#/s:9MockSwift19VerifiableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Readable.html#/s:9MockSwift18VerifiablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableProperty"},"Classes/VerifiableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableProperty"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC18receivedParametersSaySayypSgGGvp":{"name":"receivedParameters","abstract":"

    Return a list of all parameters’ list with whom the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC9callCountSivp":{"name":"callCount","abstract":"

    Return the number of times that the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pAA9PredicateCySiG_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called a number of times corresponding to the predicate.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pSi_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC11neverCalled5after4file4lineAA9Assertion_pAaH_pSg_s12StaticStringVSutF":{"name":"neverCalled(after:file:line:)","abstract":"

    Checks that the function has never been called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC10calledOnce5after4file4lineAA9Assertion_pAaH_pSg_s12StaticStringVSutF":{"name":"calledOnce(after:file:line:)","abstract":"

    Checks that the function has been called once.

    ","parent_name":"Verifiable"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA10VerifiableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a Verifiable for function with parameters.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Readable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Writable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Readable for a subscript.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Writable for a subscript.

    ","parent_name":"Then"},"Classes/Stub.html#/s:9MockSwift4StubCyACxm_xtclufc":{"name":"init(_:_:)","abstract":"

    Creates a Stub

    ","parent_name":"Stub"},"Classes/Mock.html#/s:9MockSwift0A0C12wrappedValuexvp":{"name":"wrappedValue","abstract":"

    Returns self as a WrappedType.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0CACyxGycfc":{"name":"init()","abstract":"

    Creates a Mock<WrappedType>.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionyypSgd_SStF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionyypSgd_SStKF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionqd__ypSgd_SStlF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionqd__ypSgd_SStKlF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C8strategy5stubs_ACyxGSayAA18StrategyIdentifierOG_SayAA4StubCGyAA5GivenCyxGXEtcfc":{"name":"init(strategy:stubs:_:)","abstract":"

    Creates a Mock<WrappedType> with a custom configuration.

    ","parent_name":"Mock"},"Classes/Interaction.html#/s:9MockSwift11InteractionC5ended4file4lineys12StaticStringV_SutF":{"name":"ended(file:line:)","abstract":"

    Checks that the WrappedType value has no calls to check anymore.

    ","parent_name":"Interaction"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Readable.html#/s:9MockSwift17MockableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Readable"},"Classes/MockableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableSubscript"},"Classes/MockableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableSubscript"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Readable.html#/s:9MockSwift16MockablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/MockableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableProperty"},"Classes/MockableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableProperty"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxF":{"name":"willReturn(_:)","abstract":"

    Registers a return value.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxd_tF":{"name":"willReturn(_:)","abstract":"

    Registers return values.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC4willyyxSayypGKcF":{"name":"will(_:)","abstract":"

    Registers a block to excecute.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pF":{"name":"willThrow(_:)","abstract":"

    Registers an error.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pd_tF":{"name":"willThrow(_:)","abstract":"

    Registers errors.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableCAAytRszlE13willDoNothingyyF":{"name":"willDoNothing()","abstract":"

    Registers an empty block to excecute.

    ","parent_name":"Mockable"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA8MockableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a Mockable for function with parameters.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Readable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Writable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Readable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Writable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html":{"name":"Given","abstract":"

    Given is used to define behaviours.

    "},"Classes/Mockable.html":{"name":"Mockable","abstract":"

    Represents a function call that returns ReturnType and can be stubbed.

    "},"Classes/MockableProperty.html":{"name":"MockableProperty","abstract":"

    Represents a property call that can be stubbed.

    "},"Classes/MockableSubscript.html":{"name":"MockableSubscript","abstract":"

    Represents a subcript call that can be stubbed.

    "},"Classes/Interaction.html":{"name":"Interaction","abstract":"

    Interaction is used to verify method calls.

    "},"Classes/Mock.html":{"name":"Mock","abstract":"

    Undocumented

    "},"Classes/Stub.html":{"name":"Stub","abstract":"

    Stub represents a paire of type and a value of this type

    "},"Classes/Then.html":{"name":"Then","abstract":"

    Then is used to verify method calls.

    "},"Classes/Verifiable.html":{"name":"Verifiable","abstract":"

    Represents a function call that returns ReturnType and can be checked.

    "},"Classes/VerifiableProperty.html":{"name":"VerifiableProperty","abstract":"

    Represents a property call that can be checked.

    "},"Classes/VerifiableSubscript.html":{"name":"VerifiableSubscript","abstract":"

    Represents a property call that can be checked.

    "},"Classes/Predicate.html":{"name":"Predicate","abstract":"

    Predicate represents a condition on an Input.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/undocumented.json index 0d48e34..81a622b 100644 --- a/docs/docsets/MockSwift.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/MockSwift.docset/Contents/Resources/Documents/undocumented.json @@ -27,6 +27,34 @@ "symbol": "StrategyIdentifier", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" + }, + { + "file": "/Users/jordhanleoture/XcodeProjects/MockSwift/Sources/MockSwift/Core/Then/Verifiables/Assertion.swift", + "line": 28, + "symbol": "Assertion", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/jordhanleoture/XcodeProjects/MockSwift/Sources/MockSwift/Core/Then/Verifiables/Assertion.swift", + "line": 29, + "symbol": "Assertion.description", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jordhanleoture/XcodeProjects/MockSwift/Sources/MockSwift/Core/Then/Verifiables/Assertion.swift", + "line": 30, + "symbol": "Assertion.firstValidTime", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jordhanleoture/XcodeProjects/MockSwift/Sources/MockSwift/Core/Then/Verifiables/Assertion.swift", + "line": 31, + "symbol": "Assertion.isValid", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" } ], "source_directory": "/Users/jordhanleoture/XcodeProjects/MockSwift" diff --git a/docs/docsets/MockSwift.docset/Contents/Resources/docSet.dsidx b/docs/docsets/MockSwift.docset/Contents/Resources/docSet.dsidx index fe6264fd9c44ab179c4e69f05d40b6ced4d2eb06..72c56462fd03a97dda1c3f45d4d5066d99432866 100644 GIT binary patch delta 4786 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 delta 3467 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

    W`C0+b_(Mx*%->BK~5k+Pv%VOmAqvq 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

    Nw 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 MockSwift Docs - (94% documented) + (95% documented)

    @@ -135,29 +135,71 @@ Array

    + + + + + + + + + + + + + +
  • Installation
  • Usage
  • Documentation
  • -
  • Playgrounds
  • Contribution
  • License
  • @@ -256,25 +297,30 @@

    Features

    Actually MockSwift supports:

      -
    • Mocking +
    • Stub
        -
      • [x] protocol (methods, properties, subscripts)
      • -
      • [ ] class (v2)
      • -
      • [ ] struct (v2)
      • -
      • [ ] enum (v2)
      • +
      • [x] Protocol methods
      • +
      • [x] Protocol properties
      • +
      • [x] Protocol subscripts
      • +
      • [ ] Class
      • +
      • [ ] Struct
      • +
      • [ ] Enum
      • +
      • [x] Default values for types
    • -
    • Call verification +
    • Verify interactions
        -
      • [x] protocol (methods, properties, subscripts)
      • -
      • [ ] class (v2)
      • -
      • [ ] struct (v2)
      • -
      • [ ] enum (v2)
      • +
      • [x] Protocol methods
      • +
      • [x] Protocol properties
      • +
      • [x] Protocol subscripts
      • +
      • [ ] Class
      • +
      • [ ] Struct
      • +
      • [ ] Enum +_ Parameter matching
      • +
      • [x] Predicates
      • +
      • [x] Generics
    • -
    • [x] Generics
    • -
    • [x] Parameters matching
    • -
    • [x] Default values for Types

    CHANGELOG

    @@ -290,7 +336,7 @@

    Swift Package Manager

    let package = Package( name: "MyProject", dependencies: [ - .package(url: "https://github.com/leoture/MockSwift.git", from: "0.7.0") + .package(url: "https://github.com/leoture/MockSwift.git", from: "1.0.0") ], targets: [ .testTarget(name: "MyProjectTests", dependencies: ["MockSwift"]) @@ -298,6 +344,35 @@

    Swift Package Manager

    )

    Usage

    +

    Quick Look

    +
    class AwesomeTests: XCTestCase {
    +
    +  private var printer: Printer!
    +  @Mock private var userService: UserService
    +
    +  override func setUp() {
    +    printer = Printer(userService)
    +  }
    +
    +  func test_sayHello() {
    +    // Given
    +    given(userService).fetchUserName(of: "you").willReturn("my friend")
    +    given(userService).isConnected.get.willReturn(true)
    +    given(userService)[cache: .any()].set(.any()).willDoNothing()
    +
    +    // When
    +    let message = printer.sayHello(to: "you", from: "me")
    +
    +    // Then
    +    then(userService).fetchUserName(of: .any()).called()
    +    then(userService).isConnected.get.called(times: 1)
    +    then(userService)[cache: "you"].set("my friend").calledOnce()
    +
    +    XCTAssertEqual(message, "me: Hello my friend")
    +  }
    +}
    +
    +

    Details

    Suppose that you have a UserService protocol.

    struct User: Equatable {
    @@ -403,9 +478,14 @@ 

    Then

    then(service) {
       $0.fetch(identifier: "current").called(times: >=2)
     
    -  $0.fetch(identifier: =="").called(times: 0)
    +  $0.fetch(identifier: == "").called(times: 0)
     }
     
    + +

    You can go further and verify order of calls

    +
    let assertion = then(service).fetch(identifier: "current").called(times: >=2)
    +then(service).fetch(identifier: == "").called(times: 1, after: assertion)
    +

    Stubs

    In MockSwift, stubs are default values that are returned when no behaviours has been found.

    @@ -496,15 +576,6 @@

    Manually

    Documentation

    If you need more details about the API, you can check out our API documentation or our GitBook.

    -

    Playgrounds

    - -

    This project contains playgrounds that can help you experiment MockSwift .
    -To use playgrounds:

    - -
      -
    • open MockSwift.xcworkspace
    • -
    • build the MockSwiftPlayground scheme.
    • -

    Contribution

    Would you like to contribute to MockSwift? Please read our contributing guidelines and code of conduct.

    @@ -522,8 +593,8 @@

    Credits

    diff --git a/docs/search.json b/docs/search.json index 2a63ce0..92ce7bb 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:9MockSwift13ParameterTypea":{"name":"ParameterType","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Self.

    ","parent_name":"GlobalStub"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP14firstValidTimeSdvp":{"name":"firstValidTime","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicateP7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicatePAASQRzrlE7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html":{"name":"AnyPredicate","abstract":"

    AnyPredicate represents a condition on an Any? element.

    "},"Protocols/Assertion.html":{"name":"Assertion","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html":{"name":"GlobalStub","abstract":"

    GlobalStub represents an entity able to give a stub value.

    "},"Functions.html#/s:9MockSwift5given_4file4lineAA5GivenCyxGx_s12StaticStringVSutlF":{"name":"given(_:file:line:)","abstract":"

    Creates a Given based on value.

    "},"Functions.html#/s:9MockSwift5given_4file4line_yx_s12StaticStringVSuyAA5GivenCyxGXEtlF":{"name":"given(_:file:line:_:)","abstract":"

    Call completion with a Given based on value.

    "},"Functions.html#/s:9MockSwift11interaction4withAA11InteractionCyxGx_tlF":{"name":"interaction(with:)","abstract":"

    Creates an Interaction based on value.

    "},"Functions.html#/s:9MockSwift2egoiyAA4StubCxm_xtlF":{"name":"=>(_:_:)","abstract":"

    Creates a Stub

    "},"Functions.html#/s:9MockSwift4then_4file4lineAA4ThenCyxGx_s12StaticStringVSutlF":{"name":"then(_:file:line:)","abstract":"

    Creates a Then based on value.

    "},"Functions.html#/s:9MockSwift4then_4file4line_yx_s12StaticStringVSuyAA4ThenCyxGXEtlF":{"name":"then(_:file:line:_:)","abstract":"

    Call completion with a Then based on value.

    "},"Functions.html#/s:9MockSwift3eeeopyAA9PredicateCyxGxRlzClF":{"name":"===(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    "},"Functions.html#/s:9MockSwift2eeopyAA9PredicateCyxGxSQRzlF":{"name":"==(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    "},"Functions.html#/s:9MockSwift1gopyAA9PredicateCyxGxSLRzlF":{"name":">(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    "},"Functions.html#/s:9MockSwift2geopyAA9PredicateCyxGxSLRzlF":{"name":">=(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    "},"Extensions/Bool.html#/s:Sb9MockSwiftE4stubSbyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Bool.

    ","parent_name":"Bool"},"Extensions/Int.html#/s:Si9MockSwiftE4stubSiyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Int.

    ","parent_name":"Int"},"Extensions/String.html#/s:SS9MockSwiftE4stubSSyFZ":{"name":"stub()","abstract":"

    Creates a stub value of String.

    ","parent_name":"String"},"Extensions/Array.html#/s:Sa9MockSwiftAA18StrategyIdentifierORszlE7defaultSayACGvpZ":{"name":"default","abstract":"

    Strategy alias of Stategies","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions.html#/c:objc(cs)NSObject":{"name":"NSObject"},"Extensions.html#/s:s18BooleanLiteralTypea":{"name":"BooleanLiteralType"},"Extensions.html#/s:s18IntegerLiteralTypea":{"name":"IntegerLiteralType"},"Extensions.html#/s:s17StringLiteralTypea":{"name":"StringLiteralType"},"Extensions.html#/s:s16FloatLiteralTypea":{"name":"FloatLiteralType"},"Extensions/String.html":{"name":"String"},"Extensions/Int.html":{"name":"Int"},"Extensions/Bool.html":{"name":"Bool"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO5givenyA2CmF":{"name":"given","abstract":"

    Stragegy that return values from Given block

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO10localStubsyA2CmF":{"name":"localStubs","abstract":"

    Stragegy that return values local stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO11globalStubsyA2CmF":{"name":"globalStubs","abstract":"

    Stragegy that return values global stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html":{"name":"StrategyIdentifier","abstract":"

    Undocumented

    "},"Classes/Predicate.html#/s:9MockSwift9PredicateC11descriptionSSvp":{"name":"description","abstract":"

    Description of the Predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any_ACyxGSSSg_xmSbxctFZ":{"name":"match(description:any:_:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any4whenACyxGSSSg_xms7KeyPathCyxSbGtFZ":{"name":"match(description:any:when:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3anyyACyxGxmFZ":{"name":"any(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3notyACyxGAEFZ":{"name":"not(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input not matched by an other predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5isNilACyqd__SgGylFZ":{"name":"isNil()","abstract":"

    Creates a Predicate<Input?> able to match nil.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE9identical2toACyxGx_tFZ":{"name":"identical(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE2idyACyxGxFZ":{"name":"id(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE6isTrueACySbGyFZ":{"name":"isTrue()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to true

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE7isFalseACySbGyFZ":{"name":"isFalse()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to false

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE6equals2toACyxGx_tFZ":{"name":"equals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE2eqyACyxGxFZ":{"name":"eq(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE7greater4thanACyxGx_tFZ":{"name":"greater(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2gtyACyxGxFZ":{"name":"gt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE19greaterThanOrEquals2toACyxGx_tFZ":{"name":"greaterThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2geyACyxGxFZ":{"name":"ge(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE4less4thanACyxGx_tFZ":{"name":"less(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2ltyACyxGxFZ":{"name":"lt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE16lessThanOrEquals2toACyxGx_tFZ":{"name":"lessThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2leyACyxGxFZ":{"name":"le(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Readable.html#/s:9MockSwift19VerifiableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Readable.html#/s:9MockSwift18VerifiablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableProperty"},"Classes/VerifiableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableProperty"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC18receivedParametersSaySayypSgGGvp":{"name":"receivedParameters","abstract":"

    Return a list of all parameters’ list with whom the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC9callCountSivp":{"name":"callCount","abstract":"

    Return the number of times that the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pAA9PredicateCySiG_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called a number of times corresponding to the predicate.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pSi_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called.

    ","parent_name":"Verifiable"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA10VerifiableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a Verifiable for function with parameters.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Readable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Writable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Readable for a subscript.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Writable for a subscript.

    ","parent_name":"Then"},"Classes/Stub.html#/s:9MockSwift4StubCyACxm_xtclufc":{"name":"init(_:_:)","abstract":"

    Creates a Stub

    ","parent_name":"Stub"},"Classes/Mock.html#/s:9MockSwift0A0C12wrappedValuexvp":{"name":"wrappedValue","abstract":"

    Returns self as a WrappedType.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0CACyxGycfc":{"name":"init()","abstract":"

    Creates a Mock<WrappedType>.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionyypSgd_SStF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionyypSgd_SStKF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionqd__ypSgd_SStlF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionqd__ypSgd_SStKlF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C8strategy5stubs_ACyxGSayAA18StrategyIdentifierOG_SayAA4StubCGyAA5GivenCyxGXEtcfc":{"name":"init(strategy:stubs:_:)","abstract":"

    Creates a Mock<WrappedType> with a custom configuration.

    ","parent_name":"Mock"},"Classes/Interaction.html#/s:9MockSwift11InteractionC5ended4file4lineys12StaticStringV_SutF":{"name":"ended(file:line:)","abstract":"

    Checks that the WrappedType value has no calls to check anymore.

    ","parent_name":"Interaction"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Readable.html#/s:9MockSwift17MockableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Readable"},"Classes/MockableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableSubscript"},"Classes/MockableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableSubscript"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Readable.html#/s:9MockSwift16MockablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/MockableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableProperty"},"Classes/MockableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableProperty"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxF":{"name":"willReturn(_:)","abstract":"

    Registers a return value.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxd_tF":{"name":"willReturn(_:)","abstract":"

    Registers return values.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC4willyyxSayypGKcF":{"name":"will(_:)","abstract":"

    Registers a block to excecute.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pF":{"name":"willThrow(_:)","abstract":"

    Registers an error.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pd_tF":{"name":"willThrow(_:)","abstract":"

    Registers errors.

    ","parent_name":"Mockable"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA8MockableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a Mockable for function with parameters.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Readable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Writable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Readable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Writable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html":{"name":"Given","abstract":"

    Given is used to define behaviours.

    "},"Classes/Mockable.html":{"name":"Mockable","abstract":"

    Represents a function call that returns ReturnType and can be stubbed.

    "},"Classes/MockableProperty.html":{"name":"MockableProperty","abstract":"

    Represents a property call that can be stubbed.

    "},"Classes/MockableSubscript.html":{"name":"MockableSubscript","abstract":"

    Represents a subcript call that can be stubbed.

    "},"Classes/Interaction.html":{"name":"Interaction","abstract":"

    Interaction is used to verify method calls.

    "},"Classes/Mock.html":{"name":"Mock","abstract":"

    Undocumented

    "},"Classes/Stub.html":{"name":"Stub","abstract":"

    Stub represents a paire of type and a value of this type

    "},"Classes/Then.html":{"name":"Then","abstract":"

    Then is used to verify method calls.

    "},"Classes/Verifiable.html":{"name":"Verifiable","abstract":"

    Represents a function call that returns ReturnType and can be checked.

    "},"Classes/VerifiableProperty.html":{"name":"VerifiableProperty","abstract":"

    Represents a property call that can be checked.

    "},"Classes/VerifiableSubscript.html":{"name":"VerifiableSubscript","abstract":"

    Represents a property call that can be checked.

    "},"Classes/Predicate.html":{"name":"Predicate","abstract":"

    Predicate represents a condition on an Input.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:9MockSwift13ParameterTypea":{"name":"ParameterType","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","abstract":"

    Creates a stub value of Self.

    ","parent_name":"GlobalStub"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP14firstValidTimeSdvp":{"name":"firstValidTime","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/Assertion.html#/s:9MockSwift9AssertionP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"Assertion"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicateP7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html#/s:9MockSwift12AnyPredicatePAASQRzrlE7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","parent_name":"AnyPredicate"},"Protocols/AnyPredicate.html":{"name":"AnyPredicate","abstract":"

    AnyPredicate represents a condition on an Any? element.

    "},"Protocols/Assertion.html":{"name":"Assertion","abstract":"

    Undocumented

    "},"Protocols/GlobalStub.html":{"name":"GlobalStub","abstract":"

    GlobalStub represents an entity able to give a stub value.

    "},"Functions.html#/s:9MockSwift5given_4file4lineAA5GivenCyxGx_s12StaticStringVSutlF":{"name":"given(_:file:line:)","abstract":"

    Creates a Given based on value.

    "},"Functions.html#/s:9MockSwift5given_4file4line_yx_s12StaticStringVSuyAA5GivenCyxGXEtlF":{"name":"given(_:file:line:_:)","abstract":"

    Call completion with a Given based on value.

    "},"Functions.html#/s:9MockSwift11interaction4withAA11InteractionCyxGx_tlF":{"name":"interaction(with:)","abstract":"

    Creates an Interaction based on value.

    "},"Functions.html#/s:9MockSwift2egoiyAA4StubCxm_xtlF":{"name":"=>(_:_:)","abstract":"

    Creates a Stub

    "},"Functions.html#/s:9MockSwift4then_4file4lineAA4ThenCyxGx_s12StaticStringVSutlF":{"name":"then(_:file:line:)","abstract":"

    Creates a Then based on value.

    "},"Functions.html#/s:9MockSwift4then_4file4line_yx_s12StaticStringVSuyAA4ThenCyxGXEtlF":{"name":"then(_:file:line:_:)","abstract":"

    Call completion with a Then based on value.

    "},"Functions.html#/s:9MockSwift3eeeopyAA9PredicateCyxGxRlzClF":{"name":"===(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    "},"Functions.html#/s:9MockSwift2eeopyAA9PredicateCyxGxSQRzlF":{"name":"==(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    "},"Functions.html#/s:9MockSwift1gopyAA9PredicateCyxGxSLRzlF":{"name":">(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    "},"Functions.html#/s:9MockSwift2geopyAA9PredicateCyxGxSLRzlF":{"name":">=(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    "},"Extensions/NSNumber.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"NSNumber"},"Extensions/Decimal.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Decimal"},"Extensions/Float80.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Float80"},"Extensions/Float.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Float"},"Extensions/Double.html#/s:9MockSwift10GlobalStubP4stubxyFZ":{"name":"stub()","parent_name":"Double"},"Extensions/Array.html#/s:Sa9MockSwiftAA18StrategyIdentifierORszlE7defaultSayACGvpZ":{"name":"default","abstract":"

    Strategy alias of Stategies","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions.html#/c:objc(cs)NSObject":{"name":"NSObject"},"Extensions.html#/s:s18BooleanLiteralTypea":{"name":"BooleanLiteralType"},"Extensions.html#/s:s18IntegerLiteralTypea":{"name":"IntegerLiteralType"},"Extensions.html#/s:s17StringLiteralTypea":{"name":"StringLiteralType"},"Extensions.html#/s:s16FloatLiteralTypea":{"name":"FloatLiteralType"},"Extensions.html#/s:Sq":{"name":"Optional"},"Extensions.html#/s:Sb":{"name":"Bool"},"Extensions.html#/s:Si":{"name":"Int"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Float80.html":{"name":"Float80"},"Extensions/Decimal.html":{"name":"Decimal"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions.html#/s:SS":{"name":"String"},"Extensions.html#/s:Ss":{"name":"Substring"},"Extensions.html#/s:s12StaticStringV":{"name":"StaticString"},"Extensions.html#/s:s10ArraySliceV":{"name":"ArraySlice"},"Extensions.html#/s:s15ContiguousArrayV":{"name":"ContiguousArray"},"Extensions.html#/s:10Foundation9IndexPathV":{"name":"IndexPath"},"Extensions.html#/s:Sh":{"name":"Set"},"Extensions.html#/s:SD":{"name":"Dictionary"},"Extensions.html#/s:s13KeyValuePairsV":{"name":"KeyValuePairs"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO5givenyA2CmF":{"name":"given","abstract":"

    Stragegy that return values from Given block

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO10localStubsyA2CmF":{"name":"localStubs","abstract":"

    Stragegy that return values local stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html#/s:9MockSwift18StrategyIdentifierO11globalStubsyA2CmF":{"name":"globalStubs","abstract":"

    Stragegy that return values global stubs

    ","parent_name":"StrategyIdentifier"},"Enums/StrategyIdentifier.html":{"name":"StrategyIdentifier","abstract":"

    Undocumented

    "},"Classes/Predicate.html#/s:9MockSwift9PredicateC11descriptionSSvp":{"name":"description","abstract":"

    Description of the Predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5match11description3any_ACyxGSSSg_xmSbxctFZ":{"name":"match(description:any:_:)","abstract":"

    Creates a Predicate<Input>.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3anyyACyxGxmFZ":{"name":"any(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC3notyACyxGAEFZ":{"name":"not(_:)","abstract":"

    Creates a Predicate<Input> able to match any value of type Input not matched by an other predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC5isNilACyqd__SgGylFZ":{"name":"isNil()","abstract":"

    Creates a Predicate<Input?> able to match nil.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateC7satisfy2bySbypSg_tF":{"name":"satisfy(by:)","abstract":"

    Check if an element satifies the predicate.

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE9identical2toACyxGx_tFZ":{"name":"identical(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAARlzClE2idyACyxGxFZ":{"name":"id(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements identical to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE6isTrueACySbGyFZ":{"name":"isTrue()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to true

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASbRszlE7isFalseACySbGyFZ":{"name":"isFalse()","abstract":"

    Creates a Predicate<Bool> that can match any Bool equal to false

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE6equals2toACyxGx_tFZ":{"name":"equals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASQRzlE2eqyACyxGxFZ":{"name":"eq(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE7greater4thanACyxGx_tFZ":{"name":"greater(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2gtyACyxGxFZ":{"name":"gt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE19greaterThanOrEquals2toACyxGx_tFZ":{"name":"greaterThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2geyACyxGxFZ":{"name":"ge(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements greater than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE4less4thanACyxGx_tFZ":{"name":"less(than:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2ltyACyxGxFZ":{"name":"lt(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE16lessThanOrEquals2toACyxGx_tFZ":{"name":"lessThanOrEquals(to:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/Predicate.html#/s:9MockSwift9PredicateCAASLRzlE2leyACyxGxFZ":{"name":"le(_:)","abstract":"

    Creates a Predicate<Input> that can match any elements less than or equal to value

    ","parent_name":"Predicate"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Writable.html#/s:9MockSwift19VerifiableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableSubscript/Readable.html#/s:9MockSwift19VerifiableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableSubscript"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Writable.html#/s:9MockSwift18VerifiablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Verifiable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/VerifiableProperty/Readable.html#/s:9MockSwift18VerifiablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Verifiable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/VerifiableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read access only.

    ","parent_name":"VerifiableProperty"},"Classes/VerifiableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be checked with read and wirte access.

    ","parent_name":"VerifiableProperty"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC18receivedParametersSaySayypSgGGvp":{"name":"receivedParameters","abstract":"

    Return a list of all parameters’ list with whom the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC9callCountSivp":{"name":"callCount","abstract":"

    Return the number of times that the function was called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pAA9PredicateCySiG_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called a number of times corresponding to the predicate.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC6called5times5after4file4lineAA9Assertion_pSi_AaI_pSgs12StaticStringVSutF":{"name":"called(times:after:file:line:)","abstract":"

    Checks that the function has been called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC11neverCalled5after4file4lineAA9Assertion_pAaH_pSg_s12StaticStringVSutF":{"name":"neverCalled(after:file:line:)","abstract":"

    Checks that the function has never been called.

    ","parent_name":"Verifiable"},"Classes/Verifiable.html#/s:9MockSwift10VerifiableC10calledOnce5after4file4lineAA9Assertion_pAaH_pSg_s12StaticStringVSutF":{"name":"calledOnce(after:file:line:)","abstract":"

    Checks that the function has been called once.

    ","parent_name":"Verifiable"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA10VerifiableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a Verifiable for function with parameters.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Readable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable8property4file4lineAA18VerifiablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"verifiable(property:file:line:)","abstract":"

    Creates a VerifiableProperty.Writable for property.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Readable for a subscript.

    ","parent_name":"Then"},"Classes/Then.html#/s:9MockSwift4ThenC10verifiable_8function4file4lineAA19VerifiableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"verifiable(_:function:file:line:)","abstract":"

    Creates a VerifiableSubscript.Writable for a subscript.

    ","parent_name":"Then"},"Classes/Stub.html#/s:9MockSwift4StubCyACxm_xtclufc":{"name":"init(_:_:)","abstract":"

    Creates a Stub

    ","parent_name":"Stub"},"Classes/Mock.html#/s:9MockSwift0A0C12wrappedValuexvp":{"name":"wrappedValue","abstract":"

    Returns self as a WrappedType.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0CACyxGycfc":{"name":"init()","abstract":"

    Creates a Mock<WrappedType>.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionyypSgd_SStF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionyypSgd_SStKF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C6mocked_8functionqd__ypSgd_SStlF":{"name":"mocked(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C15mockedThrowable_8functionqd__ypSgd_SStKlF":{"name":"mockedThrowable(_:function:)","abstract":"

    Records the function call with parameters and executes the predefined behavior.

    ","parent_name":"Mock"},"Classes/Mock.html#/s:9MockSwift0A0C8strategy5stubs_ACyxGSayAA18StrategyIdentifierOG_SayAA4StubCGyAA5GivenCyxGXEtcfc":{"name":"init(strategy:stubs:_:)","abstract":"

    Creates a Mock<WrappedType> with a custom configuration.

    ","parent_name":"Mock"},"Classes/Interaction.html#/s:9MockSwift11InteractionC5ended4file4lineys12StaticStringV_SutF":{"name":"ended(file:line:)","abstract":"

    Checks that the WrappedType value has no calls to check anymore.

    ","parent_name":"Interaction"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Writable.html#/s:9MockSwift17MockableSubscriptC8WritableC3set_4file4lineAA0C0CyytGx_s12StaticStringVSutF":{"name":"set(_:file:line:)","abstract":"

    Creates a Mockable for set method of the concerned subcript.

    ","parent_name":"Writable"},"Classes/MockableSubscript/Readable.html#/s:9MockSwift17MockableSubscriptC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned subcript.

    ","parent_name":"Readable"},"Classes/MockableSubscript/Readable.html":{"name":"Readable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableSubscript"},"Classes/MockableSubscript/Writable.html":{"name":"Writable","abstract":"

    Represents a subcript call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableSubscript"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGAA9PredicateCyxGF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Writable.html#/s:9MockSwift16MockablePropertyC8WritableC3setyAA0C0CyytGxF":{"name":"set(_:)","abstract":"

    Creates a Mockable for set method of the concerned property.

    ","parent_name":"Writable"},"Classes/MockableProperty/Readable.html#/s:9MockSwift16MockablePropertyC8ReadableC3getAA0C0CyxGvp":{"name":"get","abstract":"

    Creates a Mockable for get method of the concerned property.

    ","parent_name":"Readable"},"Classes/MockableProperty/Readable.html":{"name":"Readable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read access only.

    ","parent_name":"MockableProperty"},"Classes/MockableProperty/Writable.html":{"name":"Writable","abstract":"

    Represents a property call that returns ReturnType and can be stubbed with read and wirte access.

    ","parent_name":"MockableProperty"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxF":{"name":"willReturn(_:)","abstract":"

    Registers a return value.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC10willReturnyyxd_tF":{"name":"willReturn(_:)","abstract":"

    Registers return values.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC12disambiguate4withACyxGXDxm_tF":{"name":"disambiguate(with:)","abstract":"

    Used to disambiguate the ReturnType.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC4willyyxSayypGKcF":{"name":"will(_:)","abstract":"

    Registers a block to excecute.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pF":{"name":"willThrow(_:)","abstract":"

    Registers an error.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableC9willThrowyys5Error_pd_tF":{"name":"willThrow(_:)","abstract":"

    Registers errors.

    ","parent_name":"Mockable"},"Classes/Mockable.html#/s:9MockSwift8MockableCAAytRszlE13willDoNothingyyF":{"name":"willDoNothing()","abstract":"

    Registers an empty block to excecute.

    ","parent_name":"Mockable"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA8MockableCyqd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a Mockable for function with parameters.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8ReadableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Readable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable8property4file4lineAA16MockablePropertyC8WritableCy_qd__GSS_s12StaticStringVSutlF":{"name":"mockable(property:file:line:)","abstract":"

    Creates a MockableProperty.Writable for property.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8ReadableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Readable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html#/s:9MockSwift5GivenC8mockable_8function4file4lineAA17MockableSubscriptC8WritableCy_qd__GypSgd_SSs12StaticStringVSutlF":{"name":"mockable(_:function:file:line:)","abstract":"

    Creates a MockableSubscript.Writable for a subcript.

    ","parent_name":"Given"},"Classes/Given.html":{"name":"Given","abstract":"

    Given is used to define behaviours.

    "},"Classes/Mockable.html":{"name":"Mockable","abstract":"

    Represents a function call that returns ReturnType and can be stubbed.

    "},"Classes/MockableProperty.html":{"name":"MockableProperty","abstract":"

    Represents a property call that can be stubbed.

    "},"Classes/MockableSubscript.html":{"name":"MockableSubscript","abstract":"

    Represents a subcript call that can be stubbed.

    "},"Classes/Interaction.html":{"name":"Interaction","abstract":"

    Interaction is used to verify method calls.

    "},"Classes/Mock.html":{"name":"Mock","abstract":"

    Undocumented

    "},"Classes/Stub.html":{"name":"Stub","abstract":"

    Stub represents a paire of type and a value of this type

    "},"Classes/Then.html":{"name":"Then","abstract":"

    Then is used to verify method calls.

    "},"Classes/Verifiable.html":{"name":"Verifiable","abstract":"

    Represents a function call that returns ReturnType and can be checked.

    "},"Classes/VerifiableProperty.html":{"name":"VerifiableProperty","abstract":"

    Represents a property call that can be checked.

    "},"Classes/VerifiableSubscript.html":{"name":"VerifiableSubscript","abstract":"

    Represents a property call that can be checked.

    "},"Classes/Predicate.html":{"name":"Predicate","abstract":"

    Predicate represents a condition on an Input.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file