From 8be1479357f620dcc2b836fb141e521a671a16bc Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sat, 16 Jan 2021 01:12:49 -0800 Subject: [PATCH] Convertes to Swift and SwiftUI --- MonsterCards.xcodeproj/project.pbxproj | 811 ++---- .../contents.xcworkspacedata | 2 +- .../xcschemes/MonsterCards.xcscheme | 98 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - MonsterCards/AppDelegate.h | 20 - MonsterCards/AppDelegate.m | 86 - .../AccentColor.colorset/Contents.json | 11 + .../section-divider.imageset/Contents.json | 23 + .../section-divider.png | Bin .../section-divider@2x.png | Bin .../section-divider@3x.png | Bin .../Base.lproj/LaunchScreen.storyboard | 25 - MonsterCards/Base.lproj/Main.storyboard | 681 ----- MonsterCards/Helpers/Color+Hex.swift | 20 + MonsterCards/Helpers/HTMLHelper.h | 19 - MonsterCards/Helpers/HTMLHelper.m | 24 - MonsterCards/Helpers/JSONHelper.h | 51 - MonsterCards/Helpers/JSONHelper.m | 227 -- MonsterCards/Helpers/StringHelper.h | 19 - MonsterCards/Helpers/StringHelper.m | 25 - MonsterCards/Info.plist | 34 +- MonsterCards/Models/Ability.h | 22 - MonsterCards/Models/Ability.m | 31 - MonsterCards/Models/Action.h | 22 - MonsterCards/Models/Action.m | 31 - MonsterCards/Models/AdvantageType.swift | 27 + MonsterCards/Models/DamageType.h | 23 - MonsterCards/Models/DamageType.m | 33 - MonsterCards/Models/Language.h | 23 - MonsterCards/Models/Language.m | 32 - .../Models/Monster+CoreDataClass.swift | 701 +++++ MonsterCards/Models/Monster.h | 160 -- MonsterCards/Models/Monster.m | 699 ----- MonsterCards/Models/ProficiencyType.swift | 27 + MonsterCards/Models/SavingThrow.h | 22 - MonsterCards/Models/SavingThrow.m | 31 - MonsterCards/Models/Skill.h | 27 - MonsterCards/Models/Skill.m | 50 - .../MonsterCards.xcdatamodel/contents | 52 +- MonsterCards/MonsterCardsApp.swift | 20 + MonsterCards/Persistence.swift | 58 + .../Preview Assets.xcassets/Contents.json | 6 + MonsterCards/SceneDelegate.h | 16 - MonsterCards/SceneDelegate.m | 62 - MonsterCards/Views/Collections.swift | 21 + .../Views/CollectionsViewController.h | 17 - .../Views/CollectionsViewController.m | 32 - MonsterCards/Views/ContentView.swift | 106 + MonsterCards/Views/Dashboard.swift | 20 + MonsterCards/Views/DashboardViewController.h | 17 - MonsterCards/Views/DashboardViewController.m | 32 - MonsterCards/Views/EditMonster.swift | 425 +++ .../Views/EditMonsterViewController.h | 22 - .../Views/EditMonsterViewController.m | 719 ----- .../FormFields/MCBooleanFieldTableViewCell.h | 26 - .../FormFields/MCBooleanFieldTableViewCell.m | 58 - MonsterCards/Views/FormFields/MCChoice.h | 28 - MonsterCards/Views/FormFields/MCChoice.m | 29 - .../Views/FormFields/MCFormFieldConstants.h | 17 - .../Views/FormFields/MCFormFieldConstants.m | 15 - .../Views/FormFields/MCFormFieldDelegate.h | 22 - .../FormFields/MCIntegerFieldTableViewCell.h | 28 - .../FormFields/MCIntegerFieldTableViewCell.m | 72 - .../FormFields/MCRadioFieldTableViewCell.h | 29 - .../FormFields/MCRadioFieldTableViewCell.m | 131 - .../FormFields/MCSelectFieldTableViewCell.h | 29 - .../FormFields/MCSelectFieldTableViewCell.m | 182 -- .../MCShortStringFieldTableViewCell.h | 25 - .../MCShortStringFieldTableViewCell.m | 57 - MonsterCards/Views/Library.swift | 60 + MonsterCards/Views/LibraryViewController.h | 19 - MonsterCards/Views/LibraryViewController.m | 94 - MonsterCards/Views/MCAdvantagePicker.swift | 34 + MonsterCards/Views/MCProficiencyPicker.swift | 34 + MonsterCards/Views/MCStepperField.swift | 37 + MonsterCards/Views/MCTextField.swift | 28 + MonsterCards/Views/MonsterDetail.swift | 177 ++ MonsterCards/Views/MonsterViewController.h | 33 - MonsterCards/Views/MonsterViewController.m | 134 - MonsterCards/Views/Search.swift | 41 + MonsterCards/Views/SearchBar.swift | 63 + MonsterCards/Views/SearchViewController.h | 20 - MonsterCards/Views/SearchViewController.m | 105 - MonsterCards/main.m | 19 - MonsterCardsTests/Helpers/JSONHelperTests.m | 697 ----- MonsterCardsTests/Models/AbilityTests.m | 54 - MonsterCardsTests/Models/ActionTests.m | 54 - MonsterCardsTests/Models/DamageTypeTests.m | 61 - MonsterCardsTests/Models/LanguageTests.m | 56 - MonsterCardsTests/Models/MonsterTests.m | 438 --- MonsterCardsTests/Models/SavingThrowTests.m | 55 - MonsterCardsTests/Models/SkillTests.m | 106 - MonsterCardsTests/MonsterCardsTests.m | 37 - MonsterCardsTests/MonsterCardsTests.swift | 33 + .../Views/EditMonsterViewControllerTests.m | 130 - MonsterCardsUITests/MonsterCardsUITests.m | 48 - MonsterCardsUITests/MonsterCardsUITests.swift | 42 + Podfile | 23 - Podfile.lock | 20 - Pods/Manifest.lock | 20 - Pods/OCHamcrest/LICENSE.txt | 13 - Pods/OCHamcrest/README.md | 244 -- Pods/OCHamcrest/Source/Core/HCAssertThat.h | 96 - Pods/OCHamcrest/Source/Core/HCAssertThat.m | 58 - .../Source/Core/HCBaseDescription.h | 29 - .../Source/Core/HCBaseDescription.m | 101 - Pods/OCHamcrest/Source/Core/HCBaseMatcher.h | 25 - Pods/OCHamcrest/Source/Core/HCBaseMatcher.m | 52 - Pods/OCHamcrest/Source/Core/HCDescription.h | 39 - .../Source/Core/HCDiagnosingMatcher.h | 19 - .../Source/Core/HCDiagnosingMatcher.m | 25 - Pods/OCHamcrest/Source/Core/HCMatcher.h | 47 - .../OCHamcrest/Source/Core/HCSelfDescribing.h | 26 - .../Source/Core/HCStringDescription.h | 36 - .../Source/Core/HCStringDescription.m | 45 - .../Source/Core/Helpers/HCCollect.h | 26 - .../Source/Core/Helpers/HCCollect.m | 43 - .../Source/Core/Helpers/HCInvocationMatcher.h | 42 - .../Source/Core/Helpers/HCInvocationMatcher.m | 81 - .../Core/Helpers/HCRequireNonNilObject.h | 14 - .../Core/Helpers/HCRequireNonNilObject.m | 15 - .../Source/Core/Helpers/HCRunloopRunner.h | 21 - .../Source/Core/Helpers/HCRunloopRunner.m | 36 - .../Source/Core/Helpers/HCWrapInMatcher.h | 17 - .../Source/Core/Helpers/HCWrapInMatcher.m | 17 - .../Core/Helpers/NSInvocation+OCHamcrest.h | 17 - .../Core/Helpers/NSInvocation+OCHamcrest.m | 45 - .../ReturnValueGetters/HCBoolReturnGetter.h | 16 - .../ReturnValueGetters/HCBoolReturnGetter.m | 22 - .../ReturnValueGetters/HCCharReturnGetter.h | 16 - .../ReturnValueGetters/HCCharReturnGetter.m | 22 - .../ReturnValueGetters/HCDoubleReturnGetter.h | 16 - .../ReturnValueGetters/HCDoubleReturnGetter.m | 22 - .../ReturnValueGetters/HCFloatReturnGetter.h | 16 - .../ReturnValueGetters/HCFloatReturnGetter.m | 22 - .../ReturnValueGetters/HCIntReturnGetter.h | 16 - .../ReturnValueGetters/HCIntReturnGetter.m | 22 - .../HCLongLongReturnGetter.h | 16 - .../HCLongLongReturnGetter.m | 22 - .../ReturnValueGetters/HCLongReturnGetter.h | 16 - .../ReturnValueGetters/HCLongReturnGetter.m | 22 - .../ReturnValueGetters/HCObjectReturnGetter.h | 16 - .../ReturnValueGetters/HCObjectReturnGetter.m | 22 - .../HCReturnTypeHandlerChain.h | 12 - .../HCReturnTypeHandlerChain.m | 44 - .../ReturnValueGetters/HCReturnValueGetter.h | 20 - .../ReturnValueGetters/HCReturnValueGetter.m | 42 - .../ReturnValueGetters/HCShortReturnGetter.h | 16 - .../ReturnValueGetters/HCShortReturnGetter.m | 22 - .../HCUnsignedCharReturnGetter.h | 16 - .../HCUnsignedCharReturnGetter.m | 22 - .../HCUnsignedIntReturnGetter.h | 16 - .../HCUnsignedIntReturnGetter.m | 22 - .../HCUnsignedLongLongReturnGetter.h | 16 - .../HCUnsignedLongLongReturnGetter.m | 22 - .../HCUnsignedLongReturnGetter.h | 16 - .../HCUnsignedLongReturnGetter.m | 22 - .../HCUnsignedShortReturnGetter.h | 16 - .../HCUnsignedShortReturnGetter.m | 22 - .../HCGenericTestFailureReporter.h | 8 - .../HCGenericTestFailureReporter.m | 31 - .../HCSenTestFailureReporter.h | 8 - .../HCSenTestFailureReporter.m | 69 - .../TestFailureReporters/HCTestFailure.h | 42 - .../TestFailureReporters/HCTestFailure.m | 25 - .../HCTestFailureReporter.h | 25 - .../HCTestFailureReporter.m | 22 - .../HCTestFailureReporterChain.h | 36 - .../HCTestFailureReporterChain.m | 41 - .../HCXCTestFailureReporter.h | 8 - .../HCXCTestFailureReporter.m | 33 - .../Source/Library/Collection/HCEvery.h | 45 - .../Source/Library/Collection/HCEvery.m | 74 - .../Source/Library/Collection/HCHasCount.h | 63 - .../Source/Library/Collection/HCHasCount.m | 65 - .../Collection/HCIsCollectionContaining.h | 95 - .../Collection/HCIsCollectionContaining.m | 88 - .../HCIsCollectionContainingInAnyOrder.h | 79 - .../HCIsCollectionContainingInAnyOrder.m | 115 - .../HCIsCollectionContainingInOrder.h | 71 - .../HCIsCollectionContainingInOrder.m | 134 - .../HCIsCollectionContainingInRelativeOrder.h | 48 - .../HCIsCollectionContainingInRelativeOrder.m | 124 - .../Collection/HCIsCollectionOnlyContaining.h | 62 - .../Collection/HCIsCollectionOnlyContaining.m | 34 - .../Collection/HCIsDictionaryContaining.h | 47 - .../Collection/HCIsDictionaryContaining.m | 56 - .../HCIsDictionaryContainingEntries.h | 68 - .../HCIsDictionaryContainingEntries.m | 132 - .../Collection/HCIsDictionaryContainingKey.h | 44 - .../Collection/HCIsDictionaryContainingKey.m | 46 - .../HCIsDictionaryContainingValue.h | 46 - .../HCIsDictionaryContainingValue.m | 46 - .../Library/Collection/HCIsEmptyCollection.h | 39 - .../Library/Collection/HCIsEmptyCollection.m | 33 - .../Source/Library/Collection/HCIsIn.h | 43 - .../Source/Library/Collection/HCIsIn.m | 45 - .../Source/Library/Decorator/HCDescribedAs.h | 41 - .../Source/Library/Decorator/HCDescribedAs.m | 121 - .../Source/Library/Decorator/HCIs.h | 55 - .../Source/Library/Decorator/HCIs.m | 44 - .../Source/Library/Logical/HCAllOf.h | 64 - .../Source/Library/Logical/HCAllOf.m | 60 - .../Source/Library/Logical/HCAnyOf.h | 62 - .../Source/Library/Logical/HCAnyOf.m | 52 - .../Source/Library/Logical/HCIsAnything.h | 55 - .../Source/Library/Logical/HCIsAnything.m | 47 - .../Source/Library/Logical/HCIsNot.h | 44 - .../Source/Library/Logical/HCIsNot.m | 43 - .../Source/Library/Number/HCIsCloseTo.h | 43 - .../Source/Library/Number/HCIsCloseTo.m | 69 - .../Source/Library/Number/HCIsEqualToNumber.h | 289 -- .../Source/Library/Number/HCIsEqualToNumber.m | 77 - .../Source/Library/Number/HCIsTrueFalse.h | 55 - .../Source/Library/Number/HCIsTrueFalse.m | 55 - .../Source/Library/Number/HCNumberAssert.h | 340 --- .../Source/Library/Number/HCNumberAssert.m | 97 - .../Library/Number/HCOrderingComparison.h | 114 - .../Library/Number/HCOrderingComparison.m | 97 - .../Source/Library/Object/HCArgumentCaptor.h | 44 - .../Source/Library/Object/HCArgumentCaptor.m | 56 - .../Source/Library/Object/HCClassMatcher.h | 18 - .../Source/Library/Object/HCClassMatcher.m | 43 - .../Library/Object/HCConformsToProtocol.h | 42 - .../Library/Object/HCConformsToProtocol.m | 44 - .../Source/Library/Object/HCHasDescription.h | 45 - .../Source/Library/Object/HCHasDescription.m | 28 - .../Source/Library/Object/HCHasProperty.h | 47 - .../Source/Library/Object/HCHasProperty.m | 71 - .../Source/Library/Object/HCIsEqual.h | 41 - .../Source/Library/Object/HCIsEqual.m | 46 - .../Source/Library/Object/HCIsInstanceOf.h | 37 - .../Source/Library/Object/HCIsInstanceOf.m | 25 - .../Source/Library/Object/HCIsNil.h | 55 - .../Source/Library/Object/HCIsNil.m | 32 - .../Source/Library/Object/HCIsSame.h | 41 - .../Source/Library/Object/HCIsSame.m | 46 - .../Source/Library/Object/HCIsTypeOf.h | 37 - .../Source/Library/Object/HCIsTypeOf.m | 25 - .../Source/Library/Object/HCThrowsException.h | 41 - .../Source/Library/Object/HCThrowsException.m | 84 - .../Text/HCIsEqualCompressingWhiteSpace.h | 46 - .../Text/HCIsEqualCompressingWhiteSpace.m | 62 - .../Library/Text/HCIsEqualIgnoringCase.h | 41 - .../Library/Text/HCIsEqualIgnoringCase.m | 45 - .../Source/Library/Text/HCStringContains.h | 39 - .../Source/Library/Text/HCStringContains.m | 28 - .../Library/Text/HCStringContainsInOrder.h | 62 - .../Library/Text/HCStringContainsInOrder.m | 78 - .../Source/Library/Text/HCStringEndsWith.h | 40 - .../Source/Library/Text/HCStringEndsWith.m | 28 - .../Source/Library/Text/HCStringStartsWith.h | 40 - .../Source/Library/Text/HCStringStartsWith.m | 28 - .../Source/Library/Text/HCSubstringMatcher.h | 18 - .../Source/Library/Text/HCSubstringMatcher.m | 34 - Pods/OCHamcrest/Source/OCHamcrest.h | 59 - Pods/OCMockito/LICENSE.txt | 35 - Pods/OCMockito/README.md | 415 --- .../OCMockito/Core/MKTMockingProgress.h | 35 - .../OCMockito/Core/MKTMockingProgress.m | 87 - .../Source/OCMockito/Core/MKTMockitoCore.h | 27 - .../Source/OCMockito/Core/MKTMockitoCore.m | 51 - .../Core/MKTNonObjectArgumentMatching.h | 44 - .../Source/OCMockito/Core/MKTTestLocation.h | 29 - .../Source/OCMockito/Core/MKTTestLocation.m | 23 - .../Source/OCMockito/Core/OCMockito.h | 402 --- .../Source/OCMockito/Core/OCMockito.m | 148 - .../ArgumentGetters/MKTArgumentGetter.h | 29 - .../ArgumentGetters/MKTArgumentGetter.m | 42 - .../ArgumentGetters/MKTArgumentGetterChain.h | 16 - .../ArgumentGetters/MKTArgumentGetterChain.m | 52 - .../ArgumentGetters/MKTBoolArgumentGetter.h | 16 - .../ArgumentGetters/MKTBoolArgumentGetter.m | 21 - .../ArgumentGetters/MKTCharArgumentGetter.h | 16 - .../ArgumentGetters/MKTCharArgumentGetter.m | 21 - .../ArgumentGetters/MKTClassArgumentGetter.h | 16 - .../ArgumentGetters/MKTClassArgumentGetter.m | 21 - .../ArgumentGetters/MKTDoubleArgumentGetter.h | 16 - .../ArgumentGetters/MKTDoubleArgumentGetter.m | 21 - .../ArgumentGetters/MKTFloatArgumentGetter.h | 16 - .../ArgumentGetters/MKTFloatArgumentGetter.m | 21 - .../ArgumentGetters/MKTIntArgumentGetter.h | 16 - .../ArgumentGetters/MKTIntArgumentGetter.m | 21 - .../ArgumentGetters/MKTLongArgumentGetter.h | 16 - .../ArgumentGetters/MKTLongArgumentGetter.m | 21 - .../MKTLongLongArgumentGetter.h | 15 - .../MKTLongLongArgumentGetter.m | 21 - .../ArgumentGetters/MKTObjectArgumentGetter.h | 16 - .../ArgumentGetters/MKTObjectArgumentGetter.m | 21 - .../MKTPointerArgumentGetter.h | 16 - .../MKTPointerArgumentGetter.m | 22 - .../MKTSelectorArgumentGetter.h | 16 - .../MKTSelectorArgumentGetter.m | 21 - .../ArgumentGetters/MKTShortArgumentGetter.h | 16 - .../ArgumentGetters/MKTShortArgumentGetter.m | 21 - .../ArgumentGetters/MKTStructArgumentGetter.h | 16 - .../ArgumentGetters/MKTStructArgumentGetter.m | 28 - .../MKTUnsignedCharArgumentGetter.h | 16 - .../MKTUnsignedCharArgumentGetter.m | 21 - .../MKTUnsignedIntArgumentGetter.h | 16 - .../MKTUnsignedIntArgumentGetter.m | 21 - .../MKTUnsignedLongArgumentGetter.h | 16 - .../MKTUnsignedLongArgumentGetter.m | 21 - .../MKTUnsignedLongLongArgumentGetter.h | 16 - .../MKTUnsignedLongLongArgumentGetter.m | 21 - .../MKTUnsignedShortArgumentGetter.h | 16 - .../MKTUnsignedShortArgumentGetter.m | 21 - .../ReturnValueSetters/MKTBoolReturnSetter.h | 16 - .../ReturnValueSetters/MKTBoolReturnSetter.m | 21 - .../ReturnValueSetters/MKTCharReturnSetter.h | 16 - .../ReturnValueSetters/MKTCharReturnSetter.m | 21 - .../ReturnValueSetters/MKTClassReturnSetter.h | 16 - .../ReturnValueSetters/MKTClassReturnSetter.m | 21 - .../MKTDoubleReturnSetter.h | 16 - .../MKTDoubleReturnSetter.m | 21 - .../ReturnValueSetters/MKTFloatReturnSetter.h | 16 - .../ReturnValueSetters/MKTFloatReturnSetter.m | 21 - .../ReturnValueSetters/MKTIntReturnSetter.h | 16 - .../ReturnValueSetters/MKTIntReturnSetter.m | 21 - .../MKTLongLongReturnSetter.h | 16 - .../MKTLongLongReturnSetter.m | 21 - .../ReturnValueSetters/MKTLongReturnSetter.h | 16 - .../ReturnValueSetters/MKTLongReturnSetter.m | 21 - .../MKTObjectReturnSetter.h | 16 - .../MKTObjectReturnSetter.m | 21 - .../ReturnValueSetters/MKTReturnValueSetter.h | 30 - .../ReturnValueSetters/MKTReturnValueSetter.m | 43 - .../MKTReturnValueSetterChain.h | 16 - .../MKTReturnValueSetterChain.m | 48 - .../ReturnValueSetters/MKTShortReturnSetter.h | 16 - .../ReturnValueSetters/MKTShortReturnSetter.m | 21 - .../MKTStructReturnSetter.h | 17 - .../MKTStructReturnSetter.m | 23 - .../MKTUnsignedCharReturnSetter.h | 16 - .../MKTUnsignedCharReturnSetter.m | 21 - .../MKTUnsignedIntReturnSetter.h | 16 - .../MKTUnsignedIntReturnSetter.m | 21 - .../MKTUnsignedLongLongReturnSetter.h | 17 - .../MKTUnsignedLongLongReturnSetter.m | 21 - .../MKTUnsignedLongReturnSetter.h | 16 - .../MKTUnsignedLongReturnSetter.m | 21 - .../MKTUnsignedShortReturnSetter.h | 16 - .../MKTUnsignedShortReturnSetter.m | 21 - .../Invocation/MKTCallStackElement.h | 19 - .../Invocation/MKTCallStackElement.m | 53 - .../OCMockito/Invocation/MKTFilterCallStack.h | 13 - .../OCMockito/Invocation/MKTFilterCallStack.m | 34 - .../OCMockito/Invocation/MKTInvocation.h | 23 - .../OCMockito/Invocation/MKTInvocation.m | 27 - .../Invocation/MKTInvocationMatcher.h | 27 - .../Invocation/MKTInvocationMatcher.m | 149 - .../Source/OCMockito/Invocation/MKTLocation.h | 16 - .../Source/OCMockito/Invocation/MKTLocation.m | 36 - .../Invocation/MKTMatchingInvocationsFinder.h | 24 - .../Invocation/MKTMatchingInvocationsFinder.m | 50 - .../OCMockito/Invocation/MKTParseCallStack.h | 13 - .../OCMockito/Invocation/MKTParseCallStack.m | 18 - .../Source/OCMockito/Invocation/MKTPrinter.h | 24 - .../Source/OCMockito/Invocation/MKTPrinter.m | 170 -- .../Invocation/NSInvocation+OCMockito.h | 35 - .../Invocation/NSInvocation+OCMockito.m | 52 - .../OCMockito/Mocking/MKTBaseMockObject.h | 19 - .../OCMockito/Mocking/MKTBaseMockObject.m | 128 - .../OCMockito/Mocking/MKTClassObjectMock.h | 23 - .../OCMockito/Mocking/MKTClassObjectMock.m | 63 - .../OCMockito/Mocking/MKTDynamicProperties.h | 17 - .../OCMockito/Mocking/MKTDynamicProperties.m | 146 - .../Mocking/MKTObjectAndProtocolMock.h | 21 - .../Mocking/MKTObjectAndProtocolMock.m | 61 - .../Source/OCMockito/Mocking/MKTObjectMock.h | 19 - .../Source/OCMockito/Mocking/MKTObjectMock.m | 54 - .../OCMockito/Mocking/MKTProtocolMock.h | 22 - .../OCMockito/Mocking/MKTProtocolMock.m | 68 - .../OCMockito/Mocking/MKTSingletonSwizzler.h | 21 - .../OCMockito/Mocking/MKTSingletonSwizzler.m | 144 - .../Source/OCMockito/Stubbing/MKTAnswer.h | 24 - .../OCMockito/Stubbing/MKTExecutesBlock.h | 19 - .../OCMockito/Stubbing/MKTExecutesBlock.m | 26 - .../Stubbing/MKTInvocationContainer.h | 28 - .../Stubbing/MKTInvocationContainer.m | 74 - .../OCMockito/Stubbing/MKTOngoingStubbing.h | 152 -- .../OCMockito/Stubbing/MKTOngoingStubbing.m | 180 -- .../OCMockito/Stubbing/MKTReturnsValue.h | 19 - .../OCMockito/Stubbing/MKTReturnsValue.m | 26 - .../Stubbing/MKTStubbedInvocationMatcher.h | 16 - .../Stubbing/MKTStubbedInvocationMatcher.m | 36 - .../OCMockito/Stubbing/MKTThrowsException.h | 19 - .../OCMockito/Stubbing/MKTThrowsException.m | 27 - .../MKTAtLeastNumberOfInvocationsChecker.h | 22 - .../MKTAtLeastNumberOfInvocationsChecker.m | 29 - .../OCMockito/Verifying/MKTAtLeastTimes.h | 18 - .../OCMockito/Verifying/MKTAtLeastTimes.m | 38 - .../MKTAtMostNumberOfInvocationsChecker.h | 22 - .../MKTAtMostNumberOfInvocationsChecker.m | 31 - .../OCMockito/Verifying/MKTAtMostTimes.h | 18 - .../OCMockito/Verifying/MKTAtMostTimes.m | 38 - .../OCMockito/Verifying/MKTExactTimes.h | 17 - .../OCMockito/Verifying/MKTExactTimes.m | 50 - .../Verifying/MKTInvocationsChecker.h | 23 - .../Verifying/MKTInvocationsChecker.m | 84 - .../Verifying/MKTMissingInvocationChecker.h | 23 - .../Verifying/MKTMissingInvocationChecker.m | 91 - .../Verifying/MKTNumberOfInvocationsChecker.h | 22 - .../Verifying/MKTNumberOfInvocationsChecker.m | 35 - .../OCMockito/Verifying/MKTVerificationData.h | 26 - .../OCMockito/Verifying/MKTVerificationData.m | 35 - .../OCMockito/Verifying/MKTVerificationMode.h | 22 - .../TPDWeakProxy/MKT_TPDWeakProxy.h | 25 - .../TPDWeakProxy/MKT_TPDWeakProxy.m | 56 - Pods/Pods.xcodeproj/project.pbxproj | 2393 ----------------- .../OCHamcrest/OCHamcrest-Info.plist | 26 - .../OCHamcrest/OCHamcrest-dummy.m | 5 - .../OCHamcrest/OCHamcrest-prefix.pch | 12 - .../OCHamcrest/OCHamcrest-umbrella.h | 74 - .../OCHamcrest/OCHamcrest.debug.xcconfig | 9 - .../OCHamcrest/OCHamcrest.modulemap | 6 - .../OCHamcrest/OCHamcrest.release.xcconfig | 9 - .../OCMockito/OCMockito-Info.plist | 26 - .../OCMockito/OCMockito-dummy.m | 5 - .../OCMockito/OCMockito-prefix.pch | 12 - .../OCMockito/OCMockito-umbrella.h | 25 - .../OCMockito/OCMockito.debug.xcconfig | 10 - .../OCMockito/OCMockito.modulemap | 6 - .../OCMockito/OCMockito.release.xcconfig | 10 - ...onsterCards-MonsterCardsUITests-Info.plist | 26 - ...sterCardsUITests-acknowledgements.markdown | 59 - ...MonsterCardsUITests-acknowledgements.plist | 97 - ...s-MonsterCards-MonsterCardsUITests-dummy.m | 5 - ...ts-frameworks-Debug-input-files.xcfilelist | 3 - ...s-frameworks-Debug-output-files.xcfilelist | 2 - ...-frameworks-Release-input-files.xcfilelist | 3 - ...frameworks-Release-output-files.xcfilelist | 2 - ...terCards-MonsterCardsUITests-frameworks.sh | 209 -- ...onsterCards-MonsterCardsUITests-umbrella.h | 16 - ...erCards-MonsterCardsUITests.debug.xcconfig | 10 - ...MonsterCards-MonsterCardsUITests.modulemap | 6 - ...Cards-MonsterCardsUITests.release.xcconfig | 10 - .../Pods-MonsterCards-Info.plist | 26 - ...ods-MonsterCards-acknowledgements.markdown | 3 - .../Pods-MonsterCards-acknowledgements.plist | 29 - .../Pods-MonsterCards-dummy.m | 5 - .../Pods-MonsterCards-umbrella.h | 16 - .../Pods-MonsterCards.debug.xcconfig | 6 - .../Pods-MonsterCards.modulemap | 6 - .../Pods-MonsterCards.release.xcconfig | 6 - .../Pods-MonsterCardsTests-Info.plist | 26 - ...onsterCardsTests-acknowledgements.markdown | 59 - ...s-MonsterCardsTests-acknowledgements.plist | 97 - .../Pods-MonsterCardsTests-dummy.m | 5 - ...ts-frameworks-Debug-input-files.xcfilelist | 3 - ...s-frameworks-Debug-output-files.xcfilelist | 2 - ...-frameworks-Release-input-files.xcfilelist | 3 - ...frameworks-Release-output-files.xcfilelist | 2 - .../Pods-MonsterCardsTests-frameworks.sh | 209 -- .../Pods-MonsterCardsTests-umbrella.h | 16 - .../Pods-MonsterCardsTests.debug.xcconfig | 10 - .../Pods-MonsterCardsTests.modulemap | 6 - .../Pods-MonsterCardsTests.release.xcconfig | 10 - 459 files changed, 2301 insertions(+), 23910 deletions(-) delete mode 100644 MonsterCards.xcodeproj/xcshareddata/xcschemes/MonsterCards.xcscheme delete mode 100644 MonsterCards.xcworkspace/contents.xcworkspacedata delete mode 100644 MonsterCards.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 MonsterCards/AppDelegate.h delete mode 100644 MonsterCards/AppDelegate.m create mode 100644 MonsterCards/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 MonsterCards/Assets.xcassets/section-divider.imageset/Contents.json rename MonsterCards/{Assets => Assets.xcassets/section-divider.imageset}/section-divider.png (100%) rename MonsterCards/{Assets => Assets.xcassets/section-divider.imageset}/section-divider@2x.png (100%) rename MonsterCards/{Assets => Assets.xcassets/section-divider.imageset}/section-divider@3x.png (100%) delete mode 100644 MonsterCards/Base.lproj/LaunchScreen.storyboard delete mode 100644 MonsterCards/Base.lproj/Main.storyboard create mode 100644 MonsterCards/Helpers/Color+Hex.swift delete mode 100644 MonsterCards/Helpers/HTMLHelper.h delete mode 100644 MonsterCards/Helpers/HTMLHelper.m delete mode 100644 MonsterCards/Helpers/JSONHelper.h delete mode 100644 MonsterCards/Helpers/JSONHelper.m delete mode 100644 MonsterCards/Helpers/StringHelper.h delete mode 100644 MonsterCards/Helpers/StringHelper.m delete mode 100644 MonsterCards/Models/Ability.h delete mode 100644 MonsterCards/Models/Ability.m delete mode 100644 MonsterCards/Models/Action.h delete mode 100644 MonsterCards/Models/Action.m create mode 100644 MonsterCards/Models/AdvantageType.swift delete mode 100644 MonsterCards/Models/DamageType.h delete mode 100644 MonsterCards/Models/DamageType.m delete mode 100644 MonsterCards/Models/Language.h delete mode 100644 MonsterCards/Models/Language.m create mode 100644 MonsterCards/Models/Monster+CoreDataClass.swift delete mode 100644 MonsterCards/Models/Monster.h delete mode 100644 MonsterCards/Models/Monster.m create mode 100644 MonsterCards/Models/ProficiencyType.swift delete mode 100644 MonsterCards/Models/SavingThrow.h delete mode 100644 MonsterCards/Models/SavingThrow.m delete mode 100644 MonsterCards/Models/Skill.h delete mode 100644 MonsterCards/Models/Skill.m create mode 100644 MonsterCards/MonsterCardsApp.swift create mode 100644 MonsterCards/Persistence.swift create mode 100644 MonsterCards/Preview Content/Preview Assets.xcassets/Contents.json delete mode 100644 MonsterCards/SceneDelegate.h delete mode 100644 MonsterCards/SceneDelegate.m create mode 100644 MonsterCards/Views/Collections.swift delete mode 100644 MonsterCards/Views/CollectionsViewController.h delete mode 100644 MonsterCards/Views/CollectionsViewController.m create mode 100644 MonsterCards/Views/ContentView.swift create mode 100644 MonsterCards/Views/Dashboard.swift delete mode 100644 MonsterCards/Views/DashboardViewController.h delete mode 100644 MonsterCards/Views/DashboardViewController.m create mode 100644 MonsterCards/Views/EditMonster.swift delete mode 100644 MonsterCards/Views/EditMonsterViewController.h delete mode 100644 MonsterCards/Views/EditMonsterViewController.m delete mode 100644 MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.h delete mode 100644 MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.m delete mode 100644 MonsterCards/Views/FormFields/MCChoice.h delete mode 100644 MonsterCards/Views/FormFields/MCChoice.m delete mode 100644 MonsterCards/Views/FormFields/MCFormFieldConstants.h delete mode 100644 MonsterCards/Views/FormFields/MCFormFieldConstants.m delete mode 100644 MonsterCards/Views/FormFields/MCFormFieldDelegate.h delete mode 100644 MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.h delete mode 100644 MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.m delete mode 100644 MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.h delete mode 100644 MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.m delete mode 100644 MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.h delete mode 100644 MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.m delete mode 100644 MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.h delete mode 100644 MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.m create mode 100644 MonsterCards/Views/Library.swift delete mode 100644 MonsterCards/Views/LibraryViewController.h delete mode 100644 MonsterCards/Views/LibraryViewController.m create mode 100644 MonsterCards/Views/MCAdvantagePicker.swift create mode 100644 MonsterCards/Views/MCProficiencyPicker.swift create mode 100644 MonsterCards/Views/MCStepperField.swift create mode 100644 MonsterCards/Views/MCTextField.swift create mode 100644 MonsterCards/Views/MonsterDetail.swift delete mode 100644 MonsterCards/Views/MonsterViewController.h delete mode 100644 MonsterCards/Views/MonsterViewController.m create mode 100644 MonsterCards/Views/Search.swift create mode 100644 MonsterCards/Views/SearchBar.swift delete mode 100644 MonsterCards/Views/SearchViewController.h delete mode 100644 MonsterCards/Views/SearchViewController.m delete mode 100644 MonsterCards/main.m delete mode 100644 MonsterCardsTests/Helpers/JSONHelperTests.m delete mode 100644 MonsterCardsTests/Models/AbilityTests.m delete mode 100644 MonsterCardsTests/Models/ActionTests.m delete mode 100644 MonsterCardsTests/Models/DamageTypeTests.m delete mode 100644 MonsterCardsTests/Models/LanguageTests.m delete mode 100644 MonsterCardsTests/Models/MonsterTests.m delete mode 100644 MonsterCardsTests/Models/SavingThrowTests.m delete mode 100644 MonsterCardsTests/Models/SkillTests.m delete mode 100644 MonsterCardsTests/MonsterCardsTests.m create mode 100644 MonsterCardsTests/MonsterCardsTests.swift delete mode 100644 MonsterCardsTests/Views/EditMonsterViewControllerTests.m delete mode 100644 MonsterCardsUITests/MonsterCardsUITests.m create mode 100644 MonsterCardsUITests/MonsterCardsUITests.swift delete mode 100644 Podfile delete mode 100644 Podfile.lock delete mode 100644 Pods/Manifest.lock delete mode 100644 Pods/OCHamcrest/LICENSE.txt delete mode 100644 Pods/OCHamcrest/README.md delete mode 100644 Pods/OCHamcrest/Source/Core/HCAssertThat.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCAssertThat.m delete mode 100644 Pods/OCHamcrest/Source/Core/HCBaseDescription.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCBaseDescription.m delete mode 100644 Pods/OCHamcrest/Source/Core/HCBaseMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCBaseMatcher.m delete mode 100644 Pods/OCHamcrest/Source/Core/HCDescription.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m delete mode 100644 Pods/OCHamcrest/Source/Core/HCMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCSelfDescribing.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCStringDescription.h delete mode 100644 Pods/OCHamcrest/Source/Core/HCStringDescription.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h delete mode 100644 Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCEvery.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCEvery.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h delete mode 100644 Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m delete mode 100644 Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h delete mode 100644 Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m delete mode 100644 Pods/OCHamcrest/Source/Library/Decorator/HCIs.h delete mode 100644 Pods/OCHamcrest/Source/Library/Decorator/HCIs.m delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h delete mode 100644 Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h delete mode 100644 Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsNil.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsNil.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsSame.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsSame.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h delete mode 100644 Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringContains.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringContains.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h delete mode 100644 Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m delete mode 100644 Pods/OCHamcrest/Source/OCHamcrest.h delete mode 100644 Pods/OCMockito/LICENSE.txt delete mode 100644 Pods/OCMockito/README.md delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTNonObjectArgumentMatching.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/OCMockito.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Core/OCMockito.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTAnswer.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.h delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.m delete mode 100644 Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationMode.h delete mode 100644 Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.h delete mode 100644 Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.m delete mode 100644 Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest-Info.plist delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest-umbrella.h delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest.debug.xcconfig delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest.modulemap delete mode 100644 Pods/Target Support Files/OCHamcrest/OCHamcrest.release.xcconfig delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito-Info.plist delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito-dummy.m delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito-prefix.pch delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito-umbrella.h delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito.debug.xcconfig delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito.modulemap delete mode 100644 Pods/Target Support Files/OCMockito/OCMockito.release.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-dummy.m delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-input-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-output-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-input-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-output-files.xcfilelist delete mode 100755 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-umbrella.h delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap delete mode 100644 Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.release.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-dummy.m delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-umbrella.h delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap delete mode 100644 Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.release.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-dummy.m delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-input-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-output-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-input-files.xcfilelist delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-output-files.xcfilelist delete mode 100755 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-umbrella.h delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap delete mode 100644 Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.release.xcconfig diff --git a/MonsterCards.xcodeproj/project.pbxproj b/MonsterCards.xcodeproj/project.pbxproj index 6589c75..270b3bf 100644 --- a/MonsterCards.xcodeproj/project.pbxproj +++ b/MonsterCards.xcodeproj/project.pbxproj @@ -3,393 +3,218 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 50; objects = { /* Begin PBXBuildFile section */ - 1D2A61B332F293AB365B59E7 /* Pods_MonsterCards_MonsterCardsUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89F0D2EC2EC3C99EFD9A6949 /* Pods_MonsterCards_MonsterCardsUITests.framework */; }; - 92967C3D4DFE1D9C66FF994F /* Pods_MonsterCards.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8D56491D6CAB92316D2C1B /* Pods_MonsterCards.framework */; }; - CE281520762D69A9E98D19CF /* Pods_MonsterCardsTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F017069E22ED575758F9E2 /* Pods_MonsterCardsTests.framework */; }; - E20C315425146708003AB1AA /* MCIntegerFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E20C315325146708003AB1AA /* MCIntegerFieldTableViewCell.m */; }; - E20D032425031B9D00FB6E43 /* SearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E20D032325031B9D00FB6E43 /* SearchViewController.m */; }; - E20D032825031BDA00FB6E43 /* MonsterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E20D032725031BDA00FB6E43 /* MonsterViewController.m */; }; - E20D032B25031BE500FB6E43 /* LibraryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E20D032A25031BE500FB6E43 /* LibraryViewController.m */; }; - E20D032E25031BEF00FB6E43 /* CollectionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E20D032D25031BEF00FB6E43 /* CollectionsViewController.m */; }; - E20D033125031BFD00FB6E43 /* DashboardViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E20D033025031BFD00FB6E43 /* DashboardViewController.m */; }; - E22F837C2511D14E0072105C /* JSONHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E22F837B2511D14E0072105C /* JSONHelper.m */; }; - E22F837F2511E8500072105C /* JSONHelperTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E22F837E2511E8500072105C /* JSONHelperTests.m */; }; - E2532E8925038DE100CA4CBA /* StringHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E2532E8825038DE100CA4CBA /* StringHelper.m */; }; - E2592B8D250D6B8100906A40 /* EditMonsterViewControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2592B8C250D6B8100906A40 /* EditMonsterViewControllerTests.m */; }; - E25BD5F5250352C4007B04EF /* Monster.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD5F4250352C4007B04EF /* Monster.m */; }; - E25BD5F8250368A8007B04EF /* SavingThrow.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD5F7250368A8007B04EF /* SavingThrow.m */; }; - E25BD5FB250369D7007B04EF /* Skill.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD5FA250369D7007B04EF /* Skill.m */; }; - E25BD5FE25036A76007B04EF /* DamageType.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD5FD25036A76007B04EF /* DamageType.m */; }; - E25BD60125036BF8007B04EF /* Language.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD60025036BF8007B04EF /* Language.m */; }; - E25BD60425036CF0007B04EF /* Ability.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD60325036CF0007B04EF /* Ability.m */; }; - E25BD60725036CFA007B04EF /* Action.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD60625036CFA007B04EF /* Action.m */; }; - E26A73572511BA1900C5677E /* HTMLHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E26A73562511BA1900C5677E /* HTMLHelper.m */; }; - E278E21B250DFFCA00D3EC0E /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E278E21A250DFFCA00D3EC0E /* Images.xcassets */; }; - E2805514251E03BE00C87527 /* MCBooleanFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E2805513251E03BE00C87527 /* MCBooleanFieldTableViewCell.m */; }; - E288744A25148BA0005CA948 /* MCFormFieldConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = E288744925148BA0005CA948 /* MCFormFieldConstants.m */; }; - E2D3E3B0250827110052A8EC /* EditMonsterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D3E3AF250827110052A8EC /* EditMonsterViewController.m */; }; - E2D3E3B42508C3360052A8EC /* MCShortStringFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D3E3B32508C3360052A8EC /* MCShortStringFieldTableViewCell.m */; }; - E2E25805250CC3A7002E7308 /* MonsterCards.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = E2F7248225005E89007D87ED /* MonsterCards.xcdatamodeld */; }; - E2E90AFF252015B3005241C8 /* MCSelectFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E2E90AFE252015B3005241C8 /* MCSelectFieldTableViewCell.m */; }; - E2E90B0525201785005241C8 /* MCChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = E2E90B0425201785005241C8 /* MCChoice.m */; }; - E2E90B172520667F005241C8 /* MCRadioFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E2E90B162520667E005241C8 /* MCRadioFieldTableViewCell.m */; }; - E2ECA8F32504AC3300C1FFA5 /* SkillTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2ECA8F22504AC3300C1FFA5 /* SkillTests.m */; }; - E2ECA8F52504BAAD00C1FFA5 /* MonsterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2ECA8F42504BAAD00C1FFA5 /* MonsterTests.m */; }; - E2F7247525005E89007D87ED /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F7247425005E89007D87ED /* AppDelegate.m */; }; - E2F7247825005E89007D87ED /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F7247725005E89007D87ED /* SceneDelegate.m */; }; - E2F7248125005E89007D87ED /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E2F7247F25005E89007D87ED /* Main.storyboard */; }; - E2F7248425005E89007D87ED /* MonsterCards.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = E2F7248225005E89007D87ED /* MonsterCards.xcdatamodeld */; }; - E2F7248625005E8A007D87ED /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2F7248525005E8A007D87ED /* Assets.xcassets */; }; - E2F7248925005E8A007D87ED /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E2F7248725005E8A007D87ED /* LaunchScreen.storyboard */; }; - E2F7248C25005E8A007D87ED /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F7248B25005E8A007D87ED /* main.m */; }; - E2F7249625005E8A007D87ED /* MonsterCardsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F7249525005E8A007D87ED /* MonsterCardsTests.m */; }; - E2F724A125005E8A007D87ED /* MonsterCardsUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F724A025005E8A007D87ED /* MonsterCardsUITests.m */; }; - E2FD91E425047C4400D5E935 /* AbilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E325047C4400D5E935 /* AbilityTests.m */; }; - E2FD91E6250481F300D5E935 /* ActionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E5250481F300D5E935 /* ActionTests.m */; }; - E2FD91E82504832A00D5E935 /* DamageTypeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E72504832A00D5E935 /* DamageTypeTests.m */; }; - E2FD91EA250493C000D5E935 /* LanguageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E9250493C000D5E935 /* LanguageTests.m */; }; - E2FD91EC250496B000D5E935 /* SavingThrowTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91EB250496B000D5E935 /* SavingThrowTests.m */; }; + E210B83025B426570083EAC5 /* ProficiencyType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B82F25B426570083EAC5 /* ProficiencyType.swift */; }; + E210B83525B428A30083EAC5 /* AdvantageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83425B428A30083EAC5 /* AdvantageType.swift */; }; + E210B83A25B42D980083EAC5 /* MCProficiencyPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */; }; + E210B83F25B42DAB0083EAC5 /* MCAdvantagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */; }; + E2182E6425B22F8A00DFAEF8 /* Monster+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2182E6225B22F8A00DFAEF8 /* Monster+CoreDataClass.swift */; }; + E2570FB925B1AC520055B23B /* MonsterCardsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FB825B1AC520055B23B /* MonsterCardsApp.swift */; }; + E2570FBB25B1AC520055B23B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FBA25B1AC520055B23B /* ContentView.swift */; }; + E2570FBD25B1AC550055B23B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2570FBC25B1AC550055B23B /* Assets.xcassets */; }; + E2570FC025B1AC550055B23B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2570FBF25B1AC550055B23B /* Preview Assets.xcassets */; }; + E2570FC225B1AC550055B23B /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FC125B1AC550055B23B /* Persistence.swift */; }; + E2570FC525B1AC550055B23B /* MonsterCards.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = E2570FC325B1AC550055B23B /* MonsterCards.xcdatamodeld */; }; + E2570FD025B1AC550055B23B /* MonsterCardsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FCF25B1AC550055B23B /* MonsterCardsTests.swift */; }; + E2570FDB25B1AC550055B23B /* MonsterCardsUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FDA25B1AC550055B23B /* MonsterCardsUITests.swift */; }; + E2570FF025B1ADC10055B23B /* Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FEF25B1ADC10055B23B /* Search.swift */; }; + E2570FF525B1ADEB0055B23B /* Dashboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FF425B1ADEB0055B23B /* Dashboard.swift */; }; + E2570FFA25B1AE020055B23B /* Collections.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FF925B1AE020055B23B /* Collections.swift */; }; + E2570FFF25B1AE180055B23B /* Library.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FFE25B1AE180055B23B /* Library.swift */; }; + E257100425B1AF4A0055B23B /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E257100325B1AF4A0055B23B /* SearchBar.swift */; }; + E257100925B1B2480055B23B /* MonsterDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = E257100825B1B2470055B23B /* MonsterDetail.swift */; }; + E2B5285925B3028700AAA69E /* EditMonster.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2B5285825B3028700AAA69E /* EditMonster.swift */; }; + E2BD702C25B3A8D70058ED69 /* MCTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2BD702B25B3A8D70058ED69 /* MCTextField.swift */; }; + E2BD703125B3BBB90058ED69 /* MCStepperField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2BD703025B3BBB90058ED69 /* MCStepperField.swift */; }; + E2D473FD25B532C900CB36D7 /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D473FC25B532C900CB36D7 /* Color+Hex.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - E2F7249225005E8A007D87ED /* PBXContainerItemProxy */ = { + E2570FCC25B1AC550055B23B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = E2F7246825005E89007D87ED /* Project object */; + containerPortal = E2570FAD25B1AC520055B23B /* Project object */; proxyType = 1; - remoteGlobalIDString = E2F7246F25005E89007D87ED; + remoteGlobalIDString = E2570FB425B1AC520055B23B; remoteInfo = MonsterCards; }; - E2F7249D25005E8A007D87ED /* PBXContainerItemProxy */ = { + E2570FD725B1AC550055B23B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = E2F7246825005E89007D87ED /* Project object */; + containerPortal = E2570FAD25B1AC520055B23B /* Project object */; proxyType = 1; - remoteGlobalIDString = E2F7246F25005E89007D87ED; + remoteGlobalIDString = E2570FB425B1AC520055B23B; remoteInfo = MonsterCards; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 1A3B9A106B1FD3BB7C0750DF /* Pods-MonsterCardsTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCardsTests.debug.xcconfig"; path = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.debug.xcconfig"; sourceTree = ""; }; - 598715810FF9D9DA2A1E91C6 /* Pods-MonsterCardsTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCardsTests.release.xcconfig"; path = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.release.xcconfig"; sourceTree = ""; }; - 6E60C8124CB33D697F6D0390 /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCards-MonsterCardsUITests.release.xcconfig"; path = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.release.xcconfig"; sourceTree = ""; }; - 89F0D2EC2EC3C99EFD9A6949 /* Pods_MonsterCards_MonsterCardsUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCards_MonsterCardsUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7E1FCC69D4538591C4D289B /* Pods-MonsterCards.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCards.debug.xcconfig"; path = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards.debug.xcconfig"; sourceTree = ""; }; - A9F017069E22ED575758F9E2 /* Pods_MonsterCardsTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCardsTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D079B8CF0ADA838AAA0A13EA /* Pods-MonsterCards.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCards.release.xcconfig"; path = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards.release.xcconfig"; sourceTree = ""; }; - E20C315225146708003AB1AA /* MCIntegerFieldTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCIntegerFieldTableViewCell.h; sourceTree = ""; }; - E20C315325146708003AB1AA /* MCIntegerFieldTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCIntegerFieldTableViewCell.m; sourceTree = ""; }; - E20D032225031B9D00FB6E43 /* SearchViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchViewController.h; sourceTree = ""; }; - E20D032325031B9D00FB6E43 /* SearchViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SearchViewController.m; sourceTree = ""; }; - E20D032625031BDA00FB6E43 /* MonsterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MonsterViewController.h; sourceTree = ""; }; - E20D032725031BDA00FB6E43 /* MonsterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MonsterViewController.m; sourceTree = ""; }; - E20D032925031BE500FB6E43 /* LibraryViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LibraryViewController.h; sourceTree = ""; }; - E20D032A25031BE500FB6E43 /* LibraryViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LibraryViewController.m; sourceTree = ""; }; - E20D032C25031BEF00FB6E43 /* CollectionsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CollectionsViewController.h; sourceTree = ""; }; - E20D032D25031BEF00FB6E43 /* CollectionsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CollectionsViewController.m; sourceTree = ""; }; - E20D032F25031BFD00FB6E43 /* DashboardViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DashboardViewController.h; sourceTree = ""; }; - E20D033025031BFD00FB6E43 /* DashboardViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DashboardViewController.m; sourceTree = ""; }; - E22F837A2511D14E0072105C /* JSONHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSONHelper.h; sourceTree = ""; }; - E22F837B2511D14E0072105C /* JSONHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JSONHelper.m; sourceTree = ""; }; - E22F837E2511E8500072105C /* JSONHelperTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JSONHelperTests.m; sourceTree = ""; }; - E2532E8725038DE100CA4CBA /* StringHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringHelper.h; sourceTree = ""; }; - E2532E8825038DE100CA4CBA /* StringHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StringHelper.m; sourceTree = ""; }; - E2591EB62509DD4900B396FD /* MCFormFieldDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCFormFieldDelegate.h; sourceTree = ""; }; - E2592B8C250D6B8100906A40 /* EditMonsterViewControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EditMonsterViewControllerTests.m; sourceTree = ""; }; - E25BD5F3250352C4007B04EF /* Monster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Monster.h; sourceTree = ""; }; - E25BD5F4250352C4007B04EF /* Monster.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Monster.m; sourceTree = ""; }; - E25BD5F6250368A8007B04EF /* SavingThrow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SavingThrow.h; sourceTree = ""; }; - E25BD5F7250368A8007B04EF /* SavingThrow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SavingThrow.m; sourceTree = ""; }; - E25BD5F9250369D7007B04EF /* Skill.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Skill.h; sourceTree = ""; }; - E25BD5FA250369D7007B04EF /* Skill.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Skill.m; sourceTree = ""; }; - E25BD5FC25036A76007B04EF /* DamageType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DamageType.h; sourceTree = ""; }; - E25BD5FD25036A76007B04EF /* DamageType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DamageType.m; sourceTree = ""; }; - E25BD5FF25036BF8007B04EF /* Language.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Language.h; sourceTree = ""; }; - E25BD60025036BF8007B04EF /* Language.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Language.m; sourceTree = ""; }; - E25BD60225036CF0007B04EF /* Ability.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ability.h; sourceTree = ""; }; - E25BD60325036CF0007B04EF /* Ability.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Ability.m; sourceTree = ""; }; - E25BD60525036CFA007B04EF /* Action.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Action.h; sourceTree = ""; }; - E25BD60625036CFA007B04EF /* Action.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Action.m; sourceTree = ""; }; - E265EE24B2C8E81E1B559306 /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig"; path = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig"; sourceTree = ""; }; - E26A73552511BA1900C5677E /* HTMLHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HTMLHelper.h; sourceTree = ""; }; - E26A73562511BA1900C5677E /* HTMLHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HTMLHelper.m; sourceTree = ""; }; - E278E21A250DFFCA00D3EC0E /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - E2805512251E03BE00C87527 /* MCBooleanFieldTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCBooleanFieldTableViewCell.h; sourceTree = ""; }; - E2805513251E03BE00C87527 /* MCBooleanFieldTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCBooleanFieldTableViewCell.m; sourceTree = ""; }; - E288744925148BA0005CA948 /* MCFormFieldConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCFormFieldConstants.m; sourceTree = ""; }; - E288744E25148BAD005CA948 /* MCFormFieldConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCFormFieldConstants.h; sourceTree = ""; }; - E2D3E3AE250827110052A8EC /* EditMonsterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditMonsterViewController.h; sourceTree = ""; }; - E2D3E3AF250827110052A8EC /* EditMonsterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EditMonsterViewController.m; sourceTree = ""; }; - E2D3E3B22508C3360052A8EC /* MCShortStringFieldTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCShortStringFieldTableViewCell.h; sourceTree = ""; }; - E2D3E3B32508C3360052A8EC /* MCShortStringFieldTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCShortStringFieldTableViewCell.m; sourceTree = ""; }; - E2E90AFD252015B3005241C8 /* MCSelectFieldTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCSelectFieldTableViewCell.h; sourceTree = ""; }; - E2E90AFE252015B3005241C8 /* MCSelectFieldTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCSelectFieldTableViewCell.m; sourceTree = ""; }; - E2E90B0325201785005241C8 /* MCChoice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCChoice.h; sourceTree = ""; }; - E2E90B0425201785005241C8 /* MCChoice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCChoice.m; sourceTree = ""; }; - E2E90B152520667E005241C8 /* MCRadioFieldTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCRadioFieldTableViewCell.h; sourceTree = ""; }; - E2E90B162520667E005241C8 /* MCRadioFieldTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MCRadioFieldTableViewCell.m; sourceTree = ""; }; - E2ECA8F22504AC3300C1FFA5 /* SkillTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SkillTests.m; sourceTree = ""; }; - E2ECA8F42504BAAD00C1FFA5 /* MonsterTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MonsterTests.m; sourceTree = ""; }; - E2F7247025005E89007D87ED /* Monster Cards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Monster Cards.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - E2F7247325005E89007D87ED /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - E2F7247425005E89007D87ED /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - E2F7247625005E89007D87ED /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; - E2F7247725005E89007D87ED /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; - E2F7248025005E89007D87ED /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - E2F7248325005E89007D87ED /* MonsterCards.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MonsterCards.xcdatamodel; sourceTree = ""; }; - E2F7248525005E8A007D87ED /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - E2F7248825005E8A007D87ED /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - E2F7248A25005E8A007D87ED /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E2F7248B25005E8A007D87ED /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - E2F7249125005E8A007D87ED /* MonsterCardsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MonsterCardsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - E2F7249525005E8A007D87ED /* MonsterCardsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MonsterCardsTests.m; sourceTree = ""; }; - E2F7249725005E8A007D87ED /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E2F7249C25005E8A007D87ED /* MonsterCardsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MonsterCardsUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - E2F724A025005E8A007D87ED /* MonsterCardsUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MonsterCardsUITests.m; sourceTree = ""; }; - E2F724A225005E8A007D87ED /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E2FD91E325047C4400D5E935 /* AbilityTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbilityTests.m; sourceTree = ""; }; - E2FD91E5250481F300D5E935 /* ActionTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ActionTests.m; sourceTree = ""; }; - E2FD91E72504832A00D5E935 /* DamageTypeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DamageTypeTests.m; sourceTree = ""; }; - E2FD91E9250493C000D5E935 /* LanguageTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LanguageTests.m; sourceTree = ""; }; - E2FD91EB250496B000D5E935 /* SavingThrowTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SavingThrowTests.m; sourceTree = ""; }; - FA8D56491D6CAB92316D2C1B /* Pods_MonsterCards.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCards.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E210B82F25B426570083EAC5 /* ProficiencyType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProficiencyType.swift; sourceTree = ""; }; + E210B83425B428A30083EAC5 /* AdvantageType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvantageType.swift; sourceTree = ""; }; + E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCProficiencyPicker.swift; sourceTree = ""; }; + E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCAdvantagePicker.swift; sourceTree = ""; }; + E2182E6225B22F8A00DFAEF8 /* Monster+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Monster+CoreDataClass.swift"; sourceTree = ""; }; + E2570FB525B1AC520055B23B /* MonsterCards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MonsterCards.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E2570FB825B1AC520055B23B /* MonsterCardsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonsterCardsApp.swift; sourceTree = ""; }; + E2570FBA25B1AC520055B23B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + E2570FBC25B1AC550055B23B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + E2570FBF25B1AC550055B23B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + E2570FC125B1AC550055B23B /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = ""; }; + E2570FC425B1AC550055B23B /* MonsterCards.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MonsterCards.xcdatamodel; sourceTree = ""; }; + E2570FC625B1AC550055B23B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E2570FCB25B1AC550055B23B /* MonsterCardsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MonsterCardsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + E2570FCF25B1AC550055B23B /* MonsterCardsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonsterCardsTests.swift; sourceTree = ""; }; + E2570FD125B1AC550055B23B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E2570FD625B1AC550055B23B /* MonsterCardsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MonsterCardsUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + E2570FDA25B1AC550055B23B /* MonsterCardsUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonsterCardsUITests.swift; sourceTree = ""; }; + E2570FDC25B1AC550055B23B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E2570FEF25B1ADC10055B23B /* Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Search.swift; sourceTree = ""; }; + E2570FF425B1ADEB0055B23B /* Dashboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dashboard.swift; sourceTree = ""; }; + E2570FF925B1AE020055B23B /* Collections.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Collections.swift; sourceTree = ""; }; + E2570FFE25B1AE180055B23B /* Library.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Library.swift; sourceTree = ""; }; + E257100325B1AF4A0055B23B /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = ""; }; + E257100825B1B2470055B23B /* MonsterDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonsterDetail.swift; sourceTree = ""; }; + E2B5285825B3028700AAA69E /* EditMonster.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditMonster.swift; sourceTree = ""; }; + E2BD702B25B3A8D70058ED69 /* MCTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCTextField.swift; sourceTree = ""; }; + E2BD703025B3BBB90058ED69 /* MCStepperField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCStepperField.swift; sourceTree = ""; }; + E2D473FC25B532C900CB36D7 /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - E2F7246D25005E89007D87ED /* Frameworks */ = { + E2570FB225B1AC520055B23B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 92967C3D4DFE1D9C66FF994F /* Pods_MonsterCards.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7248E25005E8A007D87ED /* Frameworks */ = { + E2570FC825B1AC550055B23B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CE281520762D69A9E98D19CF /* Pods_MonsterCardsTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7249925005E8A007D87ED /* Frameworks */ = { + E2570FD325B1AC550055B23B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1D2A61B332F293AB365B59E7 /* Pods_MonsterCards_MonsterCardsUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 609B2034EDEFF32DFBB7EA4C /* Frameworks */ = { + E2570FAC25B1AC520055B23B = { isa = PBXGroup; children = ( - FA8D56491D6CAB92316D2C1B /* Pods_MonsterCards.framework */, - 89F0D2EC2EC3C99EFD9A6949 /* Pods_MonsterCards_MonsterCardsUITests.framework */, - A9F017069E22ED575758F9E2 /* Pods_MonsterCardsTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 6A84BC38693A798A444629A6 /* Pods */ = { - isa = PBXGroup; - children = ( - A7E1FCC69D4538591C4D289B /* Pods-MonsterCards.debug.xcconfig */, - D079B8CF0ADA838AAA0A13EA /* Pods-MonsterCards.release.xcconfig */, - E265EE24B2C8E81E1B559306 /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */, - 6E60C8124CB33D697F6D0390 /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */, - 1A3B9A106B1FD3BB7C0750DF /* Pods-MonsterCardsTests.debug.xcconfig */, - 598715810FF9D9DA2A1E91C6 /* Pods-MonsterCardsTests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - E20D032525031BA700FB6E43 /* Views */ = { - isa = PBXGroup; - children = ( - E2D3E3B12508C2FE0052A8EC /* FormFields */, - E20D032C25031BEF00FB6E43 /* CollectionsViewController.h */, - E20D032D25031BEF00FB6E43 /* CollectionsViewController.m */, - E20D032F25031BFD00FB6E43 /* DashboardViewController.h */, - E20D033025031BFD00FB6E43 /* DashboardViewController.m */, - E2D3E3AE250827110052A8EC /* EditMonsterViewController.h */, - E2D3E3AF250827110052A8EC /* EditMonsterViewController.m */, - E20D032925031BE500FB6E43 /* LibraryViewController.h */, - E20D032A25031BE500FB6E43 /* LibraryViewController.m */, - E20D032625031BDA00FB6E43 /* MonsterViewController.h */, - E20D032725031BDA00FB6E43 /* MonsterViewController.m */, - E20D032225031B9D00FB6E43 /* SearchViewController.h */, - E20D032325031B9D00FB6E43 /* SearchViewController.m */, - ); - path = Views; - sourceTree = ""; - }; - E20D033225034C0700FB6E43 /* Models */ = { - isa = PBXGroup; - children = ( - E25BD60225036CF0007B04EF /* Ability.h */, - E25BD60325036CF0007B04EF /* Ability.m */, - E25BD60525036CFA007B04EF /* Action.h */, - E25BD60625036CFA007B04EF /* Action.m */, - E25BD5FC25036A76007B04EF /* DamageType.h */, - E25BD5FD25036A76007B04EF /* DamageType.m */, - E25BD5FF25036BF8007B04EF /* Language.h */, - E25BD60025036BF8007B04EF /* Language.m */, - E25BD5F3250352C4007B04EF /* Monster.h */, - E25BD5F4250352C4007B04EF /* Monster.m */, - E25BD5F6250368A8007B04EF /* SavingThrow.h */, - E25BD5F7250368A8007B04EF /* SavingThrow.m */, - E25BD5F9250369D7007B04EF /* Skill.h */, - E25BD5FA250369D7007B04EF /* Skill.m */, - ); - path = Models; - sourceTree = ""; - }; - E20D033325034C0C00FB6E43 /* Helpers */ = { - isa = PBXGroup; - children = ( - E2532E8725038DE100CA4CBA /* StringHelper.h */, - E2532E8825038DE100CA4CBA /* StringHelper.m */, - E26A73552511BA1900C5677E /* HTMLHelper.h */, - E26A73562511BA1900C5677E /* HTMLHelper.m */, - E22F837A2511D14E0072105C /* JSONHelper.h */, - E22F837B2511D14E0072105C /* JSONHelper.m */, - ); - path = Helpers; - sourceTree = ""; - }; - E22F837D2511E8350072105C /* Helpers */ = { - isa = PBXGroup; - children = ( - E22F837E2511E8500072105C /* JSONHelperTests.m */, - ); - path = Helpers; - sourceTree = ""; - }; - E2592B8B250D6B6000906A40 /* Views */ = { - isa = PBXGroup; - children = ( - E2592B8C250D6B8100906A40 /* EditMonsterViewControllerTests.m */, - ); - path = Views; - sourceTree = ""; - }; - E2D3E3B12508C2FE0052A8EC /* FormFields */ = { - isa = PBXGroup; - children = ( - E2591EB62509DD4900B396FD /* MCFormFieldDelegate.h */, - E288744E25148BAD005CA948 /* MCFormFieldConstants.h */, - E288744925148BA0005CA948 /* MCFormFieldConstants.m */, - E2E90B0325201785005241C8 /* MCChoice.h */, - E2E90B0425201785005241C8 /* MCChoice.m */, - E2805512251E03BE00C87527 /* MCBooleanFieldTableViewCell.h */, - E2805513251E03BE00C87527 /* MCBooleanFieldTableViewCell.m */, - E20C315225146708003AB1AA /* MCIntegerFieldTableViewCell.h */, - E20C315325146708003AB1AA /* MCIntegerFieldTableViewCell.m */, - E2E90B152520667E005241C8 /* MCRadioFieldTableViewCell.h */, - E2E90B162520667E005241C8 /* MCRadioFieldTableViewCell.m */, - E2E90AFD252015B3005241C8 /* MCSelectFieldTableViewCell.h */, - E2E90AFE252015B3005241C8 /* MCSelectFieldTableViewCell.m */, - E2D3E3B22508C3360052A8EC /* MCShortStringFieldTableViewCell.h */, - E2D3E3B32508C3360052A8EC /* MCShortStringFieldTableViewCell.m */, - ); - path = FormFields; - sourceTree = ""; - }; - E2F7246725005E89007D87ED = { - isa = PBXGroup; - children = ( - E2F7247225005E89007D87ED /* MonsterCards */, - E2F7249425005E8A007D87ED /* MonsterCardsTests */, - E2F7249F25005E8A007D87ED /* MonsterCardsUITests */, - E2F7247125005E89007D87ED /* Products */, - 6A84BC38693A798A444629A6 /* Pods */, - 609B2034EDEFF32DFBB7EA4C /* Frameworks */, + E2570FB725B1AC520055B23B /* MonsterCards */, + E2570FCE25B1AC550055B23B /* MonsterCardsTests */, + E2570FD925B1AC550055B23B /* MonsterCardsUITests */, + E2570FB625B1AC520055B23B /* Products */, ); sourceTree = ""; }; - E2F7247125005E89007D87ED /* Products */ = { + E2570FB625B1AC520055B23B /* Products */ = { isa = PBXGroup; children = ( - E2F7247025005E89007D87ED /* Monster Cards.app */, - E2F7249125005E8A007D87ED /* MonsterCardsTests.xctest */, - E2F7249C25005E8A007D87ED /* MonsterCardsUITests.xctest */, + E2570FB525B1AC520055B23B /* MonsterCards.app */, + E2570FCB25B1AC550055B23B /* MonsterCardsTests.xctest */, + E2570FD625B1AC550055B23B /* MonsterCardsUITests.xctest */, ); name = Products; sourceTree = ""; }; - E2F7247225005E89007D87ED /* MonsterCards */ = { + E2570FB725B1AC520055B23B /* MonsterCards */ = { isa = PBXGroup; children = ( - E20D033325034C0C00FB6E43 /* Helpers */, - E20D033225034C0700FB6E43 /* Models */, - E20D032525031BA700FB6E43 /* Views */, - E2F7247325005E89007D87ED /* AppDelegate.h */, - E2F7247425005E89007D87ED /* AppDelegate.m */, - E2F7247625005E89007D87ED /* SceneDelegate.h */, - E2F7247725005E89007D87ED /* SceneDelegate.m */, - E278E21A250DFFCA00D3EC0E /* Images.xcassets */, - E2F7247F25005E89007D87ED /* Main.storyboard */, - E2F7248525005E8A007D87ED /* Assets.xcassets */, - E2F7248725005E8A007D87ED /* LaunchScreen.storyboard */, - E2F7248A25005E8A007D87ED /* Info.plist */, - E2F7248B25005E8A007D87ED /* main.m */, - E2F7248225005E89007D87ED /* MonsterCards.xcdatamodeld */, + E2570FB825B1AC520055B23B /* MonsterCardsApp.swift */, + E2D473FB25B5328800CB36D7 /* Helpers */, + E257101225B1B2790055B23B /* Models */, + E2570FEB25B1ADA90055B23B /* Views */, + E2570FBC25B1AC550055B23B /* Assets.xcassets */, + E2570FC125B1AC550055B23B /* Persistence.swift */, + E2570FC625B1AC550055B23B /* Info.plist */, + E2570FC325B1AC550055B23B /* MonsterCards.xcdatamodeld */, + E2570FBE25B1AC550055B23B /* Preview Content */, ); path = MonsterCards; sourceTree = ""; }; - E2F7249425005E8A007D87ED /* MonsterCardsTests */ = { + E2570FBE25B1AC550055B23B /* Preview Content */ = { isa = PBXGroup; children = ( - E22F837D2511E8350072105C /* Helpers */, - E2FD91E225047C1D00D5E935 /* Models */, - E2592B8B250D6B6000906A40 /* Views */, - E2F7249525005E8A007D87ED /* MonsterCardsTests.m */, - E2F7249725005E8A007D87ED /* Info.plist */, + E2570FBF25B1AC550055B23B /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + E2570FCE25B1AC550055B23B /* MonsterCardsTests */ = { + isa = PBXGroup; + children = ( + E2570FCF25B1AC550055B23B /* MonsterCardsTests.swift */, + E2570FD125B1AC550055B23B /* Info.plist */, ); path = MonsterCardsTests; sourceTree = ""; }; - E2F7249F25005E8A007D87ED /* MonsterCardsUITests */ = { + E2570FD925B1AC550055B23B /* MonsterCardsUITests */ = { isa = PBXGroup; children = ( - E2F724A025005E8A007D87ED /* MonsterCardsUITests.m */, - E2F724A225005E8A007D87ED /* Info.plist */, + E2570FDA25B1AC550055B23B /* MonsterCardsUITests.swift */, + E2570FDC25B1AC550055B23B /* Info.plist */, ); path = MonsterCardsUITests; sourceTree = ""; }; - E2FD91E225047C1D00D5E935 /* Models */ = { + E2570FEB25B1ADA90055B23B /* Views */ = { isa = PBXGroup; children = ( - E2FD91E325047C4400D5E935 /* AbilityTests.m */, - E2FD91E5250481F300D5E935 /* ActionTests.m */, - E2FD91E72504832A00D5E935 /* DamageTypeTests.m */, - E2FD91E9250493C000D5E935 /* LanguageTests.m */, - E2FD91EB250496B000D5E935 /* SavingThrowTests.m */, - E2ECA8F22504AC3300C1FFA5 /* SkillTests.m */, - E2ECA8F42504BAAD00C1FFA5 /* MonsterTests.m */, + E2570FBA25B1AC520055B23B /* ContentView.swift */, + E2570FEF25B1ADC10055B23B /* Search.swift */, + E2570FF425B1ADEB0055B23B /* Dashboard.swift */, + E2570FF925B1AE020055B23B /* Collections.swift */, + E2570FFE25B1AE180055B23B /* Library.swift */, + E257100325B1AF4A0055B23B /* SearchBar.swift */, + E257100825B1B2470055B23B /* MonsterDetail.swift */, + E2B5285825B3028700AAA69E /* EditMonster.swift */, + E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */, + E2BD702B25B3A8D70058ED69 /* MCTextField.swift */, + E2BD703025B3BBB90058ED69 /* MCStepperField.swift */, + E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */, + ); + path = Views; + sourceTree = ""; + }; + E257101225B1B2790055B23B /* Models */ = { + isa = PBXGroup; + children = ( + E2182E6225B22F8A00DFAEF8 /* Monster+CoreDataClass.swift */, + E210B82F25B426570083EAC5 /* ProficiencyType.swift */, + E210B83425B428A30083EAC5 /* AdvantageType.swift */, ); path = Models; sourceTree = ""; }; + E2D473FB25B5328800CB36D7 /* Helpers */ = { + isa = PBXGroup; + children = ( + E2D473FC25B532C900CB36D7 /* Color+Hex.swift */, + ); + path = Helpers; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - E2F7246F25005E89007D87ED /* MonsterCards */ = { + E2570FB425B1AC520055B23B /* MonsterCards */ = { isa = PBXNativeTarget; - buildConfigurationList = E2F724A525005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCards" */; + buildConfigurationList = E2570FDF25B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCards" */; buildPhases = ( - AF1B6FE4523297C87023B0DF /* [CP] Check Pods Manifest.lock */, - E2F7246C25005E89007D87ED /* Sources */, - E2F7246D25005E89007D87ED /* Frameworks */, - E2F7246E25005E89007D87ED /* Resources */, + E2570FB125B1AC520055B23B /* Sources */, + E2570FB225B1AC520055B23B /* Frameworks */, + E2570FB325B1AC520055B23B /* Resources */, ); buildRules = ( ); @@ -397,72 +222,68 @@ ); name = MonsterCards; productName = MonsterCards; - productReference = E2F7247025005E89007D87ED /* Monster Cards.app */; + productReference = E2570FB525B1AC520055B23B /* MonsterCards.app */; productType = "com.apple.product-type.application"; }; - E2F7249025005E8A007D87ED /* MonsterCardsTests */ = { + E2570FCA25B1AC550055B23B /* MonsterCardsTests */ = { isa = PBXNativeTarget; - buildConfigurationList = E2F724A825005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCardsTests" */; + buildConfigurationList = E2570FE225B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCardsTests" */; buildPhases = ( - D9D7576D397FF8A326CDF668 /* [CP] Check Pods Manifest.lock */, - E2F7248D25005E8A007D87ED /* Sources */, - E2F7248E25005E8A007D87ED /* Frameworks */, - E2F7248F25005E8A007D87ED /* Resources */, - B173B419A3492DBA8FAF736D /* [CP] Embed Pods Frameworks */, + E2570FC725B1AC550055B23B /* Sources */, + E2570FC825B1AC550055B23B /* Frameworks */, + E2570FC925B1AC550055B23B /* Resources */, ); buildRules = ( ); dependencies = ( - E2F7249325005E8A007D87ED /* PBXTargetDependency */, + E2570FCD25B1AC550055B23B /* PBXTargetDependency */, ); name = MonsterCardsTests; productName = MonsterCardsTests; - productReference = E2F7249125005E8A007D87ED /* MonsterCardsTests.xctest */; + productReference = E2570FCB25B1AC550055B23B /* MonsterCardsTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - E2F7249B25005E8A007D87ED /* MonsterCardsUITests */ = { + E2570FD525B1AC550055B23B /* MonsterCardsUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = E2F724AB25005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCardsUITests" */; + buildConfigurationList = E2570FE525B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCardsUITests" */; buildPhases = ( - 5A9D2F6B7303F47844E1DAB9 /* [CP] Check Pods Manifest.lock */, - E2F7249825005E8A007D87ED /* Sources */, - E2F7249925005E8A007D87ED /* Frameworks */, - E2F7249A25005E8A007D87ED /* Resources */, - A89C1C3958588F1AC6C1F437 /* [CP] Embed Pods Frameworks */, + E2570FD225B1AC550055B23B /* Sources */, + E2570FD325B1AC550055B23B /* Frameworks */, + E2570FD425B1AC550055B23B /* Resources */, ); buildRules = ( ); dependencies = ( - E2F7249E25005E8A007D87ED /* PBXTargetDependency */, + E2570FD825B1AC550055B23B /* PBXTargetDependency */, ); name = MonsterCardsUITests; productName = MonsterCardsUITests; - productReference = E2F7249C25005E8A007D87ED /* MonsterCardsUITests.xctest */; + productReference = E2570FD625B1AC550055B23B /* MonsterCardsUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - E2F7246825005E89007D87ED /* Project object */ = { + E2570FAD25B1AC520055B23B /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 1200; LastUpgradeCheck = 1200; - ORGANIZATIONNAME = "Tom Hicks"; TargetAttributes = { - E2F7246F25005E89007D87ED = { - CreatedOnToolsVersion = 11.7; + E2570FB425B1AC520055B23B = { + CreatedOnToolsVersion = 12.0.1; }; - E2F7249025005E8A007D87ED = { - CreatedOnToolsVersion = 11.7; - TestTargetID = E2F7246F25005E89007D87ED; + E2570FCA25B1AC550055B23B = { + CreatedOnToolsVersion = 12.0.1; + TestTargetID = E2570FB425B1AC520055B23B; }; - E2F7249B25005E8A007D87ED = { - CreatedOnToolsVersion = 11.7; - TestTargetID = E2F7246F25005E89007D87ED; + E2570FD525B1AC550055B23B = { + CreatedOnToolsVersion = 12.0.1; + TestTargetID = E2570FB425B1AC520055B23B; }; }; }; - buildConfigurationList = E2F7246B25005E89007D87ED /* Build configuration list for PBXProject "MonsterCards" */; + buildConfigurationList = E2570FB025B1AC520055B23B /* Build configuration list for PBXProject "MonsterCards" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; @@ -470,38 +291,36 @@ en, Base, ); - mainGroup = E2F7246725005E89007D87ED; - productRefGroup = E2F7247125005E89007D87ED /* Products */; + mainGroup = E2570FAC25B1AC520055B23B; + productRefGroup = E2570FB625B1AC520055B23B /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - E2F7246F25005E89007D87ED /* MonsterCards */, - E2F7249025005E8A007D87ED /* MonsterCardsTests */, - E2F7249B25005E8A007D87ED /* MonsterCardsUITests */, + E2570FB425B1AC520055B23B /* MonsterCards */, + E2570FCA25B1AC550055B23B /* MonsterCardsTests */, + E2570FD525B1AC550055B23B /* MonsterCardsUITests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - E2F7246E25005E89007D87ED /* Resources */ = { + E2570FB325B1AC520055B23B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E2F7248925005E8A007D87ED /* LaunchScreen.storyboard in Resources */, - E278E21B250DFFCA00D3EC0E /* Images.xcassets in Resources */, - E2F7248625005E8A007D87ED /* Assets.xcassets in Resources */, - E2F7248125005E89007D87ED /* Main.storyboard in Resources */, + E2570FC025B1AC550055B23B /* Preview Assets.xcassets in Resources */, + E2570FBD25B1AC550055B23B /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7248F25005E8A007D87ED /* Resources */ = { + E2570FC925B1AC550055B23B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7249A25005E8A007D87ED /* Resources */ = { + E2570FD425B1AC550055B23B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -510,206 +329,66 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 5A9D2F6B7303F47844E1DAB9 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MonsterCards-MonsterCardsUITests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - A89C1C3958588F1AC6C1F437 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - AF1B6FE4523297C87023B0DF /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MonsterCards-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - B173B419A3492DBA8FAF736D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D9D7576D397FF8A326CDF668 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MonsterCardsTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ - E2F7246C25005E89007D87ED /* Sources */ = { + E2570FB125B1AC520055B23B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E2532E8925038DE100CA4CBA /* StringHelper.m in Sources */, - E20D032825031BDA00FB6E43 /* MonsterViewController.m in Sources */, - E25BD60725036CFA007B04EF /* Action.m in Sources */, - E2D3E3B0250827110052A8EC /* EditMonsterViewController.m in Sources */, - E288744A25148BA0005CA948 /* MCFormFieldConstants.m in Sources */, - E2F7247525005E89007D87ED /* AppDelegate.m in Sources */, - E2D3E3B42508C3360052A8EC /* MCShortStringFieldTableViewCell.m in Sources */, - E20D032B25031BE500FB6E43 /* LibraryViewController.m in Sources */, - E20D033125031BFD00FB6E43 /* DashboardViewController.m in Sources */, - E25BD5FE25036A76007B04EF /* DamageType.m in Sources */, - E20C315425146708003AB1AA /* MCIntegerFieldTableViewCell.m in Sources */, - E2F7248425005E89007D87ED /* MonsterCards.xcdatamodeld in Sources */, - E25BD60425036CF0007B04EF /* Ability.m in Sources */, - E20D032E25031BEF00FB6E43 /* CollectionsViewController.m in Sources */, - E26A73572511BA1900C5677E /* HTMLHelper.m in Sources */, - E2805514251E03BE00C87527 /* MCBooleanFieldTableViewCell.m in Sources */, - E25BD5F5250352C4007B04EF /* Monster.m in Sources */, - E25BD5F8250368A8007B04EF /* SavingThrow.m in Sources */, - E2F7248C25005E8A007D87ED /* main.m in Sources */, - E25BD5FB250369D7007B04EF /* Skill.m in Sources */, - E2E90B0525201785005241C8 /* MCChoice.m in Sources */, - E2F7247825005E89007D87ED /* SceneDelegate.m in Sources */, - E2E90B172520667F005241C8 /* MCRadioFieldTableViewCell.m in Sources */, - E20D032425031B9D00FB6E43 /* SearchViewController.m in Sources */, - E22F837C2511D14E0072105C /* JSONHelper.m in Sources */, - E25BD60125036BF8007B04EF /* Language.m in Sources */, - E2E90AFF252015B3005241C8 /* MCSelectFieldTableViewCell.m in Sources */, + E2570FC225B1AC550055B23B /* Persistence.swift in Sources */, + E2570FBB25B1AC520055B23B /* ContentView.swift in Sources */, + E2570FC525B1AC550055B23B /* MonsterCards.xcdatamodeld in Sources */, + E2182E6425B22F8A00DFAEF8 /* Monster+CoreDataClass.swift in Sources */, + E210B83A25B42D980083EAC5 /* MCProficiencyPicker.swift in Sources */, + E2570FF025B1ADC10055B23B /* Search.swift in Sources */, + E257100925B1B2480055B23B /* MonsterDetail.swift in Sources */, + E2D473FD25B532C900CB36D7 /* Color+Hex.swift in Sources */, + E2B5285925B3028700AAA69E /* EditMonster.swift in Sources */, + E2570FF525B1ADEB0055B23B /* Dashboard.swift in Sources */, + E257100425B1AF4A0055B23B /* SearchBar.swift in Sources */, + E2570FFF25B1AE180055B23B /* Library.swift in Sources */, + E2BD703125B3BBB90058ED69 /* MCStepperField.swift in Sources */, + E210B83525B428A30083EAC5 /* AdvantageType.swift in Sources */, + E2570FFA25B1AE020055B23B /* Collections.swift in Sources */, + E2570FB925B1AC520055B23B /* MonsterCardsApp.swift in Sources */, + E210B83025B426570083EAC5 /* ProficiencyType.swift in Sources */, + E2BD702C25B3A8D70058ED69 /* MCTextField.swift in Sources */, + E210B83F25B42DAB0083EAC5 /* MCAdvantagePicker.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7248D25005E8A007D87ED /* Sources */ = { + E2570FC725B1AC550055B23B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E2FD91EA250493C000D5E935 /* LanguageTests.m in Sources */, - E2FD91E82504832A00D5E935 /* DamageTypeTests.m in Sources */, - E2592B8D250D6B8100906A40 /* EditMonsterViewControllerTests.m in Sources */, - E2FD91EC250496B000D5E935 /* SavingThrowTests.m in Sources */, - E2FD91E6250481F300D5E935 /* ActionTests.m in Sources */, - E2ECA8F52504BAAD00C1FFA5 /* MonsterTests.m in Sources */, - E2ECA8F32504AC3300C1FFA5 /* SkillTests.m in Sources */, - E2FD91E425047C4400D5E935 /* AbilityTests.m in Sources */, - E2E25805250CC3A7002E7308 /* MonsterCards.xcdatamodeld in Sources */, - E2F7249625005E8A007D87ED /* MonsterCardsTests.m in Sources */, - E22F837F2511E8500072105C /* JSONHelperTests.m in Sources */, + E2570FD025B1AC550055B23B /* MonsterCardsTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2F7249825005E8A007D87ED /* Sources */ = { + E2570FD225B1AC550055B23B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E2F724A125005E8A007D87ED /* MonsterCardsUITests.m in Sources */, + E2570FDB25B1AC550055B23B /* MonsterCardsUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - E2F7249325005E8A007D87ED /* PBXTargetDependency */ = { + E2570FCD25B1AC550055B23B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E2F7246F25005E89007D87ED /* MonsterCards */; - targetProxy = E2F7249225005E8A007D87ED /* PBXContainerItemProxy */; + target = E2570FB425B1AC520055B23B /* MonsterCards */; + targetProxy = E2570FCC25B1AC550055B23B /* PBXContainerItemProxy */; }; - E2F7249E25005E8A007D87ED /* PBXTargetDependency */ = { + E2570FD825B1AC550055B23B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E2F7246F25005E89007D87ED /* MonsterCards */; - targetProxy = E2F7249D25005E8A007D87ED /* PBXContainerItemProxy */; + target = E2570FB425B1AC520055B23B /* MonsterCards */; + targetProxy = E2570FD725B1AC550055B23B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ -/* Begin PBXVariantGroup section */ - E2F7247F25005E89007D87ED /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - E2F7248025005E89007D87ED /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - E2F7248725005E8A007D87ED /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - E2F7248825005E8A007D87ED /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ - E2F724A325005E8A007D87ED /* Debug */ = { + E2570FDD25B1AC550055B23B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -760,15 +439,17 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.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"; }; name = Debug; }; - E2F724A425005E8A007D87ED /* Release */ = { + E2570FDE25B1AC550055B23B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -813,63 +494,69 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; VALIDATE_PRODUCT = YES; }; name = Release; }; - E2F724A625005E8A007D87ED /* Debug */ = { + E2570FE025B1AC550055B23B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A7E1FCC69D4538591C4D289B /* Pods-MonsterCards.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"MonsterCards/Preview Content\""; DEVELOPMENT_TEAM = J793L9LQJ2; - HEADER_SEARCH_PATHS = "$(SRCROOT)/Pods/**"; + ENABLE_PREVIEWS = YES; INFOPLIST_FILE = MonsterCards/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCards; - PRODUCT_NAME = "Monster Cards"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - E2F724A725005E8A007D87ED /* Release */ = { + E2570FE125B1AC550055B23B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D079B8CF0ADA838AAA0A13EA /* Pods-MonsterCards.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"MonsterCards/Preview Content\""; DEVELOPMENT_TEAM = J793L9LQJ2; - HEADER_SEARCH_PATHS = "$(SRCROOT)/Pods/**"; + ENABLE_PREVIEWS = YES; INFOPLIST_FILE = MonsterCards/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCards; - PRODUCT_NAME = "Monster Cards"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; - E2F724A925005E8A007D87ED /* Debug */ = { + E2570FE325B1AC550055B23B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1A3B9A106B1FD3BB7C0750DF /* Pods-MonsterCardsTests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = J793L9LQJ2; INFOPLIST_FILE = MonsterCardsTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -877,20 +564,21 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCardsTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Monster Cards.app/Monster Cards"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MonsterCards.app/MonsterCards"; }; name = Debug; }; - E2F724AA25005E8A007D87ED /* Release */ = { + E2570FE425B1AC550055B23B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 598715810FF9D9DA2A1E91C6 /* Pods-MonsterCardsTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = J793L9LQJ2; INFOPLIST_FILE = MonsterCardsTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -898,15 +586,16 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCardsTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Monster Cards.app/Monster Cards"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MonsterCards.app/MonsterCards"; }; name = Release; }; - E2F724AC25005E8A007D87ED /* Debug */ = { + E2570FE625B1AC550055B23B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E265EE24B2C8E81E1B559306 /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = J793L9LQJ2; INFOPLIST_FILE = MonsterCardsUITests/Info.plist; @@ -917,15 +606,16 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCardsUITests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = MonsterCards; }; name = Debug; }; - E2F724AD25005E8A007D87ED /* Release */ = { + E2570FE725B1AC550055B23B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6E60C8124CB33D697F6D0390 /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = J793L9LQJ2; INFOPLIST_FILE = MonsterCardsUITests/Info.plist; @@ -936,6 +626,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.majinnaibu.monstercards.MonsterCardsUITests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = MonsterCards; }; @@ -944,38 +635,38 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - E2F7246B25005E89007D87ED /* Build configuration list for PBXProject "MonsterCards" */ = { + E2570FB025B1AC520055B23B /* Build configuration list for PBXProject "MonsterCards" */ = { isa = XCConfigurationList; buildConfigurations = ( - E2F724A325005E8A007D87ED /* Debug */, - E2F724A425005E8A007D87ED /* Release */, + E2570FDD25B1AC550055B23B /* Debug */, + E2570FDE25B1AC550055B23B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E2F724A525005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCards" */ = { + E2570FDF25B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCards" */ = { isa = XCConfigurationList; buildConfigurations = ( - E2F724A625005E8A007D87ED /* Debug */, - E2F724A725005E8A007D87ED /* Release */, + E2570FE025B1AC550055B23B /* Debug */, + E2570FE125B1AC550055B23B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E2F724A825005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCardsTests" */ = { + E2570FE225B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCardsTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - E2F724A925005E8A007D87ED /* Debug */, - E2F724AA25005E8A007D87ED /* Release */, + E2570FE325B1AC550055B23B /* Debug */, + E2570FE425B1AC550055B23B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E2F724AB25005E8A007D87ED /* Build configuration list for PBXNativeTarget "MonsterCardsUITests" */ = { + E2570FE525B1AC550055B23B /* Build configuration list for PBXNativeTarget "MonsterCardsUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - E2F724AC25005E8A007D87ED /* Debug */, - E2F724AD25005E8A007D87ED /* Release */, + E2570FE625B1AC550055B23B /* Debug */, + E2570FE725B1AC550055B23B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -983,17 +674,17 @@ /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ - E2F7248225005E89007D87ED /* MonsterCards.xcdatamodeld */ = { + E2570FC325B1AC550055B23B /* MonsterCards.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - E2F7248325005E89007D87ED /* MonsterCards.xcdatamodel */, + E2570FC425B1AC550055B23B /* MonsterCards.xcdatamodel */, ); - currentVersion = E2F7248325005E89007D87ED /* MonsterCards.xcdatamodel */; + currentVersion = E2570FC425B1AC550055B23B /* MonsterCards.xcdatamodel */; path = MonsterCards.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; /* End XCVersionGroup section */ }; - rootObject = E2F7246825005E89007D87ED /* Project object */; + rootObject = E2570FAD25B1AC520055B23B /* Project object */; } diff --git a/MonsterCards.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/MonsterCards.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 400440a..919434a 100644 --- a/MonsterCards.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/MonsterCards.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/MonsterCards.xcodeproj/xcshareddata/xcschemes/MonsterCards.xcscheme b/MonsterCards.xcodeproj/xcshareddata/xcschemes/MonsterCards.xcscheme deleted file mode 100644 index 6c2492c..0000000 --- a/MonsterCards.xcodeproj/xcshareddata/xcschemes/MonsterCards.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MonsterCards.xcworkspace/contents.xcworkspacedata b/MonsterCards.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 0b75773..0000000 --- a/MonsterCards.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/MonsterCards.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MonsterCards.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/MonsterCards.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/MonsterCards/AppDelegate.h b/MonsterCards/AppDelegate.h deleted file mode 100644 index 5518be8..0000000 --- a/MonsterCards/AppDelegate.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// AppDelegate.h -// MonsterCards -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import - -@interface AppDelegate : UIResponder - -@property (readonly, strong) NSPersistentCloudKitContainer *persistentContainer; - -- (void)saveContext; - - -@end - diff --git a/MonsterCards/AppDelegate.m b/MonsterCards/AppDelegate.m deleted file mode 100644 index 2a03e31..0000000 --- a/MonsterCards/AppDelegate.m +++ /dev/null @@ -1,86 +0,0 @@ -// -// AppDelegate.m -// MonsterCards -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - return YES; -} - - -#pragma mark - UISceneSession lifecycle - - -- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; -} - - -- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. -} - - -#pragma mark - Core Data stack - -@synthesize persistentContainer = _persistentContainer; - -- (NSPersistentCloudKitContainer *)persistentContainer { - // The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it. - @synchronized (self) { - if (_persistentContainer == nil) { - _persistentContainer = [[NSPersistentCloudKitContainer alloc] initWithName:@"MonsterCards"]; - [_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) { - if (error != nil) { - // Replace this implementation with code to handle the error appropriately. - // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - - /* - Typical reasons for an error here include: - * The parent directory does not exist, cannot be created, or disallows writing. - * The persistent store is not accessible, due to permissions or data protection when the device is locked. - * The device is out of space. - * The store could not be migrated to the current model version. - Check the error message to determine what the actual problem was. - */ - NSLog(@"Unresolved error %@, %@", error, error.userInfo); - abort(); - } - }]; - } - } - - return _persistentContainer; -} - -#pragma mark - Core Data Saving support - -- (void)saveContext { - NSManagedObjectContext *context = self.persistentContainer.viewContext; - NSError *error = nil; - if ([context hasChanges] && ![context save:&error]) { - // Replace this implementation with code to handle the error appropriately. - // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - NSLog(@"Unresolved error %@, %@", error, error.userInfo); - abort(); - } -} - -@end diff --git a/MonsterCards/Assets.xcassets/AccentColor.colorset/Contents.json b/MonsterCards/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/MonsterCards/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonsterCards/Assets.xcassets/section-divider.imageset/Contents.json b/MonsterCards/Assets.xcassets/section-divider.imageset/Contents.json new file mode 100644 index 0000000..0db353e --- /dev/null +++ b/MonsterCards/Assets.xcassets/section-divider.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "section-divider.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "section-divider@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "section-divider@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonsterCards/Assets/section-divider.png b/MonsterCards/Assets.xcassets/section-divider.imageset/section-divider.png similarity index 100% rename from MonsterCards/Assets/section-divider.png rename to MonsterCards/Assets.xcassets/section-divider.imageset/section-divider.png diff --git a/MonsterCards/Assets/section-divider@2x.png b/MonsterCards/Assets.xcassets/section-divider.imageset/section-divider@2x.png similarity index 100% rename from MonsterCards/Assets/section-divider@2x.png rename to MonsterCards/Assets.xcassets/section-divider.imageset/section-divider@2x.png diff --git a/MonsterCards/Assets/section-divider@3x.png b/MonsterCards/Assets.xcassets/section-divider.imageset/section-divider@3x.png similarity index 100% rename from MonsterCards/Assets/section-divider@3x.png rename to MonsterCards/Assets.xcassets/section-divider.imageset/section-divider@3x.png diff --git a/MonsterCards/Base.lproj/LaunchScreen.storyboard b/MonsterCards/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/MonsterCards/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MonsterCards/Base.lproj/Main.storyboard b/MonsterCards/Base.lproj/Main.storyboard deleted file mode 100644 index 6eada40..0000000 --- a/MonsterCards/Base.lproj/Main.storyboard +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MonsterCards/Helpers/Color+Hex.swift b/MonsterCards/Helpers/Color+Hex.swift new file mode 100644 index 0000000..1b84d5e --- /dev/null +++ b/MonsterCards/Helpers/Color+Hex.swift @@ -0,0 +1,20 @@ +// +// Color+Hex.swift +// MonsterCards +// +// Created by Tom Hicks on 1/17/21. +// + +import Foundation +import SwiftUI + +extension Color { + init(hex: UInt, alpha: Double = 1) { + self.init( + .sRGB, + red: Double((hex >> 16) & 0xff) / 255, + green: Double((hex >> 8) & 0xff) / 255, + blue: Double((hex >> 0) & 0xff) / 255, + opacity: alpha) + } +} diff --git a/MonsterCards/Helpers/HTMLHelper.h b/MonsterCards/Helpers/HTMLHelper.h deleted file mode 100644 index 48f309d..0000000 --- a/MonsterCards/Helpers/HTMLHelper.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// HtmlHelper.h -// MonsterCards -// -// Created by Tom Hicks on 9/12/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface HTMLHelper : NSObject - -+(NSAttributedString*)attributedStringFromHTML:(NSString*)html; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Helpers/HTMLHelper.m b/MonsterCards/Helpers/HTMLHelper.m deleted file mode 100644 index 1f7c208..0000000 --- a/MonsterCards/Helpers/HTMLHelper.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// HtmlHelper.m -// MonsterCards -// -// Created by Tom Hicks on 9/12/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "HTMLHelper.h" -@import UIKit; - -@implementation HTMLHelper - -+ (NSAttributedString*)attributedStringFromHTML:(NSString *)htmlString { - NSData *data = [htmlString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; - NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, - NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}; - return [[NSAttributedString alloc] initWithData:data - options:options - documentAttributes:nil - error:nil]; -} - -@end diff --git a/MonsterCards/Helpers/JSONHelper.h b/MonsterCards/Helpers/JSONHelper.h deleted file mode 100644 index 0ee4b67..0000000 --- a/MonsterCards/Helpers/JSONHelper.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// JSONHelper.h -// MonsterCards -// -// Created by Tom Hicks on 9/15/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface JSONHelper : NSObject - -+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSString* _Nullable)defaultValue; -+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSNumber* _Nullable)defaultValue; -+(int)readIntFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(int)readIntFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(int)defaultValue; -+(BOOL)readBoolFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(BOOL)readBoolFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(BOOL)defaultValue; -+(NSDictionary*)readDictionaryFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(NSDictionary*)readDictionaryFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSDictionary* _Nullable)defaultValue; -+(NSArray*)readArrayFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key; -+(NSArray*)readArrayFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSArray* _Nullable)defaultValue; - -+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSString* _Nullable)defaultValue; -+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSNumber* _Nullable)defaultValue; -+(int)readIntFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(int)readIntFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(int)defaultValue; -+(BOOL)readBoolFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(BOOL)readBoolFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(BOOL)defaultValue; -+(NSDictionary*)readDictionaryFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(NSDictionary*)readDictionaryFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSDictionary* _Nullable)defaultValue; -+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index; -+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSArray* _Nullable)defaultValue; - -+(id)parseJSONString:(NSString*)jsonString; -+(NSDictionary*)parseJSONStringAsDictionary:(NSString*)jsonString; -+(NSArray*)parseJSONStringAsArray:(NSString*)jsonString; - -+(id)parseJSONData:(NSData*)jsonData; -+(NSDictionary*)parseJSONDataAsDictionary:(NSData*)jsonData; -+(NSArray*)parseJSONDataAsArray:(NSData*)jsonData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Helpers/JSONHelper.m b/MonsterCards/Helpers/JSONHelper.m deleted file mode 100644 index a30b092..0000000 --- a/MonsterCards/Helpers/JSONHelper.m +++ /dev/null @@ -1,227 +0,0 @@ -// -// JSONHelper.m -// MonsterCards -// -// Created by Tom Hicks on 9/15/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "JSONHelper.h" - -@implementation JSONHelper - -NSString* coerceObjectToString(NSObject *object, NSString *defaultValue) { - if ([object isKindOfClass:[NSString class]]) { - return (NSString*)object; - } - - return defaultValue; -} - -NSNumber* coerceObjectToNumber(NSObject *object, NSNumber *defaultValue) { - if ([object isKindOfClass:[NSNumber class]]) { - return (NSNumber*)object; - } - - return defaultValue; -} - -int coerceObjectToInt(NSObject *object, int defaultValue) { - if ([object isKindOfClass:[NSNumber class]]) { - return [(NSNumber*)object intValue]; - } - - if ([object isKindOfClass:[NSString class]]) { - NSScanner *scanner; - int temp; - scanner = [NSScanner scannerWithString:(NSString*)object]; - if ([scanner scanInt:&temp]) { - return temp; - } - } - - return defaultValue; -} - -BOOL coerceObjectToBool(NSObject *object, BOOL defaultValue) { - if ([object isKindOfClass:[NSNumber class]]) { - return [(NSNumber*)object boolValue]; - } - - return defaultValue; -} - -+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readStringFromDictionary:dictionary forKey:key withDefaultValue:nil]; -} - -+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSString* _Nullable)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - return coerceObjectToString(object, defaultValue); -} - -+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readNumberFromDictionary:dictionary forKey:key withDefaultValue:nil]; -} - -+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSNumber* _Nullable)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - return coerceObjectToNumber(object, defaultValue); -} - -+(int)readIntFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readIntFromDictionary:dictionary forKey:key withDefaultValue:0]; -} - -+(int)readIntFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(int)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - return coerceObjectToInt(object, defaultValue); -} - -+(BOOL)readBoolFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readBoolFromDictionary:dictionary forKey:key withDefaultValue:NO]; -} - -+(BOOL)readBoolFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(BOOL)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - return coerceObjectToBool(object, defaultValue); -} - -+(NSDictionary*)readDictionaryFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readDictionaryFromDictionary:dictionary forKey:key withDefaultValue:nil]; -} - -+(NSDictionary*)readDictionaryFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSDictionary* _Nullable)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - if ([object isKindOfClass:[NSDictionary class]]) { - return (NSDictionary*)object; - } - - return defaultValue; -} - -+(NSArray*)readArrayFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key { - return [JSONHelper readArrayFromDictionary:dictionary forKey:key withDefaultValue:nil]; -} - -+(NSArray*)readArrayFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSArray* _Nullable)defaultValue { - NSObject *object = [dictionary objectForKey:key]; - if ([object isKindOfClass:[NSArray class]]) { - return (NSArray*)object; - } - - return defaultValue; -} - -+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index{ - return [JSONHelper readStringFromArray:array forIndex:index withDefaultValue:nil]; -} - -+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSString* _Nullable)defaultValue { - NSObject *object = [array objectAtIndex:index]; - return coerceObjectToString(object, defaultValue); -} - -+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index { - return [JSONHelper readNumberFromArray:array forIndex:index withDefaultValue:nil]; -} - -+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSNumber* _Nullable)defaultValue { - NSObject *object = [array objectAtIndex:index]; - return coerceObjectToNumber(object, defaultValue); -} - -+(int)readIntFromArray:(NSArray*)array forIndex:(NSUInteger)index { - return [JSONHelper readIntFromArray:array forIndex:index withDefaultValue:0]; -} - -+(int)readIntFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(int)defaultValue { - NSObject *object = [array objectAtIndex:index]; - return coerceObjectToInt(object, defaultValue); -} - -+(BOOL)readBoolFromArray:(NSArray*)array forIndex:(NSUInteger)index { - return [JSONHelper readBoolFromArray:array forIndex:index withDefaultValue:nil]; -} - -+(BOOL)readBoolFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(BOOL)defaultValue { - NSObject *object = [array objectAtIndex:index]; - return coerceObjectToBool(object, defaultValue); -} - -+(NSDictionary*)readDictionaryFromArray:(NSArray*)array forIndex:(NSUInteger)index { - return [JSONHelper readDictionaryFromArray:array forIndex:index withDefaultValue:nil]; -} - -+(NSDictionary*)readDictionaryFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSDictionary* _Nullable)defaultValue { - NSObject *object = [array objectAtIndex:index]; - if ([object isKindOfClass:[NSDictionary class]]) { - return (NSDictionary*)object; - } - - return defaultValue; -} - -+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index { - return [JSONHelper readArrayFromArray:array forIndex:index withDefaultValue:nil]; -} - -+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSArray* _Nullable)defaultValue { - NSObject *object = [array objectAtIndex:index]; - if ([object isKindOfClass:[NSArray class]]) { - return (NSArray*)object; - } - - return defaultValue; -} - -+(id)parseJSONString:(NSString*)jsonString { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - return jsonRoot; -} - -+(NSDictionary*)parseJSONStringAsDictionary:(NSString*)jsonString { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - NSDictionary *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSDictionary class]]) { - return nil; - } else { - return jsonRoot; - } -} - -+(NSArray*)parseJSONStringAsArray:(NSString*)jsonString { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSArray class]]) { - return nil; - } else { - return jsonRoot; - } -} - -+(id)parseJSONData:(NSData*)jsonData { - NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - return jsonRoot; -} - -+(NSDictionary*)parseJSONDataAsDictionary:(NSData*)jsonData { - NSDictionary *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSDictionary class]]) { - return nil; - } else { - return jsonRoot; - } -} - -+(NSArray*)parseJSONDataAsArray:(NSData*)jsonData { - NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSArray class]]) { - return nil; - } else { - return jsonRoot; - } -} - -@end diff --git a/MonsterCards/Helpers/StringHelper.h b/MonsterCards/Helpers/StringHelper.h deleted file mode 100644 index 05e445a..0000000 --- a/MonsterCards/Helpers/StringHelper.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// StringHelper.h -// MonsterCards -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface StringHelper : NSObject - -+(BOOL)isStringNilOrEmpty:(NSString*)theString; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Helpers/StringHelper.m b/MonsterCards/Helpers/StringHelper.m deleted file mode 100644 index 473e2d2..0000000 --- a/MonsterCards/Helpers/StringHelper.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// StringHelper.m -// MonsterCards -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "StringHelper.h" - -@implementation StringHelper - -+(BOOL)isStringNilOrEmpty:(NSString*)theString { - if (nil == theString) { - return YES; - } - - if (theString.length < 1) { - return YES; - } - - return NO; -} - -@end diff --git a/MonsterCards/Info.plist b/MonsterCards/Info.plist index 40dabea..9127556 100644 --- a/MonsterCards/Info.plist +++ b/MonsterCards/Info.plist @@ -25,40 +25,16 @@ UIApplicationSceneManifest UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - + - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main + UIApplicationSupportsIndirectInputEvents + + UILaunchScreen + UIRequiredDeviceCapabilities armv7 - UIStatusBarTintParameters - - UINavigationBar - - Style - UIBarStyleDefault - Translucent - - - UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/MonsterCards/Models/Ability.h b/MonsterCards/Models/Ability.h deleted file mode 100644 index 60f4b6f..0000000 --- a/MonsterCards/Models/Ability.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// Ability.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface Ability : NSObject - -@property NSString* name; -@property NSString* abilityDescription; - --(id)initWithName: (NSString*)name andDescription: (NSString*)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/Ability.m b/MonsterCards/Models/Ability.m deleted file mode 100644 index e6c0909..0000000 --- a/MonsterCards/Models/Ability.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// Ability.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "Ability.h" - -@implementation Ability - --(id)init { - self = [super init]; - - self.name = @""; - self.abilityDescription = @""; - - return self; -} - --(id)initWithName: (NSString*)name andDescription: (NSString*)description { - self = [super init]; - - self.name = name; - self.abilityDescription = description; - - return self; -} - -@end diff --git a/MonsterCards/Models/Action.h b/MonsterCards/Models/Action.h deleted file mode 100644 index 7b76bbc..0000000 --- a/MonsterCards/Models/Action.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// Action.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface Action : NSObject - -@property NSString* name; -@property NSString* actionDescription; - --(id)initWithName: (NSString*)name andDescription: (NSString*)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/Action.m b/MonsterCards/Models/Action.m deleted file mode 100644 index a6cc650..0000000 --- a/MonsterCards/Models/Action.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// Action.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "Action.h" - -@implementation Action - --(id)init { - self = [super init]; - - self.name = @""; - self.actionDescription = @""; - - return self; -} - --(id)initWithName: (NSString*)name andDescription: (NSString*)description { - self = [super init]; - - self.name = name; - self.actionDescription = description; - - return self; -} - -@end diff --git a/MonsterCards/Models/AdvantageType.swift b/MonsterCards/Models/AdvantageType.swift new file mode 100644 index 0000000..35e6497 --- /dev/null +++ b/MonsterCards/Models/AdvantageType.swift @@ -0,0 +1,27 @@ +// +// AdvantageType.swift +// MonsterCards +// +// Created by Tom Hicks on 1/17/21. +// + +import Foundation + +enum AdvantageType: String, CaseIterable, Identifiable { + case none = "none" + case advantage = "advantage" + case disadvantage = "disadvantage" + + var id: AdvantageType { self } + + var displayName: String { + switch self { + case .none: + return "None" + case .advantage: + return "Advantage" + case .disadvantage: + return "Disadvantage" + } + } +} diff --git a/MonsterCards/Models/DamageType.h b/MonsterCards/Models/DamageType.h deleted file mode 100644 index c7dd352..0000000 --- a/MonsterCards/Models/DamageType.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// DamageType.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface DamageType : NSObject - -@property NSString* name; -@property NSString* note; -@property NSString* type; - --(id)initWithName: (NSString*)name note: (NSString*)note andType: (NSString*)type; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/DamageType.m b/MonsterCards/Models/DamageType.m deleted file mode 100644 index a148f4c..0000000 --- a/MonsterCards/Models/DamageType.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// DamageType.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "DamageType.h" - -@implementation DamageType - --(id)init { - self = [super init]; - - self.name = @""; - self.note = @""; - self.type = @""; - - return self; -} - --(id)initWithName: (NSString*)name note: (NSString*)note andType: (NSString*)type{ - self = [super init]; - - self.name = name; - self.note = note; - self.type = type; - - return self; -} - -@end diff --git a/MonsterCards/Models/Language.h b/MonsterCards/Models/Language.h deleted file mode 100644 index fdc6939..0000000 --- a/MonsterCards/Models/Language.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Language.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface Language : NSObject - -@property NSString* name; -@property BOOL speaks; - --(id)initWithName:(NSString*)name - andSpeaks:(BOOL)canSpeak; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/Language.m b/MonsterCards/Models/Language.m deleted file mode 100644 index fdda235..0000000 --- a/MonsterCards/Models/Language.m +++ /dev/null @@ -1,32 +0,0 @@ -// -// Language.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "Language.h" - -@implementation Language - --(id)init { - self = [super init]; - - self.name = @""; - self.speaks = YES; - - return self; -} - --(id)initWithName:(NSString*)name - andSpeaks:(BOOL)canSpeak { - self = [super init]; - - self.name = name; - self.speaks = canSpeak; - - return self; -} - -@end diff --git a/MonsterCards/Models/Monster+CoreDataClass.swift b/MonsterCards/Models/Monster+CoreDataClass.swift new file mode 100644 index 0000000..f7a9233 --- /dev/null +++ b/MonsterCards/Models/Monster+CoreDataClass.swift @@ -0,0 +1,701 @@ +// +// Monster+CoreDataClass.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// +// + +import Foundation +import CoreData + +@objc(Monster) +public class Monster: NSManagedObject { + convenience init(context: NSManagedObjectContext, name: String, size: String, type: String, subtype: String, alignment: String) { + self.init(context:context) + self.name = name; + self.size = size; + self.type = type; + self.subtype = subtype; + self.alignment = alignment; + } + + // hasCustomProficiencyBonus + // telepathy int in json but seems like it should be a bool + + let kBaseArmorClassUnarmored = 10; + let kBaseArmorClassMageArmor = 13; + let kBaseArmorClassPadded = 11; + let kBaseArmorClassLeather = 11; + let kBaseArmorClassStudded = 12; + let kBaseArmorClassHide = 12; + let kBaseArmorClassChainShirt = 13; + let kBaseArmorClassScaleMail = 14; + let kBaseArmorClassBreastplate = 14; + let kBaseArmorClassHalfPlate = 15; + let kBaseArmorClassRingMail = 14; + let kBaseArmorClassChainMail = 16; + let kBaseArmorClassSplintMail = 17; + let kBaseArmorClassPlate = 18; + + // MARK: Basic Info + + var meta: String { + get { + // size type (subtype) alignment + var parts: [String] = [] + + if (!(self.size?.isEmpty ?? false)) { + parts.append(self.size!) + } + + if (!(self.type?.isEmpty ?? false)) { + parts.append(self.type!) + } + + if (!(self.subtype?.isEmpty ?? false)) { + parts.append(String.init(format: "(%@)", arguments: [self.subtype!])) + } + + if (!(self.alignment?.isEmpty ?? false)) { + parts.append(self.alignment!) + } + + return parts.joined(separator: " ") + } + } + + var sizeEnum: SizeType { + get { + return SizeType.init(rawValue: size ?? "") ?? .medium + } + set { + size = newValue.rawValue + } + } + + var hitPoints: String { + get { + if (hasCustomHP) { + return customHP ?? ""; + } else { + let dieSize = Double(Monster.hitDieForSize(sizeEnum)) + let conMod = Double(constitutionModifier) + let level1HP = Double(dieSize + conMod) + let extraLevels = Double(hitDice - 1) + let levelNHP = (dieSize + 1.0) / 2.0 + conMod + let extraLevelsHP = extraLevels * levelNHP + let hpTotal = Int(ceil(level1HP + extraLevelsHP)) +// let hpTotal = Int(max(1, ceil(dieSize + conMod + (hitDice - 1) * ((dieSize + 1) / 2.0 + conMod)))) + let conBonus = Int(conMod) * Int(hitDice) + return String(format: "%d (%dd%d%+d)", hpTotal, hitDice, dieSize, conBonus) + } + } + } + + var speed: String { + get { + if (hasCustomSpeed) { + return customSpeed ?? "" + } else { + var parts: [String] = [] + + if (baseSpeed > 0) { + parts.append("\(baseSpeed) ft.") + } + if (burrowSpeed > 0) { + parts.append("burrow \(burrowSpeed) ft.") + } + if (climbSpeed > 0) { + parts.append("climb \(climbSpeed) ft.") + } + if (flySpeed > 0) { + parts.append("fly \(flySpeed) ft.\(canHover ? " (hover)": "")") + } + if (swimSpeed > 0) { + parts.append("swim \(swimSpeed) ft.") + } + + return parts.joined(separator: ", ") + } + } + } + + class func hitDieForSize(_ size: SizeType) -> Int { + switch size { + case .tiny: return 4 + case .small: return 6 + case .medium: return 8 + case .large: return 10 + case .huge: return 12 + case .gargantuan: return 20 + } + } + + // MARK: Ability Scores + class func abilityModifierForScore(_ score: Int) -> Int { + return Int(floor(Double((score - 10)) / 2.0)) + } + + var strengthModifier: Int { + get { + return Monster.abilityModifierForScore(Int(strengthScore)) + } + } + + var dexterityModifier: Int { + get { + return Monster.abilityModifierForScore(Int(dexterityScore)) + } + } + + var constitutionModifier: Int { + get { + return Monster.abilityModifierForScore(Int(constitutionScore)) + } + } + + var intelligenceModifier: Int { + get { + return Monster.abilityModifierForScore(Int(intelligenceScore)) + } + } + + var wisdomModifier: Int { + get { + return Monster.abilityModifierForScore(Int(wisdomScore)) + } + } + + var charismaModifier: Int { + get { + return Monster.abilityModifierForScore(Int(charismaScore)) + } + } + + var strengthDescription: String { + get { + return String(format: "%d (%+d)", strengthScore, strengthModifier) + } + } + + var dexterityDescription: String { + get { + return String(format: "%d (%+d)", dexterityScore, dexterityModifier) + } + } + + var constitutionDescription: String { + get { + return String(format: "%d (%+d)", constitutionScore, constitutionModifier) + } + } + + var intelligenceDescription: String { + get { + return String(format: "%d (%+d)", intelligenceScore, intelligenceModifier) + } + } + + var wisdomDescription: String { + get { + return String(format: "%d (%+d)", wisdomScore, wisdomModifier) + } + } + + var charismaDescription: String { + get { + return String(format: "%d (%+d)", charismaScore, charismaModifier) + } + } + + // MARK: Armor + + var armorTypeEnum: ArmorType { + get { + return ArmorType.init(rawValue: armorType ?? "none") ?? .none + } + set { + armorType = newValue.rawValue + } + } + + var armorClassDescription: String { + get { + let hasShield = shieldBonus != 0 + var armorClassTotal = 0 + if (armorTypeEnum == ArmorType.none) { + // 10 + dexMod + 2 for shieldBonus "15" or "17 (shield)" + armorClassTotal = kBaseArmorClassUnarmored + dexterityModifier + Int(shieldBonus) + return "\(armorClassTotal)\(hasShield ? " (shield)" : "")" + } else if (armorTypeEnum == .naturalArmor) { + // 10 + dexMod + naturalArmorBonus + 2 for shieldBonus "16 (natural armor)" or "18 (natural armor, shield)" + armorClassTotal = kBaseArmorClassUnarmored + dexterityModifier + Int(naturalArmorBonus) + Int(shieldBonus) + return "\(armorClassTotal) (natural armor\(hasShield ? " (shield)" : ""))" + } else if (armorTypeEnum == .mageArmor) { + // 10 + dexMod + 2 for shield + 3 for mage armor "15 (18 with mage armor)" or 17 (shield, 20 with mage armor) + armorClassTotal = kBaseArmorClassUnarmored + dexterityModifier + Int(shieldBonus) + let acWithMageArmor = kBaseArmorClassMageArmor + dexterityModifier + Int(shieldBonus) + return String(format: "%d (%@%d with mage armor)", armorClassTotal, (hasShield ? "shield, " : ""), acWithMageArmor) + } else if (armorTypeEnum == .padded) { + // 11 + dexMod + 2 for shield "18 (padded armor, shield)" + armorClassTotal = kBaseArmorClassPadded + dexterityModifier + Int(shieldBonus) + return String(format: "%d (padded%@)", armorClassTotal, (hasShield ? "shield, " : "")) + } else if (armorTypeEnum == .leather) { + // 11 + dexMod + 2 for shield "18 (leather, shield)" + armorClassTotal = kBaseArmorClassLeather + dexterityModifier + Int(shieldBonus) + return String(format:"%d (leather%@)", armorClassTotal, (hasShield ? "shield, " : "")) + } else if (armorTypeEnum == .studdedLeather) { + // 12 + dexMod +2 for shield "17 (studded leather)" + armorClassTotal = kBaseArmorClassStudded + dexterityModifier + Int(shieldBonus) + return String(format: "%d (studded leather%@)", armorClassTotal, (hasShield ? "shield, " : "")) + } else if (armorTypeEnum == .hide) { + // 12 + Min(2, dexMod) + 2 for shield "12 (hide armor)" + armorClassTotal = kBaseArmorClassHide + min(2, dexterityModifier) + Int(shieldBonus) + return String(format: "%d (hide%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .chainShirt) { + // 13 + Min(2, dexMod) + 2 for shield "12 (chain shirt)" + armorClassTotal = kBaseArmorClassChainShirt + min(2, dexterityModifier) + Int(shieldBonus) + return String(format: "%d (chain shirt%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .scaleMail) { + // 14 + Min(2, dexMod) + 2 for shield "14 (scale mail)" + armorClassTotal = kBaseArmorClassScaleMail + min(2, dexterityModifier) + Int(shieldBonus) + return String(format: "%d (scale mail%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .breastplate) { + // 14 + Min(2, dexMod) + 2 for shield "16 (breastplate)" + armorClassTotal = kBaseArmorClassBreastplate + min(2, dexterityModifier) + Int(shieldBonus) + return String(format: "%d (breastplate%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .halfPlate) { + // 15 + Min(2, dexMod) + 2 for shield "17 (half plate)" + armorClassTotal = kBaseArmorClassHalfPlate + min(2, dexterityModifier) + Int(shieldBonus) + return String(format: "%d (half plate%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .ringMail) { + // 14 + 2 for shield "14 (ring mail) + armorClassTotal = kBaseArmorClassRingMail + Int(shieldBonus) + return String(format: "%d (ring mail%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .chainMail) { + // 16 + 2 for shield "16 (chain mail)" + armorClassTotal = kBaseArmorClassChainMail + Int(shieldBonus) + return String(format: "%d (chain mail%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .splintMail) { + // 17 + 2 for shield "17 (splint)" + armorClassTotal = kBaseArmorClassSplintMail + Int(shieldBonus) + return String(format: "%d (splint%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .plateMail) { + // 18 + 2 for shield "18 (plate)" + armorClassTotal = kBaseArmorClassPlate + Int(shieldBonus) + return String(format: "%d (plate%@)", armorClassTotal, (hasShield ? ", shield" : "")) + } else if (armorTypeEnum == .other) { + // pure string value shield check does nothing just copies the string from otherArmorDesc + return otherArmorDescription ?? ""; + } else { + return "" + } + } + } + // MARK: Challenge Rating / Proficiency Bonus + + var challengeRatingEnum: ChallengeRating { + get { + return ChallengeRating.init(rawValue: challengeRating ?? "1") ?? .one + } + set { + challengeRating = newValue.rawValue + } + } + + var proficiencyBonus: Int { + return 5 +// switch challengeRatingEnum { +// case .custom: +// return Int(customProficiencyBonus) +// case .zero: +// fallthrough +// case .oneEighth: +// fallthrough +// case .oneQuarter: +// fallthrough +// case .oneHalf: +// fallthrough +// case .one: +// fallthrough +// case .two: +// fallthrough +// case .three: +// fallthrough +// case .four: +// return 2 +// case .five: +// fallthrough +// case .six: +// fallthrough +// case .seven: +// fallthrough +// case .eight: +// return 3 +// case .nine: +// fallthrough +// case .ten: +// fallthrough +// case .eleven: +// fallthrough +// case .twelve: +// return 4 +// case .thirteen: +// fallthrough +// case .fourteen: +// fallthrough +// case .fifteen: +// fallthrough +// case .sixteen: +// return 5 +// case .seventeen: +// fallthrough +// case .eighteen: +// fallthrough +// case .nineteen: +// fallthrough +// case .twenty: +// return 6 +// case .twentyOne: +// fallthrough +// case .twentyTwo: +// fallthrough +// case .twentyThree: +// fallthrough +// case .twentyFour: +// return 7 +// case .twentyFive: +// fallthrough +// case .twentySix: +// fallthrough +// case .twentySeven: +// fallthrough +// case .twentyEight: +// return 8 +// case .twentyNine: +// fallthrough +// case .thirty: +// return 9 +// } + } + + func proficiencyBonusForType(_ profType: ProficiencyType) -> Int { + switch profType { + case .none: + return 0 + case .proficient: + return proficiencyBonus + case .expertise: + return proficiencyBonus * 2 + } + } + + // MARK: Saving Throws + + var savingThrowsDescription: String { + get { + // TODO: port from objective-c + var parts: [String] = [] + var name: String + var advantage: String + var bonus: Int + + if (strengthSavingThrowAdvantageEnum != .none || strengthSavingThrowProficiencyEnum != .none) { + name = "Strength" + bonus = strengthModifier + proficiencyBonusForType(strengthSavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(strengthSavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + if (dexteritySavingThrowAdvantageEnum != .none || dexteritySavingThrowProficiencyEnum != .none) { + name = "Dexterity" + bonus = dexterityModifier + proficiencyBonusForType(dexteritySavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(dexteritySavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + if (constitutionSavingThrowAdvantageEnum != .none || constitutionSavingThrowProficiencyEnum != .none) { + name = "Constitution" + bonus = constitutionModifier + proficiencyBonusForType(constitutionSavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(constitutionSavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + if (intelligenceSavingThrowAdvantageEnum != .none || intelligenceSavingThrowProficiencyEnum != .none) { + name = "Intelligence" + bonus = intelligenceModifier + proficiencyBonusForType(intelligenceSavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(intelligenceSavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + if (wisdomSavingThrowAdvantageEnum != .none || wisdomSavingThrowProficiencyEnum != .none) { + name = "Wisdom" + bonus = wisdomModifier + proficiencyBonusForType(wisdomSavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(wisdomSavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + if (charismaSavingThrowAdvantageEnum != .none || charismaSavingThrowProficiencyEnum != .none) { + name = "Charisma" + bonus = charismaModifier + proficiencyBonusForType(charismaSavingThrowProficiencyEnum) + advantage = Monster.advantageLabelStringForType(charismaSavingThrowAdvantageEnum) + if (!advantage.isEmpty) { + advantage = " " + advantage + } + parts.append(String(format: "%@ %+d%@", name, bonus, advantage)) + } + + return parts.joined(separator: ", ") + } + } + + var strengthSavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: strengthSavingThrowProficiency ?? "") ?? .none + } + set { + strengthSavingThrowProficiency = newValue.rawValue + } + } + + var strengthSavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: strengthSavingThrowAdvantage ?? "") ?? .none + } + set { + strengthSavingThrowAdvantage = newValue.rawValue + } + } + + var dexteritySavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: dexteritySavingThrowProficiency ?? "") ?? .none + } + set { + dexteritySavingThrowProficiency = newValue.rawValue + } + } + + var dexteritySavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: dexteritySavingThrowAdvantage ?? "") ?? .none + } + set { + dexteritySavingThrowAdvantage = newValue.rawValue + } + } + + var constitutionSavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: constitutionSavingThrowProficiency ?? "") ?? .none + } + set { + constitutionSavingThrowProficiency = newValue.rawValue + } + } + + var constitutionSavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: constitutionSavingThrowAdvantage ?? "") ?? .none + } + set { + constitutionSavingThrowAdvantage = newValue.rawValue + } + } + + var intelligenceSavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: intelligenceSavingThrowProficiency ?? "") ?? .none + } + set { + intelligenceSavingThrowProficiency = newValue.rawValue + } + } + + var intelligenceSavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: intelligenceSavingThrowAdvantage ?? "") ?? .none + } + set { + intelligenceSavingThrowAdvantage = newValue.rawValue + } + } + + var wisdomSavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: wisdomSavingThrowProficiency ?? "") ?? .none + } + set { + wisdomSavingThrowProficiency = newValue.rawValue + } + } + + var wisdomSavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: wisdomSavingThrowAdvantage ?? "") ?? .none + } + set { + wisdomSavingThrowAdvantage = newValue.rawValue + } + } + + var charismaSavingThrowProficiencyEnum: ProficiencyType { + get { + return ProficiencyType.init(rawValue: charismaSavingThrowProficiency ?? "") ?? .none + } + set { + charismaSavingThrowProficiency = newValue.rawValue + } + } + + var charismaSavingThrowAdvantageEnum: AdvantageType { + get { + return AdvantageType.init(rawValue: charismaSavingThrowAdvantage ?? "") ?? .none + } + set { + charismaSavingThrowAdvantage = newValue.rawValue + } + } + + + // MARK: Misc Helpers + + class func advantageLabelStringForType(_ advType: AdvantageType) -> String { + switch advType { + case .none: + return "" + case .advantage: + return "(A)" + case .disadvantage: + return "(D)" + } + } + + // MARK: End + +} + +enum ArmorType: String, CaseIterable, Identifiable { + case none = "none" + case naturalArmor = "natural armor" + case mageArmor = "mage armor" + case padded = "padded" + case leather = "leather" + case studdedLeather = "studded" + case hide = "hide" + case chainShirt = "chain shirt" + case scaleMail = "scale mail" + case breastplate = "breastplate" + case halfPlate = "half plate" + case ringMail = "ring mail" + case chainMail = "chain mail" + case splintMail = "splint" + case plateMail = "plate" + case other = "other" + + var id: ArmorType { self } + + var displayName: String { + switch self { + case .none: return "None" + case .naturalArmor: return "Natural Armor" + case .mageArmor: return "Mage Armor" + case .padded: return "Padded" + case .leather: return "Leather" + case .studdedLeather: return "Studded Leather" + case .hide: return "Hide" + case .chainShirt: return "Chain Shirt" + case .scaleMail: return "Scale Mail" + case .breastplate: return "Breastplate" + case .halfPlate: return "Half Plate" + case .ringMail: return "Ring Mail" + case .chainMail: return "Chain Mail" + case .splintMail: return "Splint Mail" + case .plateMail: return "Plate Mail" + case .other: return "Other" + } + } +} + +enum SizeType: String, CaseIterable, Identifiable { + case tiny = "tiny" + case small = "small" + case medium = "medium" + case large = "large" + case huge = "huge" + case gargantuan = "gargantuan" + + var id: SizeType { self } + + var displayName: String { + switch self { + case .tiny: return "Tiny" + case .small: return "Small" + case .medium: return "Medium" + case .large: return "Large" + case .huge: return "Huge" + case .gargantuan: return "gargantuan" + } + } +} + +enum ChallengeRating: String, CaseIterable, Identifiable { + case zero = "0" + case oneEighth = "1/8" + case oneQuarter = "1/4" + case oneHalf = "1/2" + case one = "1" + case two = "2" + case three = "3" + case four = "4" + case five = "5" + case six = "6" + case seven = "7" + case eight = "8" + case nine = "9" + case ten = "10" + case eleven = "11" + case twelve = "12" + case thirteen = "13" + case fourteen = "14" + case fifteen = "15" + case sixteen = "16" + case seventeen = "17" + case eighteen = "18" + case nineteen = "19" + case twenty = "20" + case twentyOne = "21" + case twentyTwo = "22" + case twentyThree = "23" + case twentyFour = "24" + case twentyFive = "25" + case twentySix = "26" + case twentySeven = "27" + case twentyEight = "28" + case twentyNine = "29" + case thirty = "30" + case custom = "*" + + var id: ChallengeRating { self } + + // Probably don't need this + var displayName: String { + return rawValue + } +} diff --git a/MonsterCards/Models/Monster.h b/MonsterCards/Models/Monster.h deleted file mode 100644 index bf27405..0000000 --- a/MonsterCards/Models/Monster.h +++ /dev/null @@ -1,160 +0,0 @@ -// -// Monster.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import -#import "Ability.h" -#import "Action.h" -#import "DamageType.h" -#import "Language.h" -#import "SavingThrow.h" -#import "Skill.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString* const kMonsterSizeTiny; -extern NSString* const kMonsterSizeSmall; -extern NSString* const kMonsterSizeMedium; -extern NSString* const kMonsterSizeLarge; -extern NSString* const kMonsterSizeHuge; -extern NSString* const kMonsterSizeGargantuan; - -extern const int kArmorClassUnarmored; -extern const int kArmorClassMageArmor; -extern const int kArmorClassPadded; -extern const int kArmorClassLeather; -extern const int kArmorClassStudded; -extern const int kArmorClassHide; -extern const int kArmorClassChainShirt; -extern const int kArmorClassScaleMail; -extern const int kArmorClassBreastplate; -extern const int kArmorClassHalfPlate; -extern const int kArmorClassRingMail; -extern const int kArmorClassChainMail; -extern const int kArmorClassSplintMail; -extern const int kArmorClassPlate; - -extern NSString* const kArmorNameNone; -extern NSString* const kArmorNameNaturalArmor; -extern NSString* const kArmorNameMageArmor; -extern NSString* const kArmorNamePadded; -extern NSString* const kArmorNameLeather; -extern NSString* const kArmorNameStuddedLeather; -extern NSString* const kArmorNameHide; -extern NSString* const kArmorNameChainShirt; -extern NSString* const kArmorNameScaleMail; -extern NSString* const kArmorNameBreastplate; -extern NSString* const kArmorNameHalfPlate; -extern NSString* const kArmorNameRingMail; -extern NSString* const kArmorNameChainMail; -extern NSString* const kArmorNameSplintMail; -extern NSString* const kArmorNamePlateMail; -extern NSString* const kArmorNameOther; - -extern NSString *const kProficiencyTypeNone; -extern NSString *const kProficiencyTypeProficient; -extern NSString *const kProficiencyTypeExpertise; - -extern NSString *const kAdvantageTypeNone; -extern NSString *const kAdvantageTypeAdvantage; -extern NSString *const kAdvantageTypeDisadvantage; - -@class Skill; - -@interface Monster : NSManagedObject - -// speedDescription -@property NSString *challengeRating; -@property NSString *customChallengeRating; -@property NSString *blindsightDistance; -@property NSString *darkvisionDistance; -@property NSString *tremorsenseDistance; -@property NSString *truesightDistance; -@property NSString *understandsBut; - -@property int naturalArmorBonus; -@property int customProficiencyBonus; -// Shouldn't this be a BOOL? -@property int telepathy; - -@property BOOL isBlind; - -+(int)abilityModifierForScore: (int)score; -+(int)hitDieForSize: (NSString*)size; - --(id)initWithJSONString:(NSString*)jsonString andContext:(NSManagedObjectContext*)context; --(id)initWithJSONData:(NSData*)jsonData andContext:(NSManagedObjectContext*)context; --(id)initWithMonster:(Monster*)monster; --(void)copyFromMonster:(Monster*)monster; - --(NSString*)meta; --(int)abilityScoreForAbilityScoreName: (NSString*)abilityScoreName; --(int)abilityModifierForAbilityScoreName: (NSString*)abilityScoreName; --(int)strengthModifier; --(int)dexterityModifier; --(int)constitutionModifier; --(int)intelligenceModifier; --(int)wisdomModifier; --(int)charismaModifier; -//getArmorClass --(NSString*)armorClassDescription; -//getHitPoints --(NSString*)hitPointsDescription; -//getSpeedText --(NSString*)speedDescription; --(NSString*)strengthDescription; --(NSString*)dexterityDescription; --(NSString*)constitutionDescription; --(NSString*)intelligenceDescription; --(NSString*)wisdomDescription; --(NSString*)charismaDescription; --(NSSet*)savingThrows; --(void)addSavingThrow: (SavingThrow*)savingThrow; --(void)remvoeSavingThrow: (SavingThrow*)savingThrow; --(void)clearSavingThrows; --(NSString*)savingThrowsDescription; --(int)proficiencyBonus; --(int)proficiencyBonusForType:(NSString*)proficiencyType; --(void)addSkill: (Skill*)skill; --(void)removeSkill: (Skill*)skill; --(void)clearSkills; --(NSString*)skillsDescription; --(void)addDamageType: (DamageType*)damageType; --(void)removeDamageType: (DamageType*)damageType; --(void)clearDamageTypes; --(NSString*)damageImmunitiesDescription; --(NSString*)damageResistancesDescription; --(NSString*)damageVulnerabilitiesDescription; --(void)addConditionImmunity: (NSString*)condition; --(void)removeConditionImmunity: (NSString*)condition; --(void)clearConditionImmunities; --(NSString*)conditionImmunitiesDescription; --(NSString*)sensesDescription; --(void)addLanguage: (Language*)language; --(void)removeLanguage: (Language*)language; --(void)clearLanguages; --(NSString*)languagesDescription; --(NSString*)challengeRatingDescription; --(void)addAbility: (Ability*)ability; --(void)removeAbility: (Ability*)ability; --(void)clearAbilities; --(NSArray*)abilityDescriptions; --(void)addAction: (Action*)action; --(void)removeAction: (Action*)action; --(void)clearActions; --(NSArray*)actionDescriptions; --(NSString*)placeholderReplacedText: (NSString*)text; --(int)savingThrowForAbilityScoreName: (NSString*)abilityScoreName; --(int)spellSaveDCForAbilityScoreName: (NSString*)abilityScoreName; --(int)attackBonusForAbilityScoreName: (NSString*)abilityScoreName; - -@end - -NS_ASSUME_NONNULL_END - -#import "Monster+CoreDataProperties.h" diff --git a/MonsterCards/Models/Monster.m b/MonsterCards/Models/Monster.m deleted file mode 100644 index eddeded..0000000 --- a/MonsterCards/Models/Monster.m +++ /dev/null @@ -1,699 +0,0 @@ -// -// Monster.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "Monster.h" -#import "StringHelper.h" -#import "JSONHelper.h" - -@implementation Monster - -@synthesize blindsightDistance; -// TODO: move this to Core Data and add to editor -@synthesize challengeRating; -// TODO: move this to Core Data and add to editor -@synthesize customChallengeRating; -// TODO: move this to Core Data and add to editor -@synthesize customProficiencyBonus; -@synthesize darkvisionDistance; -@synthesize isBlind; -@synthesize naturalArmorBonus; -@synthesize telepathy; -@synthesize tremorsenseDistance; -@synthesize truesightDistance; -@synthesize understandsBut; - -const int kArmorClassUnarmored = 10; -const int kArmorClassMageArmor = kArmorClassUnarmored + 3; -const int kArmorClassPadded = kArmorClassUnarmored + 1; -const int kArmorClassLeather = kArmorClassUnarmored + 1; -const int kArmorClassStudded = kArmorClassUnarmored + 2; -const int kArmorClassHide = kArmorClassUnarmored + 2; -const int kArmorClassChainShirt = kArmorClassUnarmored + 3; -const int kArmorClassScaleMail = kArmorClassUnarmored + 4; -const int kArmorClassBreastplate = kArmorClassUnarmored + 4; -const int kArmorClassHalfPlate = kArmorClassUnarmored + 5; -const int kArmorClassRingMail = kArmorClassUnarmored + 4; -const int kArmorClassChainMail = kArmorClassUnarmored + 6; -const int kArmorClassSplintMail = kArmorClassUnarmored + 7; -const int kArmorClassPlate = kArmorClassUnarmored + 8; - -NSString* const kArmorNameNone = @"none"; -NSString* const kArmorNameNaturalArmor = @"natural armor"; -NSString* const kArmorNameMageArmor = @"mage armor"; -NSString* const kArmorNamePadded = @"padded"; -NSString* const kArmorNameLeather = @"leather"; -NSString* const kArmorNameStuddedLeather = @"studded"; -NSString* const kArmorNameHide = @"hide"; -NSString* const kArmorNameChainShirt = @"chain shirt"; -NSString* const kArmorNameScaleMail = @"scale mail"; -NSString* const kArmorNameBreastplate = @"breastplate"; -NSString* const kArmorNameHalfPlate = @"half plate"; -NSString* const kArmorNameRingMail = @"ring mail"; -NSString* const kArmorNameChainMail = @"chain mail"; -NSString* const kArmorNameSplintMail = @"splint"; -NSString* const kArmorNamePlateMail = @"plate"; -NSString* const kArmorNameOther = @"other"; - -NSString* const kMonsterSizeTiny = @"tiny"; -NSString* const kMonsterSizeSmall = @"small"; -NSString* const kMonsterSizeMedium = @"medium"; -NSString* const kMonsterSizeLarge = @"large"; -NSString* const kMonsterSizeHuge = @"huge"; -NSString* const kMonsterSizeGargantuan = @"gargantuan"; - -NSString *const kProficiencyTypeNone = @"none"; -NSString *const kProficiencyTypeProficient = @"proficient"; -NSString *const kProficiencyTypeExpertise = @"expertise"; - -NSString *const kAdvantageTypeNone = @"none"; -NSString *const kAdvantageTypeAdvantage = @"advantage"; -NSString *const kAdvantageTypeDisadvantage = @"disadvantage"; - -+(int)abilityModifierForScore: (int)score { - return (int)floor((score - 10) / 2.0); -} - -+(int)hitDieForSize: (NSString*)size{ - if ([kMonsterSizeTiny isEqualToString:size]) { - return 4; - } else if ([kMonsterSizeSmall isEqualToString:size]) { - return 6; - } else if ([kMonsterSizeMedium isEqualToString:size]) { - return 8; - } else if ([kMonsterSizeLarge isEqualToString:size]) { - return 10; - } else if ([kMonsterSizeHuge isEqualToString:size]) { - return 12; - } else if ([kMonsterSizeGargantuan isEqualToString:size]) { - return 20; - } else { - return 8; - } -} - --(id)init { - self = [super init]; - - self.name = @""; - self.size = @""; - - return self; -} - --(id)initWithJSONString: (NSString*)jsonString andContext:(NSManagedObjectContext*)context { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - return [self initWithJSONData:jsonData andContext:context]; -} - --(id)initWithJSONData: (NSData*)jsonData andContext:(NSManagedObjectContext*)context { - self = [self initWithContext:context]; - - NSDictionary *jsonRoot = [JSONHelper parseJSONDataAsDictionary:jsonData]; - - self.name = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"name" withDefaultValue:@""]; - self.size = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"size" withDefaultValue:@""]; - self.type = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"type" withDefaultValue:@""]; - self.subtype = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"tag" withDefaultValue:@""]; - self.hpText = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"hpText" withDefaultValue:@""]; - - self.alignment = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"alignment" withDefaultValue:@""]; - self.armorType = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"armorName" withDefaultValue:@""]; - self.otherArmorDescription = [JSONHelper readStringFromDictionary:jsonRoot forKey:@"otherArmorDesc" withDefaultValue:@""]; - self.strengthScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"strPoints" withDefaultValue:10]; - self.dexterityScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"dexPoints" withDefaultValue:10]; - self.constitutionScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"conPoints" withDefaultValue:10]; - self.intelligenceScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"intPoints" withDefaultValue:10]; - self.wisdomScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"wisPoints" withDefaultValue:10]; - self.charismaScore = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"chaPoints" withDefaultValue:10]; - self.shieldBonus = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"shieldBonus" withDefaultValue:0]; - self.hitDice = [JSONHelper readIntFromDictionary:jsonRoot forKey:@"hitDice" withDefaultValue:0]; - - self.customHP = [JSONHelper readBoolFromDictionary:jsonRoot forKey:@"customHP" withDefaultValue:NO]; - - return self; -} - --(id)initWithMonster:(Monster* _Nonnull)monster { - self = [self initWithContext:monster.managedObjectContext]; - - [self copyFromMonster:monster]; - - return self; -} - --(NSString*)meta { - // "${size} ${type} (${subtype}) ${alignment}" - - NSMutableArray *parts = [NSMutableArray arrayWithCapacity:4]; - if (![StringHelper isStringNilOrEmpty:self.size]) { - [parts addObject:self.size]; - } - - if (![StringHelper isStringNilOrEmpty:self.type]) { - [parts addObject:self.type]; - } - - if (![StringHelper isStringNilOrEmpty:self.subtype]) { - [parts addObject:[NSString stringWithFormat:@"(%@)", self.subtype]]; - } - - if (![StringHelper isStringNilOrEmpty:self.alignment]) { - [parts addObject:self.alignment]; - } - - return [parts componentsJoinedByString:@" "]; -} - --(int)abilityScoreForAbilityScoreName: (NSString*)abilityScoreName { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)abilityModifierForAbilityScoreName: (NSString*)abilityScoreName { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)strengthModifier { - return [Monster abilityModifierForScore:self.strengthScore]; -} - --(int)dexterityModifier { - return [Monster abilityModifierForScore:self.dexterityScore]; -} - --(int)constitutionModifier { - return [Monster abilityModifierForScore:self.constitutionScore]; -} - --(int)intelligenceModifier { - return [Monster abilityModifierForScore:self.intelligenceScore]; -} - --(int)wisdomModifier { - return [Monster abilityModifierForScore:self.wisdomScore]; -} - --(int)charismaModifier { - return [Monster abilityModifierForScore:self.charismaScore]; -} - - -//getArmorClass --(NSString*)armorClassDescription { - BOOL hasShield = [self shieldBonus] != 0; - NSString *armorType = [self armorType]; - if ([StringHelper isStringNilOrEmpty:armorType] || [kArmorNameNone isEqualToString:armorType]) { - // 10 + dexMod + 2 for shieldBonus "15" or "17 (shield)" - int armorClass = kArmorClassUnarmored + self.dexterityModifier + self.shieldBonus; - return [NSString stringWithFormat:@"%d%@", armorClass, (hasShield ? @" (shield)" : @"")]; - } else if ([kArmorNameNaturalArmor isEqualToString:armorType]) { - // 10 + dexMod + naturalArmorBonus + 2 for shieldBonus "16 (natural armor)" or "18 (natural armor, shield)" - int armorClass = kArmorClassUnarmored + self.dexterityModifier + self.naturalArmorBonus + self.shieldBonus; - return [NSString stringWithFormat:@"%d (natural armor%@)", armorClass, (hasShield ? @" (shield)" : @"")]; - } else if ([kArmorNameMageArmor isEqualToString:armorType]) { - // 10 + dexMod + 2 for shield + 3 for mage armor "15 (18 with mage armor)" or 17 (shield, 20 with mage armor) - int armorClass = kArmorClassUnarmored + self.dexterityModifier + self.shieldBonus; - int armorClassWithMageArmor = kArmorClassMageArmor + self.dexterityModifier + self.shieldBonus; - return [NSString stringWithFormat:@"%d (%@%d with mage armor)", armorClass, (hasShield ? @"shield, " : @""), armorClassWithMageArmor]; - } else if ([kArmorNamePadded isEqualToString:armorType]) { - // 11 + dexMod + 2 for shield "18 (padded armor, shield)" - int armorClass = kArmorClassPadded + self.dexterityModifier + self.shieldBonus; - return [NSString stringWithFormat:@"%d (padded%@)", armorClass, (hasShield ? @"shield, " : @"")]; - } else if ([kArmorNameLeather isEqualToString:armorType]) { - // 11 + dexMod + 2 for shield "18 (leather, shield)" - int armorClass = kArmorClassLeather + self.dexterityModifier + self.shieldBonus; - return [NSString stringWithFormat:@"%d (leather%@)", armorClass, (hasShield ? @"shield, " : @"")]; - } else if ([kArmorNameStuddedLeather isEqualToString:armorType]) { - // 12 + dexMod +2 for shield "17 (studded leather)" - int armorClass = kArmorClassStudded + self.dexterityModifier + self.shieldBonus; - return [NSString stringWithFormat:@"%d (studded leather%@)", armorClass, (hasShield ? @"shield, " : @"")]; - } else if ([kArmorNameHide isEqualToString:armorType]) { - // 12 + Min(2, dexMod) + 2 for shield "12 (hide armor)" - int armorClass = kArmorClassHide + MIN(2, self.dexterityModifier) + self.shieldBonus; - return [NSString stringWithFormat:@"%d (hide%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameChainShirt isEqualToString:armorType]) { - // 13 + Min(2, dexMod) + 2 for shield "12 (chain shirt)" - int armorClass = kArmorClassChainShirt + MIN(2, self.dexterityModifier) + self.shieldBonus; - return [NSString stringWithFormat:@"%d (chain shirt%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameScaleMail isEqualToString:armorType]) { - // 14 + Min(2, dexMod) + 2 for shield "14 (scale mail)" - int armorClass = kArmorClassScaleMail + MIN(2, self.dexterityModifier) + self.shieldBonus; - return [NSString stringWithFormat:@"%d (scale mail%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameBreastplate isEqualToString:armorType]) { - // 14 + Min(2, dexMod) + 2 for shield "16 (breastplate)" - int armorClass = kArmorClassBreastplate + MIN(2, self.dexterityModifier) + self.shieldBonus; - return [NSString stringWithFormat:@"%d (breastplate%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameHalfPlate isEqualToString:armorType]) { - // 15 + Min(2, dexMod) + 2 for shield "17 (half plate)" - int armorClass = kArmorClassHalfPlate + MIN(2, self.dexterityModifier) + self.shieldBonus; - return [NSString stringWithFormat:@"%d (half plate%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameRingMail isEqualToString:armorType]) { - // 14 + 2 for shield "14 (ring mail) - int armorClass = kArmorClassRingMail + self.shieldBonus; - return [NSString stringWithFormat:@"%d (ring mail%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameChainMail isEqualToString:armorType]) { - // 16 + 2 for shield "16 (chain mail)" - int armorClass = kArmorClassChainMail + self.shieldBonus; - return [NSString stringWithFormat:@"%d (chain mail%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameSplintMail isEqualToString:armorType]) { - // 17 + 2 for shield "17 (splint)" - int armorClass = kArmorClassSplintMail + self.shieldBonus; - return [NSString stringWithFormat:@"%d (splint%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNamePlateMail isEqualToString:armorType]) { - // 18 + 2 for shield "18 (plate)" - int armorClass = kArmorClassPlate + self.shieldBonus; - return [NSString stringWithFormat:@"%d (plate%@)", armorClass, (hasShield ? @", shield" : @"")]; - } else if ([kArmorNameOther isEqualToString:armorType]) { - // pure string value shield check does nothing just copies the string from otherArmorDesc - return self.otherArmorDescription; - } else { - return @""; - } -} - -//getHitPoints --(NSString*)hitPointsDescription { - if (self.customHP) { - return self.hpText; - } else { - int dieSize = [Monster hitDieForSize:self.size]; - int conMod = self.constitutionModifier; - int hpTotal = (int)MAX(1, ceil(dieSize + conMod + (self.hitDice - 1) * ((dieSize + 1) / 2.0 + conMod))); - int conBonus = conMod * self.hitDice; - return [NSString stringWithFormat:@"%d (%dd%d%+d)", hpTotal, self.hitDice, dieSize, conBonus]; - } -} - --(NSString*)speedDescription { - if (self.hasCustomSpeed) { - return self.customSpeed; - } else { - NSMutableArray* parts = [[NSMutableArray alloc] init]; - if (self.baseSpeed > 0) { - [parts addObject:[NSString stringWithFormat:@"%d ft.", self.baseSpeed]]; - } - if (self.burrowSpeed > 0) { - [parts addObject:[NSString stringWithFormat:@"burrow %d ft.", self.burrowSpeed]]; - } - if (self.climbSpeed > 0) { - [parts addObject:[NSString stringWithFormat:@"climb %d ft.", self.climbSpeed]]; - } - if (self.flySpeed > 0) { - [parts addObject:[NSString stringWithFormat:@"fly %d ft.%@", self.flySpeed, self.canHover ? @" (hover)" : @""]]; - } - if (self.swimSpeed > 0) { - [parts addObject:[NSString stringWithFormat:@"swim %d ft.", self.swimSpeed]]; - } - return [parts componentsJoinedByString:@" "]; - } -} - --(NSString*)strengthDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.strengthScore, self.strengthModifier]; -} - --(NSString*)dexterityDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.dexterityScore, self.dexterityModifier]; -} - --(NSString*)constitutionDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.constitutionScore, self.constitutionModifier]; -} - --(NSString*)intelligenceDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.intelligenceScore, self.intelligenceModifier]; - -} - --(NSString*)wisdomDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.wisdomScore, self.wisdomModifier]; -} - --(NSString*)charismaDescription { - return [NSString stringWithFormat:@"%d (%+d)", self.charismaScore, self.charismaModifier]; -} - --(NSSet*)savingThrows { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addSavingThrow: (SavingThrow*)savingThrow { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)remvoeSavingThrow: (SavingThrow*)savingThrow { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearSavingThrows { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)proficiencyBonusForType:(NSString*)proficiencyType { - if ([kProficiencyTypeNone isEqualToString:proficiencyType]) { - return 0; - } else if ([kProficiencyTypeProficient isEqualToString:proficiencyType]) { - return self.proficiencyBonus; - } else if ([kProficiencyTypeExpertise isEqualToString:proficiencyType]) { - return self.proficiencyBonus * 2; - } else { - return 0; - } -} - -+(NSString*)advantageLabelStringForType:(NSString*)advantageType { - if ([kAdvantageTypeNone isEqualToString:advantageType]) { - return @""; - } else if ([kAdvantageTypeAdvantage isEqualToString:advantageType]) { - return @"(A)"; - } else if ([kAdvantageTypeDisadvantage isEqualToString:advantageType]) { - return @"(D)"; - } else { - return @""; - } -} - --(NSString*)savingThrowsDescription { - NSMutableArray *parts = [[NSMutableArray alloc] init]; - NSString *name; - NSString *advantage; - int bonus; - if ( - ![kProficiencyTypeNone isEqualToString:self.strengthSavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.strengthSavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Strength", @""); - bonus = self.strengthModifier + [self proficiencyBonusForType:self.strengthSavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.strengthSavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - if ( - ![kProficiencyTypeNone isEqualToString:self.dexteritySavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.dexteritySavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Dexterity", @""); - bonus = self.dexterityModifier + [self proficiencyBonusForType:self.dexteritySavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.dexteritySavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - if ( - ![kProficiencyTypeNone isEqualToString:self.constitutionSavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.constitutionSavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Constitution", @""); - bonus = self.constitutionModifier + [self proficiencyBonusForType:self.constitutionSavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.constitutionSavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - if ( - ![kProficiencyTypeNone isEqualToString:self.intelligenceSavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.intelligenceSavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Intelligence", @""); - bonus = self.intelligenceModifier + [self proficiencyBonusForType:self.intelligenceSavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.intelligenceSavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - if ( - ![kProficiencyTypeNone isEqualToString:self.wisdomSavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.wisdomSavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Wisdom", @""); - bonus = self.wisdomModifier + [self proficiencyBonusForType:self.wisdomSavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.wisdomSavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - if ( - ![kProficiencyTypeNone isEqualToString:self.charismaSavingThrowProficiency] || - ![kAdvantageTypeNone isEqualToString:self.charismaSavingThrowAdvantage] - ) { - name = NSLocalizedString(@"Charisma", @""); - bonus = self.charismaModifier + [self proficiencyBonusForType:self.charismaSavingThrowProficiency]; - advantage = [Monster advantageLabelStringForType:self.charismaSavingThrowAdvantage]; - if (advantage) { - advantage = [@" " stringByAppendingString:advantage]; - } - [parts addObject:[NSString stringWithFormat:@"%@ %+d%@", name, bonus, advantage]]; - } - return [parts componentsJoinedByString:@", "]; -} - --(int)proficiencyBonus { - if ([@"*" isEqualToString:challengeRating]) { - return customProficiencyBonus; - } else if ( - [@"0" isEqualToString:challengeRating] || - [@"1/8" isEqualToString:challengeRating] || - [@"1/4" isEqualToString:challengeRating] || - [@"1/2" isEqualToString:challengeRating] || - [@"1" isEqualToString:challengeRating] || - [@"2" isEqualToString:challengeRating] || - [@"3" isEqualToString:challengeRating] || - [@"4" isEqualToString:challengeRating] - ) { - return 2; - } else if ( - [@"5" isEqualToString:challengeRating] || - [@"6" isEqualToString:challengeRating] || - [@"7" isEqualToString:challengeRating] || - [@"8" isEqualToString:challengeRating]) - { - return 3; - } else if ( - [@"9" isEqualToString:challengeRating] || - [@"10" isEqualToString:challengeRating] || - [@"11" isEqualToString:challengeRating] || - [@"12" isEqualToString:challengeRating]) - { - return 4; - } else if ( - [@"13" isEqualToString:challengeRating] || - [@"14" isEqualToString:challengeRating] || - [@"15" isEqualToString:challengeRating] || - [@"16" isEqualToString:challengeRating]) - { - return 5; - } else if ( - [@"17" isEqualToString:challengeRating] || - [@"18" isEqualToString:challengeRating] || - [@"19" isEqualToString:challengeRating] || - [@"20" isEqualToString:challengeRating]) - { - return 6; - } else if ( - [@"21" isEqualToString:challengeRating] || - [@"22" isEqualToString:challengeRating] || - [@"23" isEqualToString:challengeRating] || - [@"24" isEqualToString:challengeRating]) - { - return 7; - } else if ( - [@"25" isEqualToString:challengeRating] || - [@"26" isEqualToString:challengeRating] || - [@"27" isEqualToString:challengeRating] || - [@"28" isEqualToString:challengeRating]) - { - return 8; - } else if ( - [@"29" isEqualToString:challengeRating] || - [@"30" isEqualToString:challengeRating]) - { - return 9; - } else { - return 0; - } -} - --(void)addSkill: (Skill*)skill { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeSkill: (Skill*)skill { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearSkills { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)skillsDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addDamageType: (DamageType*)damageType { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeDamageType: (DamageType*)damageType { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearDamageTypes { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)damageImmunitiesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)damageResistancesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)damageVulnerabilitiesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addConditionImmunity: (NSString*)condition { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeConditionImmunity: (NSString*)condition { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearConditionImmunities { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)conditionImmunitiesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)sensesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addLanguage: (Language*)language { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeLanguage: (Language*)language { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearLanguages { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)languagesDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)challengeRatingDescription { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addAbility: (Ability*)ability { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeAbility: (Ability*)ability { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearAbilities { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSArray*)abilityDescriptions { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)addAction: (Action*)action { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)removeAction: (Action*)action { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)clearActions { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSArray*)actionDescriptions { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(NSString*)placeholderReplacedText: (NSString*)text { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)savingThrowForAbilityScoreName: (NSString*)abilityScoreName { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)spellSaveDCForAbilityScoreName: (NSString*)abilityScoreName { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(int)attackBonusForAbilityScoreName: (NSString*)abilityScoreName { - @throw [[NSException alloc] initWithName:@"unimplemented" reason:@"Method not implemented." userInfo:nil]; -} - --(void)copyFromMonster:(Monster*)monster { - self.name = monster.name; - self.size = monster.size; - self.type = monster.type; - self.subtype = monster.subtype; - self.alignment = monster.alignment; - self.strengthScore = monster.strengthScore; - self.dexterityScore = monster.dexterityScore; - self.constitutionScore = monster.constitutionScore; - self.intelligenceScore = monster.intelligenceScore; - self.wisdomScore = monster.wisdomScore; - self.charismaScore = monster.charismaScore; - self.armorType = monster.armorType; - self.otherArmorDescription = monster.otherArmorDescription; - self.shieldBonus = monster.shieldBonus; - self.customHP = monster.customHP; - self.hitDice = monster.hitDice; - self.hpText = monster.hpText; - self.baseSpeed = monster.baseSpeed; - self.burrowSpeed = monster.burrowSpeed; - self.climbSpeed = monster.climbSpeed; - self.flySpeed = monster.flySpeed; - self.canHover = monster.canHover; - self.swimSpeed = monster.swimSpeed; - self.hasCustomSpeed = monster.hasCustomSpeed; - self.customSpeed = monster.customSpeed; - self.armorType = monster.armorType; - self.naturalArmorBonus = monster.naturalArmorBonus; - self.hasShield = monster.hasShield; - self.customArmor = monster.customArmor; - self.strengthSavingThrowAdvantage = monster.strengthSavingThrowAdvantage; - self.strengthSavingThrowProficiency = monster.strengthSavingThrowProficiency; - self.dexteritySavingThrowAdvantage = monster.dexteritySavingThrowAdvantage; - self.dexteritySavingThrowProficiency = monster.dexteritySavingThrowProficiency; - self.constitutionSavingThrowAdvantage = monster.constitutionSavingThrowAdvantage; - self.constitutionSavingThrowProficiency = monster.constitutionSavingThrowProficiency; - self.intelligenceSavingThrowAdvantage = monster.intelligenceSavingThrowAdvantage; - self.intelligenceSavingThrowProficiency = monster.intelligenceSavingThrowProficiency; - self.wisdomSavingThrowAdvantage = monster.wisdomSavingThrowAdvantage; - self.wisdomSavingThrowProficiency = monster.wisdomSavingThrowProficiency; - self.charismaSavingThrowAdvantage = monster.charismaSavingThrowAdvantage; - self.charismaSavingThrowProficiency = monster.charismaSavingThrowProficiency; -} - -@end diff --git a/MonsterCards/Models/ProficiencyType.swift b/MonsterCards/Models/ProficiencyType.swift new file mode 100644 index 0000000..8bc4cc7 --- /dev/null +++ b/MonsterCards/Models/ProficiencyType.swift @@ -0,0 +1,27 @@ +// +// ProficiencyType.swift +// MonsterCards +// +// Created by Tom Hicks on 1/17/21. +// + +import Foundation + +enum ProficiencyType: String, CaseIterable, Identifiable { + case none = "none" + case proficient = "proficient" + case expertise = "expertise" + + var id: ProficiencyType { self } + + var displayName: String { + switch self { + case .none: + return "None" + case .proficient: + return "Proficient" + case .expertise: + return "Expertise" + } + } +} diff --git a/MonsterCards/Models/SavingThrow.h b/MonsterCards/Models/SavingThrow.h deleted file mode 100644 index a5be65a..0000000 --- a/MonsterCards/Models/SavingThrow.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// SavingThrow.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SavingThrow : NSObject - -@property NSString* name; -@property int order; - --(id)initWithName: (NSString*)name andOrder: (int)order; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/SavingThrow.m b/MonsterCards/Models/SavingThrow.m deleted file mode 100644 index 6d09601..0000000 --- a/MonsterCards/Models/SavingThrow.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// SavingThrow.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "SavingThrow.h" - -@implementation SavingThrow - --(id)init { - self = [super init]; - - self.name = @""; - self.order = -1; - - return self; -} - --(id)initWithName: (NSString*)name andOrder: (int)order { - self = [super init]; - - self.name = name; - self.order = order; - - return self; -} - -@end diff --git a/MonsterCards/Models/Skill.h b/MonsterCards/Models/Skill.h deleted file mode 100644 index fd5ed78..0000000 --- a/MonsterCards/Models/Skill.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// Skill.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Monster.h" - -NS_ASSUME_NONNULL_BEGIN -@class Monster; - -@interface Skill : NSObject - -@property NSString* name; -@property NSString* abilityScoreName; -@property NSString* notes; - --(id)initWithName: (NSString*)name abilityScoreName:(NSString*)abilityScoreName andNotes:(NSString*)notes; --(int)skillBonusForMonster: (Monster*)monster; --(NSString*)textForMonster: (Monster*)monster; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Models/Skill.m b/MonsterCards/Models/Skill.m deleted file mode 100644 index a7eb595..0000000 --- a/MonsterCards/Models/Skill.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// Skill.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "Skill.h" - -@implementation Skill - --(id)init { - self = [super init]; - - self.name = @""; - self.abilityScoreName = @""; - self.notes = @""; - - return self; -} - --(id)initWithName: (NSString*)name abilityScoreName:(NSString*)abilityScoreName andNotes:(NSString*)notes{ - self = [super init]; - - self.name = name; - self.abilityScoreName = abilityScoreName; - self.notes = notes; - - return self; -} - --(int)skillBonusForMonster: (Monster*)monster { - int bonus = [monster abilityModifierForAbilityScoreName: self.abilityScoreName]; - if ([@" (ex)" isEqualToString:self.notes]) { - bonus += 2 * monster.proficiencyBonus; - } else { - bonus += monster.proficiencyBonus; - } - return bonus; -} - --(NSString*)textForMonster: (Monster*)monster { - int bonus = [self skillBonusForMonster:monster]; - -// [self.name localizedUppercaseString] - return [NSString stringWithFormat:@"%@%@ %d", [[self.name substringToIndex:1] localizedUppercaseString], [self.name substringFromIndex:1], bonus]; -} - -@end diff --git a/MonsterCards/MonsterCards.xcdatamodeld/MonsterCards.xcdatamodel/contents b/MonsterCards/MonsterCards.xcdatamodeld/MonsterCards.xcdatamodel/contents index 7639324..95eeb7c 100644 --- a/MonsterCards/MonsterCards.xcdatamodeld/MonsterCards.xcdatamodel/contents +++ b/MonsterCards/MonsterCards.xcdatamodeld/MonsterCards.xcdatamodel/contents @@ -1,48 +1,56 @@ - + - - - + + + + - + + - - + + - + - + + + - - - + + + + - - + - - - + + + + - + - + - + + + + - + - + \ No newline at end of file diff --git a/MonsterCards/MonsterCardsApp.swift b/MonsterCards/MonsterCardsApp.swift new file mode 100644 index 0000000..d0b292f --- /dev/null +++ b/MonsterCards/MonsterCardsApp.swift @@ -0,0 +1,20 @@ +// +// MonsterCardsApp.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +@main +struct MonsterCardsApp: App { + let persistenceController = PersistenceController.shared + + var body: some Scene { + WindowGroup { + ContentView() + .environment(\.managedObjectContext, persistenceController.container.viewContext) + } + } +} diff --git a/MonsterCards/Persistence.swift b/MonsterCards/Persistence.swift new file mode 100644 index 0000000..b55fb61 --- /dev/null +++ b/MonsterCards/Persistence.swift @@ -0,0 +1,58 @@ +// +// Persistence.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import CoreData + +struct PersistenceController { + static let shared = PersistenceController() + + static var preview: PersistenceController = { + let result = PersistenceController(inMemory: true) + let viewContext = result.container.viewContext + let monsters: [Monster] = [ + Monster(context:viewContext, name: "Ted", size: "Huge", type: "humanoid", subtype: "any race", alignment: "any alignment"), + Monster(context:viewContext, name: "Steve", size: "Huge", type: "humanoid", subtype: "any race", alignment: "any alignment"), + Monster(context:viewContext, name: "Dave", size: "Huge", type: "humanoid", subtype: "any race", alignment: "any alignment") + ] + do { + try viewContext.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nsError = error as NSError +// fatalError("TOMHICKS_Unresolved error \(nsError), \(nsError.userInfo)") + } + return result + }() + + let container: NSPersistentCloudKitContainer + + init(inMemory: Bool = false) { + container = NSPersistentCloudKitContainer(name: "MonsterCards") + if inMemory { + container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") + } + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + +// NSPersistentStoreCoordinator.destroyPersistentStore(storeDes) + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + } +} diff --git a/MonsterCards/Preview Content/Preview Assets.xcassets/Contents.json b/MonsterCards/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/MonsterCards/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonsterCards/SceneDelegate.h b/MonsterCards/SceneDelegate.h deleted file mode 100644 index 267ed02..0000000 --- a/MonsterCards/SceneDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// SceneDelegate.h -// MonsterCards -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -@interface SceneDelegate : UIResponder - -@property (strong, nonatomic) UIWindow * window; - -@end - diff --git a/MonsterCards/SceneDelegate.m b/MonsterCards/SceneDelegate.m deleted file mode 100644 index 5822c42..0000000 --- a/MonsterCards/SceneDelegate.m +++ /dev/null @@ -1,62 +0,0 @@ -// -// SceneDelegate.m -// MonsterCards -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "SceneDelegate.h" -#import "AppDelegate.h" - -@interface SceneDelegate () - -@end - -@implementation SceneDelegate - - -- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). -} - - -- (void)sceneDidDisconnect:(UIScene *)scene { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). -} - - -- (void)sceneDidBecomeActive:(UIScene *)scene { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. -} - - -- (void)sceneWillResignActive:(UIScene *)scene { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). -} - - -- (void)sceneWillEnterForeground:(UIScene *)scene { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. -} - - -- (void)sceneDidEnterBackground:(UIScene *)scene { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - - // Save changes in the application's managed object context when the application transitions to the background. - [(AppDelegate *)UIApplication.sharedApplication.delegate saveContext]; -} - - -@end diff --git a/MonsterCards/Views/Collections.swift b/MonsterCards/Views/Collections.swift new file mode 100644 index 0000000..d8c9094 --- /dev/null +++ b/MonsterCards/Views/Collections.swift @@ -0,0 +1,21 @@ +// +// Collections.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +struct Collections: View { +// @State var allCollections: [MonsterCollection] = [] + var body: some View { + Text("Collections") + } +} + +struct Collections_Previews: PreviewProvider { + static var previews: some View { + Collections().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + } +} diff --git a/MonsterCards/Views/CollectionsViewController.h b/MonsterCards/Views/CollectionsViewController.h deleted file mode 100644 index 065f296..0000000 --- a/MonsterCards/Views/CollectionsViewController.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// CollectionsViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface CollectionsViewController : UIViewController - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/CollectionsViewController.m b/MonsterCards/Views/CollectionsViewController.m deleted file mode 100644 index 1b89b26..0000000 --- a/MonsterCards/Views/CollectionsViewController.m +++ /dev/null @@ -1,32 +0,0 @@ -// -// CollectionsViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "CollectionsViewController.h" - -@interface CollectionsViewController () - -@end - -@implementation CollectionsViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -@end diff --git a/MonsterCards/Views/ContentView.swift b/MonsterCards/Views/ContentView.swift new file mode 100644 index 0000000..09e1fa6 --- /dev/null +++ b/MonsterCards/Views/ContentView.swift @@ -0,0 +1,106 @@ +// +// ContentView.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI +import CoreData + +struct ContentView: View { + @Environment(\.managedObjectContext) private var viewContext + + var body: some View { + TabView { + Search() + .tabItem { + Image(systemName: "magnifyingglass") + Text("Search") + } + Dashboard() + .tabItem { + Image(systemName: "rectangle.3.offgrid.fill") + Text("Dashboard") + + } + Collections() + .tabItem { + Image(systemName: "tray.full.fill") + Text("Collections") + } + Library() + .tabItem { + Image(systemName: "book.fill") + Text("Library") + } + } + } + +// @FetchRequest( +// sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)], +// animation: .default) +// private var items: FetchedResults +// +// var body: some View { +// List { +// ForEach(items) { item in +// Text("Item at \(item.timestamp!, formatter: itemFormatter)") +// } +// .onDelete(perform: deleteItems) +// } +// .toolbar { +// #if os(iOS) +// EditButton() +// #endif +// +// Button(action: addItem) { +// Label("Add Item", systemImage: "plus") +// } +// } +// } +// +// private func addItem() { +// withAnimation { +// let newItem = Item(context: viewContext) +// newItem.timestamp = Date() +// +// do { +// try viewContext.save() +// } catch { +// // Replace this implementation with code to handle the error appropriately. +// // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. +// let nsError = error as NSError +// fatalError("Unresolved error \(nsError), \(nsError.userInfo)") +// } +// } +// } +// +// private func deleteItems(offsets: IndexSet) { +// withAnimation { +// offsets.map { items[$0] }.forEach(viewContext.delete) +// +// do { +// try viewContext.save() +// } catch { +// // Replace this implementation with code to handle the error appropriately. +// // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. +// let nsError = error as NSError +// fatalError("Unresolved error \(nsError), \(nsError.userInfo)") +// } +// } +// } +} + +//private let itemFormatter: DateFormatter = { +// let formatter = DateFormatter() +// formatter.dateStyle = .short +// formatter.timeStyle = .medium +// return formatter +//}() + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + } +} diff --git a/MonsterCards/Views/Dashboard.swift b/MonsterCards/Views/Dashboard.swift new file mode 100644 index 0000000..b567cc4 --- /dev/null +++ b/MonsterCards/Views/Dashboard.swift @@ -0,0 +1,20 @@ +// +// Dashboard.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +struct Dashboard: View { + var body: some View { + Text("Dashboard") + } +} + +struct Dashboard_Previews: PreviewProvider { + static var previews: some View { + Dashboard().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + } +} diff --git a/MonsterCards/Views/DashboardViewController.h b/MonsterCards/Views/DashboardViewController.h deleted file mode 100644 index 26ce296..0000000 --- a/MonsterCards/Views/DashboardViewController.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// DashboardViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface DashboardViewController : UIViewController - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/DashboardViewController.m b/MonsterCards/Views/DashboardViewController.m deleted file mode 100644 index a069e29..0000000 --- a/MonsterCards/Views/DashboardViewController.m +++ /dev/null @@ -1,32 +0,0 @@ -// -// DashboardViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "DashboardViewController.h" - -@interface DashboardViewController () - -@end - -@implementation DashboardViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -@end diff --git a/MonsterCards/Views/EditMonster.swift b/MonsterCards/Views/EditMonster.swift new file mode 100644 index 0000000..3f0dc72 --- /dev/null +++ b/MonsterCards/Views/EditMonster.swift @@ -0,0 +1,425 @@ +// +// EditMonster.swift +// MonsterCards +// +// Created by Tom Hicks on 1/16/21. +// + +import CoreData +import SwiftUI + +struct EditMonster: View { + // TODO: add challengeRating/challengeRatingEnum and customChallengeRating maybe in basicInfo + @Environment(\.presentationMode) var presentationMode: Binding + @Environment(\.managedObjectContext) private var viewContext + + var monster: Monster + + @State private var monsterName: String = "" + @State private var monsterSize: String = "" + @State private var monsterType: String = "" + @State private var monsterSubtype: String = "" + @State private var monsterAlignment: String = "" + @State private var monsterHitDice: Int64 = 0 + @State private var monsterHasCustomHP: Bool = false + @State private var monsterCustomHP: String = "" + @State private var monsterArmorType: String = "" + @State private var monsterHasShield: Bool = false + @State private var monsterNaturalArmorBonus: Int64 = 0 + @State private var monsterCustomArmor: String = "" + @State private var monsterBaseSpeed: Int64 = 0 + @State private var monsterBurrowSpeed: Int64 = 0 + @State private var monsterClimbSpeed: Int64 = 0 + @State private var monsterFlySpeed: Int64 = 0 + @State private var monsterCanHover: Bool = false + @State private var monsterSwimSpeed: Int64 = 0 + @State private var monsterHasCustomSpeed: Bool = false + @State private var monsterCustomSpeed: String = "" + @State private var monsterStrengthScore: Int64 = 10 + @State private var monsterDexterityScore: Int64 = 10 + @State private var monsterConstitutionScore: Int64 = 10 + @State private var monsterIntelligenceScore: Int64 = 10 + @State private var monsterWisdomScore: Int64 = 10 + @State private var monsterCharismaScore: Int64 = 10 + + @State private var monsterStrengthSavingThrowProficiency: ProficiencyType = .none + @State private var monsterStrengthSavingThrowAdvantage: AdvantageType = .none + @State private var monsterDexteritySavingThrowProficiency: ProficiencyType = .none + @State private var monsterDexteritySavingThrowAdvantage: AdvantageType = .none + @State private var monsterConstitutionSavingThrowProficiency: ProficiencyType = .none + @State private var monsterConstitutionSavingThrowAdvantage: AdvantageType = .none + @State private var monsterIntelligenceSavingThrowProficiency: ProficiencyType = .none + @State private var monsterIntelligenceSavingThrowAdvantage: AdvantageType = .none + @State private var monsterWisdomSavingThrowProficiency: ProficiencyType = .none + @State private var monsterWisdomSavingThrowAdvantage: AdvantageType = .none + @State private var monsterCharismaSavingThrowProficiency: ProficiencyType = .none + @State private var monsterCharismaSavingThrowAdvantage: AdvantageType = .none + + + var body: some View { + List { + Section(header: Text("Basic Info")) { + // Editable Text field bound to monster.name + MCTextField( + label: "Name", + value: $monsterName) + + // Editable Text field bound to monster.size + MCTextField( + label: "Size", + value: $monsterSize) + + // Editable Text field bound to monster.type + MCTextField( + label: "Type", + value: $monsterType) + + // Editable Text field bound to monster.subType + MCTextField( + label: "Subtype", + value: $monsterSubtype) + + // Editable Text field bound to monster.alignment + MCTextField( + label: "Alignment", + value: $monsterAlignment) + + // Number with -/+ buttons bound to monster.hitDice + MCStepperField( + label: "Hit Dice", + value: $monsterHitDice) + + // Toggle bound to monster.hasCustomHP? + Toggle( + "Has Custom HP", + isOn:$monsterHasCustomHP) + + // Editable Text field bound to monster.customHpText? + MCTextField( + label: "Custom HP", + value: $monsterCustomHP) + + } + .textCase(nil) + + Section(header: Text("Armor")) { + // Armor Type select bound to monster.armorType? + // TODO: this should be a select/dropdown + MCTextField( + label: "Armor Type", + value: $monsterArmorType) + + // Toggle bound to monster.hasShield? + Toggle( + "Has Shield", + isOn: $monsterHasShield) + + // Number with -/+ buttons bound to monster.naturalArmorBonus + MCStepperField( + label: "Natural Armor Bonus", + value: $monsterNaturalArmorBonus) + + // Editable Text field bound to monster.customArmorText? + MCTextField( + label: "Custom Armor", + value: $monsterCustomArmor) + + } + .textCase(nil) + + Section(header: Text("Speed")) { + // Number bound to monster.baseSpeed + MCStepperField( + label: "Base", + step: 5, + suffix: " ft.", + value: $monsterBaseSpeed) + + // Number bound to monster.burrowSpeed + MCStepperField( + label: "Burrow", + step: 5, + suffix: " ft.", + value: $monsterBurrowSpeed) + + // Number bound to monster.climbSpeed + MCStepperField( + label: "Climb", + step: 5, + suffix: " ft.", + value: $monsterClimbSpeed) + + // Number bound to monster.flySpeed + MCStepperField( + label: "Fly", + step: 5, + suffix: " ft.", + value: $monsterFlySpeed) + + // Toggle bound to monster.canHover + Toggle( + "Can Hover", + isOn: $monsterCanHover) + + // Number bound to monster.swimSpeed + MCStepperField( + label: "Swim", + step: 5, + suffix: " ft.", + value: $monsterSwimSpeed) + + // Toggle bound to monster.hasCustomSpeed + Toggle( + "Has Custom Speed", + isOn: $monsterHasCustomSpeed) + + // Editable Text field bound to monster.customSpeedText + MCTextField( + label: "Custom Speed", + value: $monsterCustomSpeed) + } + .textCase(nil) + + Section(header: Text("Ability Scores")) { + MCStepperField( + label: "STR", + value: $monsterStrengthScore) + MCStepperField( + label: "DEX", + value: $monsterDexterityScore) + MCStepperField( + label: "CON", + value: $monsterConstitutionScore) + MCStepperField( + label: "INT", + value: $monsterIntelligenceScore) + MCStepperField( + label: "WIS", + value: $monsterWisdomScore) + MCStepperField( + label: "CHA", + value: $monsterCharismaScore) + } + .textCase(nil) + + Section(header: Text("Saving Throws")) { + VStack { + MCAdvantagePicker( + label: "Strength Advantage", + value: $monsterStrengthSavingThrowAdvantage) + + MCProficiencyPicker( + label: "Strength Proficiency", + value: $monsterStrengthSavingThrowProficiency) + } + VStack { + MCAdvantagePicker( + label: "Dexterity Advantage", + value: $monsterDexteritySavingThrowAdvantage) + + MCProficiencyPicker( + label: "Dexterity Proficiency", + value: $monsterDexteritySavingThrowProficiency) + } + VStack { + MCAdvantagePicker( + label: "Constitution Advantage", + value: $monsterConstitutionSavingThrowAdvantage) + + MCProficiencyPicker( + label: "Constitution Proficiency", + value: $monsterConstitutionSavingThrowProficiency) + } + VStack { + MCAdvantagePicker( + label: "Intelligence Advantage", + value: $monsterIntelligenceSavingThrowAdvantage) + + MCProficiencyPicker( + label: "Intelligence Proficiency", + value: $monsterIntelligenceSavingThrowProficiency) + } + VStack { + MCAdvantagePicker( + label: "Wisdom Advantage", + value: $monsterWisdomSavingThrowAdvantage) + + MCProficiencyPicker( + label: "Wisdom Proficiency", + value: $monsterWisdomSavingThrowProficiency) + } + VStack { + MCAdvantagePicker( + label: "Charisma Advantage", + value: $monsterCharismaSavingThrowAdvantage) + + MCProficiencyPicker( + label: "Charisma Proficiency", + value: $monsterCharismaSavingThrowProficiency) + } + } + .textCase(nil) + } + .onAppear(perform: copyMonsterToLocal) + .toolbar(content: { + ToolbarItem(placement: .primaryAction) { + Button("Save", action: saveMonster) + } + ToolbarItem(placement: ToolbarItemPlacement.cancellationAction) { + Button("Cancel", action: cancel) + } + }) + .navigationTitle(monster.name ?? "") + .navigationBarTitleDisplayMode(.inline) + .navigationBarBackButtonHidden(true) + } + + private func dismissView() { + self.presentationMode.wrappedValue.dismiss() + } + + private func saveMonster() { + copyLocalToMonster() + + do { + try viewContext.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nsError = error as NSError + fatalError("Unresolved error \(nsError), \(nsError.userInfo)") + } + // TODO: save coredata context + dismissView() + } + + private func cancel() { + dismissView() + } + + private func copyMonsterToLocal() { + monsterName = monster.name ?? "" + monsterSize = monster.size ?? "" + monsterType = monster.type ?? "" + monsterSubtype = monster.subtype ?? "" + monsterAlignment = monster.alignment ?? "" + monsterHitDice = monster.hitDice + monsterHasCustomHP = monster.hasCustomHP + monsterCustomHP = monster.customHP ?? "" + monsterArmorType = monster.armorType ?? "" + monsterHasShield = monster.hasShield + monsterNaturalArmorBonus = monster.naturalArmorBonus + monsterCustomArmor = monster.customArmor ?? "" + monsterBaseSpeed = monster.baseSpeed + monsterBurrowSpeed = monster.burrowSpeed + monsterClimbSpeed = monster.climbSpeed + monsterFlySpeed = monster.flySpeed + monsterCanHover = monster.canHover + monsterSwimSpeed = monster.swimSpeed + monsterHasCustomSpeed = monster.hasCustomSpeed + monsterCustomSpeed = monster.customSpeed ?? "" + monsterStrengthScore = monster.strengthScore + monsterDexterityScore = monster.dexterityScore + monsterConstitutionScore = monster.constitutionScore + monsterIntelligenceScore = monster.intelligenceScore + monsterWisdomScore = monster.wisdomScore + monsterCharismaScore = monster.charismaScore + monsterStrengthSavingThrowProficiency = ProficiencyType.init(rawValue: monster.strengthSavingThrowProficiency ?? "") ?? .none + monsterStrengthSavingThrowAdvantage = AdvantageType(rawValue: monster.strengthSavingThrowAdvantage ?? "") ?? .none + monsterDexteritySavingThrowProficiency = ProficiencyType(rawValue: monster.dexteritySavingThrowProficiency ?? "") ?? .none + monsterDexteritySavingThrowAdvantage = AdvantageType(rawValue: monster.dexteritySavingThrowAdvantage ?? "") ?? .none + monsterConstitutionSavingThrowProficiency = ProficiencyType(rawValue: monster.constitutionSavingThrowProficiency ?? "") ?? .none + monsterConstitutionSavingThrowAdvantage = AdvantageType(rawValue: monster.constitutionSavingThrowAdvantage ?? "") ?? .none + monsterIntelligenceSavingThrowProficiency = ProficiencyType(rawValue: monster.intelligenceSavingThrowProficiency ?? "") ?? .none + monsterIntelligenceSavingThrowAdvantage = AdvantageType(rawValue: monster.intelligenceSavingThrowAdvantage ?? "") ?? .none + monsterWisdomSavingThrowProficiency = ProficiencyType(rawValue: monster.wisdomSavingThrowProficiency ?? "") ?? .none + monsterWisdomSavingThrowAdvantage = AdvantageType(rawValue: monster.wisdomSavingThrowAdvantage ?? "") ?? .none + monsterCharismaSavingThrowProficiency = ProficiencyType(rawValue: monster.charismaSavingThrowProficiency ?? "") ?? .none + monsterCharismaSavingThrowAdvantage = AdvantageType(rawValue: monster.charismaSavingThrowAdvantage ?? "") ?? .none + } + + private func copyLocalToMonster() { + monster.name = monsterName + monster.size = monsterSize + monster.type = monsterType + monster.subtype = monsterSubtype + monster.alignment = monsterAlignment + monster.hitDice = monsterHitDice + monster.hasCustomHP = monsterHasCustomHP + monster.customHP = monsterCustomHP + monster.armorType = monsterArmorType + monster.hasShield = monsterHasShield + monster.naturalArmorBonus = monsterNaturalArmorBonus + monster.customArmor = monsterCustomArmor + monster.baseSpeed = monsterBaseSpeed + monster.burrowSpeed = monsterBurrowSpeed + monster.climbSpeed = monsterClimbSpeed + monster.flySpeed = monsterFlySpeed + monster.canHover = monsterCanHover + monster.swimSpeed = monsterSwimSpeed + monster.hasCustomSpeed = monsterHasCustomSpeed + monster.customSpeed = monsterCustomSpeed + monster.strengthScore = monsterStrengthScore + monster.dexterityScore = monsterDexterityScore + monster.constitutionScore = monsterConstitutionScore + monster.intelligenceScore = monsterIntelligenceScore + monster.wisdomScore = monsterWisdomScore + monster.charismaScore = monsterCharismaScore + monster.strengthSavingThrowProficiency = monsterStrengthSavingThrowProficiency.rawValue + monster.strengthSavingThrowAdvantage = monsterStrengthSavingThrowAdvantage.rawValue + monster.dexteritySavingThrowProficiency = monsterDexteritySavingThrowProficiency.rawValue + monster.dexteritySavingThrowAdvantage = monsterDexteritySavingThrowAdvantage.rawValue + monster.constitutionSavingThrowProficiency = monsterConstitutionSavingThrowProficiency.rawValue + monster.constitutionSavingThrowAdvantage = monsterConstitutionSavingThrowAdvantage.rawValue + monster.intelligenceSavingThrowProficiency = monsterIntelligenceSavingThrowProficiency.rawValue + monster.intelligenceSavingThrowAdvantage = monsterIntelligenceSavingThrowAdvantage.rawValue + monster.wisdomSavingThrowProficiency = monsterWisdomSavingThrowProficiency.rawValue + monster.wisdomSavingThrowAdvantage = monsterWisdomSavingThrowAdvantage.rawValue + monster.charismaSavingThrowProficiency = monsterCharismaSavingThrowProficiency.rawValue + monster.charismaSavingThrowAdvantage = monsterCharismaSavingThrowAdvantage.rawValue + } +} + +struct EditMonster_Previews: PreviewProvider { + static var previews: some View { + let context = PersistenceController.preview.container.viewContext + let monster = Monster.init(context: context) + + monster.name = "Steve" + monster.size = "Medium" + monster.type = "humanoid" + monster.subtype = "human" + monster.alignment = "LG" + monster.hitDice = 6 + monster.hasCustomHP = true + monster.customHP = "12 (1d10)+2" + monster.baseSpeed = 5 + monster.burrowSpeed = 10 + monster.climbSpeed = 15 + monster.flySpeed = 20 + monster.swimSpeed = 25 + monster.canHover = true + monster.hasCustomSpeed = false + monster.customSpeed = "walk: 5 ft." + monster.strengthScore = 8 + monster.dexterityScore = 10 + monster.constitutionScore = 12 + monster.intelligenceScore = 14 + monster.wisdomScore = 16 + monster.charismaScore = 18 + monster.strengthSavingThrowAdvantage = AdvantageType.none.rawValue + monster.strengthSavingThrowProficiency = ProficiencyType.none.rawValue + monster.dexteritySavingThrowAdvantage = AdvantageType.advantage.rawValue + monster.dexteritySavingThrowProficiency = ProficiencyType.proficient.rawValue + monster.constitutionSavingThrowAdvantage = AdvantageType.disadvantage.rawValue + monster.constitutionSavingThrowProficiency = ProficiencyType.expertise.rawValue + monster.intelligenceSavingThrowAdvantage = AdvantageType.none.rawValue + monster.intelligenceSavingThrowProficiency = ProficiencyType.expertise.rawValue + monster.wisdomSavingThrowAdvantage = AdvantageType.advantage.rawValue + monster.wisdomSavingThrowProficiency = ProficiencyType.proficient.rawValue + monster.charismaSavingThrowAdvantage = AdvantageType.disadvantage.rawValue + monster.charismaSavingThrowProficiency = ProficiencyType.none.rawValue + + return EditMonster(monster: monster).environment(\.managedObjectContext, context) + } +} diff --git a/MonsterCards/Views/EditMonsterViewController.h b/MonsterCards/Views/EditMonsterViewController.h deleted file mode 100644 index 2e2496a..0000000 --- a/MonsterCards/Views/EditMonsterViewController.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// EditMonsterViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/8/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Monster.h" -#import "MCShortStringFieldTableViewCell.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface EditMonsterViewController : UIViewController - -@property Monster* originalMonster; -@property (weak, nonatomic) IBOutlet UITableView *monsterTableView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/EditMonsterViewController.m b/MonsterCards/Views/EditMonsterViewController.m deleted file mode 100644 index bb90299..0000000 --- a/MonsterCards/Views/EditMonsterViewController.m +++ /dev/null @@ -1,719 +0,0 @@ -// -// EditMonsterViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/8/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "EditMonsterViewController.h" -#import "MCBooleanFieldTableViewCell.h" -#import "MCIntegerFieldTableViewCell.h" -#import "MCRadioFieldTableViewCell.h" -#import "MCSelectFieldTableViewCell.h" -#import "MCShortStringFieldTableViewCell.h" -#import "AppDelegate.h" - -@interface EditMonsterViewController () - -@property Monster* editingMonster; - -@end - -const int kSectionIndexBasicInfo = 0; -const int kSectionIndexArmor = 1; -const int kSectionIndexSpeed = 2; -const int kSectionIndexAbilityScores = 3; -const int kSectionIndexSavingThrows = 4; - -const int kBasicInfoSectionRowIndexName = 0; -const int kBasicInfoSectionRowIndexSize = 1; -const int kBasicInfoSectionRowIndexType = 2; -const int kBasicInfoSectionRowIndexSubtype = 3; -const int kBasicInfoSectionRowIndexAlignment = 4; -const int kBasicInfoSectionRowIndexHitDice = 5; -const int kBasicInfoSectionRowIndexCustomHP = 6; -const int kBasicInfoSectionRowIndexCustomHPText = 7; - -const int kArmorSectionRowIndexArmorType = 0; -const int kArmorSectionRowIndexHasShield = 1; -const int kArmorSectionRowIndexNaturalArmorBonus = 2; -const int kArmorSectionRowIndexCustomArmor = 3; - -const int kSpeedSectionRowIndexBaseSpeed = 0; -const int kSpeedSectionRowIndexBurrowSpeed = 1; -const int kSpeedSectionRowIndexClimbSpeed = 2; -const int kSpeedSectionRowIndexFlySpeed = 3; -const int kSpeedSectionRowIndexCanHover = 4; -const int kSpeedSectionRowIndexSwimSpeed = 5; -const int kSpeedSectionRowIndexHasCustomSpeed = 6; -const int kSpeedSectionRowIndexCustomSpeed = 7; - -const int kAbilityScoreSectionRowIndexStrength = 0; -const int kAbilityScoreSectionRowIndexDexterity = 1; -const int kAbilityScoreSectionRowIndexConstitution = 2; -const int kAbilityScoreSectionRowIndexIntelligence = 3; -const int kAbilityScoreSectionRowIndexWisdom = 4; -const int kAbilityScoreSectionRowIndexCharisma = 5; - -const int kSavingThrowsSectionRowIndexStrengthProficiency = 0; -const int kSavingThrowsSectionRowIndexStrengthAdvantage = 1; -const int kSavingThrowsSectionRowIndexDexterityProficiency = 2; -const int kSavingThrowsSectionRowIndexDexterityAdvantage = 3; -const int kSavingThrowsSectionRowIndexConstitutionProficiency = 4; -const int kSavingThrowsSectionRowIndexConstitutionAdvantage = 5; -const int kSavingThrowsSectionRowIndexIntelligenceProficiency = 6; -const int kSavingThrowsSectionRowIndexIntelligenceAdvantage = 7; -const int kSavingThrowsSectionRowIndexWisdomProficiency = 8; -const int kSavingThrowsSectionRowIndexWisdomAdvantage = 9; -const int kSavingThrowsSectionRowIndexCharismaProficiency = 10; -const int kSavingThrowsSectionRowIndexCharismaAdvantage = 11; - -NSString *const kIdentifierName = @"monster.name"; -NSString *const kIdentifierSize = @"monster.size"; -NSString *const kIdentifierType = @"monster.type"; -NSString *const kIdentifierSubtype = @"monster.subtype"; -NSString *const kIdentifierAlignment = @"monster.alignment"; -NSString *const kIdentifierCustomHP = @"monster.customHPText"; -NSString *const kIdentifierCustomSpeed = @"monster.customSpeed"; -NSString *const kIdentifierCustomArmor = @"monster.customArmor"; -NSString *const kIdentifierStrengthScore = @"monster.strengthScore"; -NSString *const kIdentiferDexterityScore = @"monster.dexterityScore"; -NSString *const kIdentifierConstitutionScore = @"monster.constitutionScore"; -NSString *const kIdentifierIntelligenceScore = @"monster.intelligenceScore"; -NSString *const kIdentifierWisdomScore = @"monster.wisdomScore"; -NSString *const kIdentifierCharismaScore = @"monster.charismaScore"; -NSString *const kIdentifierHitDice = @"monster.hitDice"; -NSString *const kIdentifierBaseSpeed = @"monster.baseSpeed"; -NSString *const kIdentifierBurrowSpeed = @"monster.burrowSpeed"; -NSString *const kIdentifierClimbSpeed = @"monster.climbSpeed"; -NSString *const kIdentifierFlySpeed = @"monster.flySpeed"; -NSString *const kIdentifierSwimSpeed = @"monster.swimSpeed"; -NSString *const kIdentifierNaturalArmorBonus = @"monster.naturalArmorBonus"; -NSString *const kIdentifierHasCustomHP = @"monster.customHP"; -NSString *const kIdentifierCanHover = @"monster.canHover"; -NSString *const kIdentifierHasCustomSpeed = @"monster.hasCustomSpeed"; -NSString *const kIdentifierHasShield = @"monster.hasShield"; -NSString *const kIdentifierArmorType = @"monster.armorType"; -NSString *const kIdentifierStrengthSavingThrowAdvantage = @"monster.savingThrows.strength.advantage"; -NSString *const kIdentifierStrengthSavingThrowProficiency = @"monster.savingThrows.strength.proficiency"; -NSString *const kIdentifierDexteritySavingThrowAdvantage = @"monster.savingThrows.dexterity.advantage"; -NSString *const kIdentifierDexteritySavingThrowProficiency = @"monster.savingThrows.dexterity.proficiency"; -NSString *const kIdentifierConstitutionSavingThrowAdvantage = @"monster.savingThrows.constitution.advantage"; -NSString *const kIdentifierConstitutionSavingThrowProficiency = @"monster.savingThrows.constitution.proficiency"; -NSString *const kIdentifierIntelligenceSavingThrowAdvantage = @"monster.savingThrows.intelligence.advantage"; -NSString *const kIdentifierIntelligenceSavingThrowProficiency = @"monster.savingThrows.intelligence.proficiency"; -NSString *const kIdentifierWisdomSavingThrowAdvantage = @"monster.savingThrows.wisdom.advantage"; -NSString *const kIdentifierWisdomSavingThrowProficiency = @"monster.savingThrows.wisdom.proficiency"; -NSString *const kIdentifierCharismaSavingThrowAdvantage = @"monster.savingThrows.charisma.advantage"; -NSString *const kIdentifierCharismaSavingThrowProficiency = @"monster.savingThrows.charisma.proficiency"; - -@implementation EditMonsterViewController { - NSManagedObjectContext *_context; - NSArray* _armorTypes; - NSArray* _proficiencyTypes; - NSArray* _advantageTypes; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - AppDelegate *appDelegate = (AppDelegate*)UIApplication.sharedApplication.delegate; - _context = appDelegate.persistentContainer.viewContext; - - _armorTypes = [NSArray arrayWithObjects: - [MCChoice choiceWithLabel:NSLocalizedString(@"None", @"") - andValue:kArmorNameNone], - [MCChoice choiceWithLabel:NSLocalizedString(@"Natural Armor", @"") - andValue:kArmorNameNaturalArmor], - [MCChoice choiceWithLabel:NSLocalizedString(@"Mage Armor", @"") - andValue:kArmorNameMageArmor], - [MCChoice choiceWithLabel:NSLocalizedString(@"Padded", @"") - andValue:kArmorNamePadded], - [MCChoice choiceWithLabel:NSLocalizedString(@"Leather", @"") - andValue:kArmorNameLeather], - [MCChoice choiceWithLabel:NSLocalizedString(@"Studded", @"") - andValue:kArmorNameStuddedLeather], - [MCChoice choiceWithLabel:NSLocalizedString(@"Hide", @"") - andValue:kArmorNameHide], - [MCChoice choiceWithLabel:NSLocalizedString(@"Chain Shirt", @"") - andValue:kArmorNameChainShirt], - [MCChoice choiceWithLabel:NSLocalizedString(@"Scale Mail", @"") - andValue:kArmorNameScaleMail], - [MCChoice choiceWithLabel:NSLocalizedString(@"Breastplate", @"") - andValue:kArmorNameBreastplate], - [MCChoice choiceWithLabel:NSLocalizedString(@"Half Plate", @"") - andValue:kArmorNameHalfPlate], - [MCChoice choiceWithLabel:NSLocalizedString(@"Ring Mail", @"") - andValue:kArmorNameRingMail], - [MCChoice choiceWithLabel:NSLocalizedString(@"Chain Mail", @"") - andValue:kArmorNameChainMail], - [MCChoice choiceWithLabel:NSLocalizedString(@"Splint", @"") - andValue:kArmorNameSplintMail], - [MCChoice choiceWithLabel:NSLocalizedString(@"Plate", @"") - andValue:kArmorNamePlateMail], - [MCChoice choiceWithLabel:NSLocalizedString(@"Other", @"") - andValue:kArmorNameOther], - nil]; - _proficiencyTypes = [NSArray arrayWithObjects: - [MCChoice choiceWithLabel:NSLocalizedString(@"None", @"") - andValue:kProficiencyTypeNone], - [MCChoice choiceWithLabel:NSLocalizedString(@"Proficient", @"") - andValue:kProficiencyTypeProficient], - [MCChoice choiceWithLabel:NSLocalizedString(@"Expertise", @"") - andValue:kProficiencyTypeExpertise], - nil]; - _advantageTypes = [NSArray arrayWithObjects: - [MCChoice choiceWithLabel:NSLocalizedString(@"None", @"") - andValue:kAdvantageTypeNone], - [MCChoice choiceWithLabel:NSLocalizedString(@"Advantage", @"") - andValue:kAdvantageTypeAdvantage], - [MCChoice choiceWithLabel:NSLocalizedString(@"Disadvantage", @"") - andValue:kAdvantageTypeDisadvantage], - nil]; - - self.monsterTableView.allowsSelection = NO; - self.monsterTableView.allowsSelectionDuringEditing = NO; - self.monsterTableView.dataSource = self; - self.monsterTableView.delegate = self; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - self.editingMonster = [[Monster alloc] initWithMonster:self.originalMonster]; -} - -- (UITableViewCell*) makeSafeCell { -#if DEBUG - return nil; -#else - return [[UITableViewCell alloc] init]; -#endif -} - -- (MCShortStringFieldTableViewCell*) makeShortStringCellFromTableView:(UITableView*)tableView - withIdentifier:(NSString*)identifier - label:(NSString*)label - andInitialValue:(NSString*)initialValue { - MCShortStringFieldTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCShortStringField"]; - if (!cell || ![cell isKindOfClass:[MCShortStringFieldTableViewCell class]]) { - return nil; - } - cell.delegate = self; - cell.identifier = identifier; - cell.label = label; - cell.value = initialValue; - - // TODO: move these to better properties on MCShortStringFieldTableViewCell they should be stored via label and initialValue/value. - cell.textField.text = initialValue; - cell.textField.placeholder = label; - - return cell; -} - -- (MCIntegerFieldTableViewCell*) makeIntegerCellFromTableView:(UITableView*)tableView - withIdentifier:(NSString*)identifier - label:(NSString*)label - andInitialValue:(int)initialValue { - MCIntegerFieldTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCIntegerField"]; - if (!cell || ![cell isKindOfClass:[MCIntegerFieldTableViewCell class]]) { - return nil; - } - cell.delegate = self; - cell.identifier = identifier; - cell.label = label; - cell.value = initialValue; - - return cell; -} - -- (MCBooleanFieldTableViewCell*) makeBooleanCellFromTableView:(UITableView*)tableView - withIdentifier:(NSString*)identifier - label:(NSString*)label - andInitialValue:(BOOL)initialValue { - MCBooleanFieldTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCBooleanField"]; - if (!cell || ![cell isKindOfClass:[MCBooleanFieldTableViewCell class]]) { - return nil; - } - cell.delegate = self; - cell.identifier = identifier; - cell.label = label; - cell.value = initialValue; - - return cell; -} - -- (MCSelectFieldTableViewCell*) makeSelectCellFromTableView:(UITableView*)tableView - withIdentifier:(NSString*)identifier - label:(NSString*)label - initialValue:(NSObject*)initialValue - andChoices:(NSArray*)choices { - MCSelectFieldTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCSelectField"]; - if (!cell || ![cell isKindOfClass:[MCSelectFieldTableViewCell class]]) { - return nil; - } - cell.delegate = self; - cell.identifier = identifier; - cell.label = label; - cell.selectedValue = initialValue; - cell.choices = choices; - - return cell; -} - -- (MCRadioFieldTableViewCell*) makeRadioCellFromTableView:(UITableView*)tableView - withIdentifier:(NSString*)identifier - label:(NSString*)label - initialValue:(NSObject*)initialValue - andChoices:(NSArray*)choices { - MCRadioFieldTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCRadioField"]; - if (!cell || ![cell isKindOfClass:[MCRadioFieldTableViewCell class]]) { - return nil; - } - cell.delegate = self; - cell.identifier = identifier; - cell.label = label; - // TODO: possibly swap these two - cell.selectedValue = initialValue; - cell.choices = choices; - - return cell; -} - -#pragma mark - Navigation - -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - if ([@"DiscardChanges" isEqualToString:segue.identifier]) { - [_context rollback]; - } else if ([@"SaveChanges" isEqualToString:segue.identifier]) { - // TODO: this should use a method on originalMonster to copy values from editingMonster or pass the new monster back some way. Core Data would save and probably trigger a refresh in the receiving view. - [self.originalMonster copyFromMonster:self.editingMonster]; - [_context refreshObject:self.editingMonster mergeChanges:NO]; - [_context save:nil]; - } else { - NSLog(@"Unknown Segue %@", segue.identifier); - } -} - -#pragma mark - UITableViewDataSource - -- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { - switch(section) { - case kSectionIndexBasicInfo: - // Section 0 is basic info - // * Name - // * Size - // * Type - // * Subtype - // * Alignment - return 8; - case kSectionIndexArmor: - return 4; - case kSectionIndexSpeed: - return 8; - case kSectionIndexAbilityScores: - return 6; - case kSectionIndexSavingThrows: - return 12; // 12 - default: - return 0; - } -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView -{ - return 5; -} - -- (NSString *)tableView:(UITableView *)tableView -titleForHeaderInSection:(NSInteger)section { - switch(section) { - case kSectionIndexBasicInfo: - return NSLocalizedString(@"Basic Info", @"Section title"); - case kSectionIndexArmor: - return NSLocalizedString(@"Armor", @"Section title"); - case kSectionIndexSpeed: - return NSLocalizedString(@"Speed", @"Section title"); - case kSectionIndexAbilityScores: - return NSLocalizedString(@"Ability Scores", @"Section title"); - case kSectionIndexSavingThrows: - return NSLocalizedString(@"Saving Throws", @"Section title"); - default: - return nil; - } -} - -- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { - - UITableViewCell *newCell = nil; - - switch (indexPath.section) { - case kSectionIndexBasicInfo: - switch (indexPath.row) { - case kBasicInfoSectionRowIndexName: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierName - label:NSLocalizedString(@"Name", @"Placeholder text for the name of a monster or NPC.") - andInitialValue:self.editingMonster.name]; - break; - case kBasicInfoSectionRowIndexSize: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierSize - label:NSLocalizedString(@"Size", @"Placehodler text for the size of a monster or NPC.") - andInitialValue:self.editingMonster.size]; - break; - case kBasicInfoSectionRowIndexType: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierType - label:NSLocalizedString(@"Type", @"Placehodler text for the type of a monster or NPC.") - andInitialValue:self.editingMonster.type]; - break; - case kBasicInfoSectionRowIndexSubtype: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierSubtype - label:NSLocalizedString(@"Subtype", @"Placeholder text for the subtype of a monster or NPC.") - andInitialValue:self.editingMonster.subtype]; - break; - case kBasicInfoSectionRowIndexAlignment: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierAlignment - label: NSLocalizedString(@"Alignment", @"Placeholder text for the alignment of a monster or NPC.") - andInitialValue:self.editingMonster.alignment]; - break; - case kBasicInfoSectionRowIndexHitDice: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierHitDice - label:NSLocalizedString(@"Hit Dice", @"") - andInitialValue:self.editingMonster.hitDice]; - break; - case kBasicInfoSectionRowIndexCustomHP: - newCell = [self makeBooleanCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierHasCustomHP - label:NSLocalizedString(@"Custom HP", @"") - andInitialValue:self.editingMonster.customHP]; - break; - case kBasicInfoSectionRowIndexCustomHPText: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCustomHP - label:NSLocalizedString(@"Custom HP Text", @"") - andInitialValue:self.editingMonster.hpText]; - break; - } - break; - case kSectionIndexArmor: - switch (indexPath.row) { - case kArmorSectionRowIndexArmorType: - newCell = [self makeSelectCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierArmorType - label:NSLocalizedString(@"Type", @"") - initialValue:self.editingMonster.armorType - andChoices:_armorTypes]; - break; - case kArmorSectionRowIndexHasShield: - newCell = [self makeBooleanCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierHasShield - label:NSLocalizedString(@"Shield", @"") - andInitialValue:self.editingMonster.hasShield]; - break; - case kArmorSectionRowIndexCustomArmor: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCustomArmor - label:NSLocalizedString(@"Custom Armor", @"") - andInitialValue:self.editingMonster.customArmor]; - break; - case kArmorSectionRowIndexNaturalArmorBonus: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierNaturalArmorBonus - label:NSLocalizedString(@"Natural Armor Bonus", @"") - andInitialValue:self.editingMonster.naturalArmorBonus]; - break; - } - break; - case kSectionIndexSpeed: - switch (indexPath.row) { - case kSpeedSectionRowIndexBaseSpeed: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierBaseSpeed - label:NSLocalizedString(@"Base", @"") - andInitialValue:self.editingMonster.baseSpeed]; - break; - case kSpeedSectionRowIndexBurrowSpeed: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierBurrowSpeed - label:NSLocalizedString(@"Burrow", @"") - andInitialValue:self.editingMonster.burrowSpeed]; - break; - case kSpeedSectionRowIndexClimbSpeed: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierClimbSpeed - label:NSLocalizedString(@"Climb", @"") - andInitialValue:self.editingMonster.climbSpeed]; - break; - case kSpeedSectionRowIndexFlySpeed: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierFlySpeed - label:NSLocalizedString(@"Fly", @"") - andInitialValue:self.editingMonster.flySpeed]; - break; - case kSpeedSectionRowIndexCanHover: - newCell = [self makeBooleanCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCanHover - label:NSLocalizedString(@"Hover", @"") - andInitialValue:self.editingMonster.canHover]; - break; - case kSpeedSectionRowIndexSwimSpeed: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierSwimSpeed - label:NSLocalizedString(@"Swim", @"") - andInitialValue:self.editingMonster.swimSpeed]; - break; - case kSpeedSectionRowIndexHasCustomSpeed: - newCell = [self makeBooleanCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierHasCustomSpeed - label:NSLocalizedString(@"Custom Speed", @"") - andInitialValue:self.editingMonster.hasCustomSpeed]; - break; - case kSpeedSectionRowIndexCustomSpeed: - newCell = [self makeShortStringCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCustomSpeed - label:NSLocalizedString(@"Custom Speed", @"") - andInitialValue:self.editingMonster.customSpeed]; - break; - } - break; - case kSectionIndexAbilityScores: - switch (indexPath.row) { - case kAbilityScoreSectionRowIndexStrength: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierStrengthScore - label:NSLocalizedString(@"STR", @"Placeholder abbreviation for the strength score of a monster or NPC.") - andInitialValue:self.editingMonster.strengthScore]; - break; - case kAbilityScoreSectionRowIndexDexterity: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentiferDexterityScore - label:NSLocalizedString(@"DEX", @"Placeholder abbreviation for the dexterity score of a monster or NPC.") - andInitialValue:self.editingMonster.dexterityScore]; - break; - case kAbilityScoreSectionRowIndexConstitution: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierConstitutionScore - label:NSLocalizedString(@"CON", @"Placeholder abbreviation for the constitution score of a monster or NPC.") - andInitialValue:self.editingMonster.constitutionScore]; - break; - case kAbilityScoreSectionRowIndexIntelligence: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierIntelligenceScore - label:NSLocalizedString(@"INT", @"Placeholder abbreviation for the intelligence score of a monster or NPC.") - andInitialValue:self.editingMonster.intelligenceScore]; - break; - case kAbilityScoreSectionRowIndexWisdom: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierWisdomScore - label:NSLocalizedString(@"WIS", @"Placeholder abbreviation for the wisdom score of a monster or NPC.") - andInitialValue:self.editingMonster.wisdomScore]; - break; - case kAbilityScoreSectionRowIndexCharisma: - newCell = [self makeIntegerCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCharismaScore - label:NSLocalizedString(@"CHA", @"Placeholder abbreviation for the charisma score of a monster or NPC.") - andInitialValue:self.editingMonster.charismaScore]; - break; - - } - break; - case kSectionIndexSavingThrows: - switch (indexPath.row) { - case kSavingThrowsSectionRowIndexStrengthProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierStrengthSavingThrowProficiency - label:NSLocalizedString(@"Strength Proficiency", @"") - initialValue:self.editingMonster.strengthSavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexStrengthAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierStrengthSavingThrowAdvantage - label:NSLocalizedString(@"Strength Advantage", @"") - initialValue:self.editingMonster.strengthSavingThrowAdvantage - andChoices:_advantageTypes]; - break; - case kSavingThrowsSectionRowIndexDexterityProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierDexteritySavingThrowProficiency - label:NSLocalizedString(@"Dexterity Proficiency", @"") - initialValue:self.editingMonster.dexteritySavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexDexterityAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierDexteritySavingThrowAdvantage - label:NSLocalizedString(@"Dexterity Advantage", @"") - initialValue:self.editingMonster.dexteritySavingThrowAdvantage - andChoices:_advantageTypes]; - break; - case kSavingThrowsSectionRowIndexConstitutionProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierConstitutionSavingThrowProficiency - label:NSLocalizedString(@"Constitution Proficiency", @"") - initialValue:self.editingMonster.constitutionSavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexConstitutionAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierConstitutionSavingThrowAdvantage - label:NSLocalizedString(@"Constitution Advantage", @"") - initialValue:self.editingMonster.constitutionSavingThrowAdvantage - andChoices:_advantageTypes]; - break; - case kSavingThrowsSectionRowIndexIntelligenceProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierIntelligenceSavingThrowProficiency - label:NSLocalizedString(@"Intelligence Proficiency", @"") - initialValue:self.editingMonster.intelligenceSavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexIntelligenceAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierIntelligenceSavingThrowAdvantage - label:NSLocalizedString(@"Intelligence Advantage", @"") - initialValue:self.editingMonster.intelligenceSavingThrowAdvantage - andChoices:_advantageTypes]; - break; - case kSavingThrowsSectionRowIndexWisdomProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierWisdomSavingThrowProficiency - label:NSLocalizedString(@"Wisdom Proficiency", @"") - initialValue:self.editingMonster.wisdomSavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexWisdomAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierWisdomSavingThrowAdvantage - label:NSLocalizedString(@"Wisdom Advantage", @"") - initialValue:self.editingMonster.wisdomSavingThrowAdvantage - andChoices:_advantageTypes]; - break; - case kSavingThrowsSectionRowIndexCharismaProficiency: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCharismaSavingThrowProficiency - label:NSLocalizedString(@"Charisma Proficiency", @"") - initialValue:self.editingMonster.charismaSavingThrowProficiency - andChoices:_proficiencyTypes]; - break; - case kSavingThrowsSectionRowIndexCharismaAdvantage: - newCell = [self makeRadioCellFromTableView:self.monsterTableView - withIdentifier:kIdentifierCharismaSavingThrowAdvantage - label:NSLocalizedString(@"Charisma Advantage", @"") - initialValue:self.editingMonster.charismaSavingThrowAdvantage - andChoices:_advantageTypes]; - break; - } - break; - } - - if (!newCell) { - NSLog(@"ERROR: Unable to build a cell for %@", indexPath); - newCell = [self makeSafeCell]; - } - - return newCell; -} - -#pragma mark - MCShortStringFieldDelegate - -- (void)editableValueDidChange:(NSObject*)value forIdentifier:(NSString*)identifier andType:(NSString*)type { - if ([kMCFieldValueTypeString isEqualToString:type]) { - if ([kIdentifierName isEqualToString:identifier]) { - self.editingMonster.name = (NSString*)value; - } else if ([kIdentifierSize isEqualToString:identifier]) { - self.editingMonster.size = (NSString*)value; - } else if ([kIdentifierType isEqualToString:identifier]) { - self.editingMonster.type = (NSString*)value; - } else if ([kIdentifierSubtype isEqualToString:identifier]) { - self.editingMonster.subtype = (NSString*)value; - } else if ([kIdentifierAlignment isEqualToString:identifier]) { - self.editingMonster.alignment = (NSString*)value; - } else if ([kIdentifierCustomHP isEqualToString:identifier]) { - self.editingMonster.hpText = (NSString*)value; - } else if ([kIdentifierCustomSpeed isEqualToString:identifier]) { - self.editingMonster.customSpeed = (NSString*)value; - } else if ([kIdentifierCustomArmor isEqualToString:identifier]) { - self.editingMonster.customArmor = (NSString*)value; - } - } - if ([kMCFieldValueTypeInteger isEqualToString:type]) { - if ([kIdentifierStrengthScore isEqualToString:identifier]) { - self.editingMonster.strengthScore = [(NSNumber*)value intValue]; - } else if ([kIdentiferDexterityScore isEqualToString:identifier]) { - self.editingMonster.dexterityScore = [(NSNumber*)value intValue]; - } else if ([kIdentifierConstitutionScore isEqualToString:identifier]) { - self.editingMonster.constitutionScore = [(NSNumber*)value intValue]; - } else if ([kIdentifierIntelligenceScore isEqualToString:identifier]) { - self.editingMonster.intelligenceScore = [(NSNumber*)value intValue]; - } else if ([kIdentifierWisdomScore isEqualToString:identifier]) { - self.editingMonster.wisdomScore = [(NSNumber*)value intValue]; - } else if ([kIdentifierCharismaScore isEqualToString:identifier]) { - self.editingMonster.charismaScore = [(NSNumber*)value intValue]; - } else if ([kIdentifierHitDice isEqualToString:identifier]) { - self.editingMonster.hitDice = [(NSNumber*)value intValue]; - } else if ([kIdentifierBaseSpeed isEqualToString:identifier]) { - self.editingMonster.baseSpeed = [(NSNumber*)value intValue]; - } else if ([kIdentifierBurrowSpeed isEqualToString:identifier]) { - self.editingMonster.burrowSpeed = [(NSNumber*)value intValue]; - } else if ([kIdentifierClimbSpeed isEqualToString:identifier]) { - self.editingMonster.climbSpeed = [(NSNumber*)value intValue]; - } else if ([kIdentifierFlySpeed isEqualToString:identifier]) { - self.editingMonster.flySpeed = [(NSNumber*)value intValue]; - } else if ([kIdentifierSwimSpeed isEqualToString:identifier]) { - self.editingMonster.swimSpeed = [(NSNumber*)value intValue]; - } else if ([kIdentifierNaturalArmorBonus isEqualToString:identifier]) { - self.editingMonster.naturalArmorBonus = [(NSNumber*)value intValue]; - } - } - if ([kMCFieldValueTypeBoolean isEqualToString:type]) { - if ([kIdentifierHasCustomHP isEqualToString:identifier]) { - self.editingMonster.customHP = [(NSNumber*)value boolValue]; - } else if ([kIdentifierCanHover isEqualToString:identifier]) { - self.editingMonster.canHover = [(NSNumber*)value boolValue]; - } else if ([kIdentifierHasCustomSpeed isEqualToString:identifier]) { - self.editingMonster.hasCustomSpeed = [(NSNumber*)value boolValue]; - } else if ([kIdentifierHasShield isEqualToString:identifier]) { - self.editingMonster.hasShield = [(NSNumber*)value boolValue]; - } - } - if ([kMCFieldValueTypeChoice isEqualToString:type]) { - if ([kIdentifierArmorType isEqualToString:identifier]) { - self.editingMonster.armorType = (NSString*)value; - } else if ([kIdentifierStrengthSavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.strengthSavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierStrengthSavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.strengthSavingThrowProficiency = (NSString*)value; - } else if ([kIdentifierDexteritySavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.dexteritySavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierDexteritySavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.dexteritySavingThrowProficiency = (NSString*)value; - } else if ([kIdentifierConstitutionSavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.constitutionSavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierConstitutionSavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.constitutionSavingThrowProficiency = (NSString*)value; - } else if ([kIdentifierIntelligenceSavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.intelligenceSavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierIntelligenceSavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.intelligenceSavingThrowProficiency = (NSString*)value; - } else if ([kIdentifierWisdomSavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.wisdomSavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierWisdomSavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.wisdomSavingThrowProficiency = (NSString*)value; - } else if ([kIdentifierCharismaSavingThrowAdvantage isEqualToString:identifier]) { - self.editingMonster.charismaSavingThrowAdvantage = (NSString*)value; - } else if ([kIdentifierCharismaSavingThrowProficiency isEqualToString:identifier]) { - self.editingMonster.charismaSavingThrowProficiency = (NSString*)value; - } - } -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return UITableViewAutomaticDimension; -} - -@end diff --git a/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.h b/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.h deleted file mode 100644 index 4c8efcd..0000000 --- a/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// MCBooleanFieldTableViewCell.h -// MonsterCards -// -// Created by Tom Hicks on 9/25/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MCBooleanFieldTableViewCell : UITableViewCell - -@property NSString* identifier; -@property NSString* label; -@property BOOL value; - -@property (weak, nonatomic) id delegate; -@property (weak, nonatomic) IBOutlet UILabel *labelView; -@property (weak, nonatomic) IBOutlet UISwitch *switchView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.m b/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.m deleted file mode 100644 index 62bb9e3..0000000 --- a/MonsterCards/Views/FormFields/MCBooleanFieldTableViewCell.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// MCBooleanFieldTableViewCell.m -// MonsterCards -// -// Created by Tom Hicks on 9/25/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCBooleanFieldTableViewCell.h" - -@implementation MCBooleanFieldTableViewCell - -@synthesize value = _value; - -- (void)setValue:(BOOL)value { - if (value != _value) { - _value = value; - if (self.switchView) { - self.switchView.on = _value; - } - } -} - -- (BOOL)value { - return _value; -} - -@synthesize label = _label; - -- (void)setLabel:(NSString*)label { - if (![_label isEqualToString:label]) { - _label = label; - if (self.labelView) { - self.labelView.text = label; - } - } -} - -- (NSString*)label { - return _label; -} - -- (void)awakeFromNib { - [super awakeFromNib]; - self.switchView.on = self.value; - self.labelView.text = self.label; -} - -- (IBAction)valueChanged:(id)sender { - self.value = self.switchView.on; - if (self.delegate != nil) { - [self.delegate editableValueDidChange:[NSNumber numberWithBool:self.value] - forIdentifier:self.identifier - andType:kMCFieldValueTypeBoolean]; - } -} - -@end diff --git a/MonsterCards/Views/FormFields/MCChoice.h b/MonsterCards/Views/FormFields/MCChoice.h deleted file mode 100644 index 14f3045..0000000 --- a/MonsterCards/Views/FormFields/MCChoice.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// MCChoice.h -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface MCChoice : NSObject - -@property NSString* label; -@property NSObject* value; - -+(id)choiceWithLabel:(NSString*)label - andValue:(NSObject*)value; - --(id)initWithLabel:(NSString*)label - andValue:(NSObject*)value; - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCChoice.m b/MonsterCards/Views/FormFields/MCChoice.m deleted file mode 100644 index f8aea27..0000000 --- a/MonsterCards/Views/FormFields/MCChoice.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// MCChoice.m -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCChoice.h" - -@implementation MCChoice - -+(id)choiceWithLabel:(NSString*)label - andValue:(NSObject*)value { - return [[MCChoice alloc] initWithLabel:label - andValue:value]; -} - --(id)initWithLabel:(NSString*)label - andValue:(NSObject*)value { - self = [super init]; - - self.label = label; - self.value = value; - - return self; -} - -@end diff --git a/MonsterCards/Views/FormFields/MCFormFieldConstants.h b/MonsterCards/Views/FormFields/MCFormFieldConstants.h deleted file mode 100644 index a2afed3..0000000 --- a/MonsterCards/Views/FormFields/MCFormFieldConstants.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// MCFormFieldConstants.h -// MonsterCards -// -// Created by Tom Hicks on 9/17/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#ifndef MCFormFieldConstants_h -#define MCFormFieldConstants_h - -extern NSString* const kMCFieldValueTypeInteger; -extern NSString* const kMCFieldValueTypeString; -extern NSString* const kMCFieldValueTypeBoolean; -extern NSString* const kMCFieldValueTypeChoice; - -#endif /* MCFormFieldConstants_h */ diff --git a/MonsterCards/Views/FormFields/MCFormFieldConstants.m b/MonsterCards/Views/FormFields/MCFormFieldConstants.m deleted file mode 100644 index b7266cf..0000000 --- a/MonsterCards/Views/FormFields/MCFormFieldConstants.m +++ /dev/null @@ -1,15 +0,0 @@ -// -// MCFormFieldConstants.m -// MonsterCards -// -// Created by Tom Hicks on 9/17/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldConstants.h" - -NSString* const kMCFieldValueTypeInteger = @"Integer"; -NSString* const kMCFieldValueTypeString = @"String"; -NSString* const kMCFieldValueTypeBoolean = @"Boolean"; -NSString* const kMCFieldValueTypeChoice = @"Choice"; diff --git a/MonsterCards/Views/FormFields/MCFormFieldDelegate.h b/MonsterCards/Views/FormFields/MCFormFieldDelegate.h deleted file mode 100644 index 6fae47c..0000000 --- a/MonsterCards/Views/FormFields/MCFormFieldDelegate.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// MCFormFieldDelegate.h -// MonsterCards -// -// Created by Tom Hicks on 9/9/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#ifndef MCFormFieldDelegate_h -#define MCFormFieldDelegate_h - -#import "MCFormFieldConstants.h" - -@protocol MCFormFieldDelegate - -@optional --(void)editableValueDidChange:(NSObject*)value forIdentifier:(NSString*)identifier andType:(NSString*)type; - -@end - - -#endif /* MCFormFieldDelegate_h */ diff --git a/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.h b/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.h deleted file mode 100644 index 181e498..0000000 --- a/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// MCIntegerFieldTableViewCell.h -// MonsterCards -// -// Created by Tom Hicks on 9/17/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MCIntegerFieldTableViewCell : UITableViewCell - -@property NSString* identifier; -@property NSString* label; -@property int value; - -@property (weak, nonatomic) id delegate; -@property (weak, nonatomic) IBOutlet UITextField *textField; -@property (weak, nonatomic) IBOutlet UIStepper *stepper; -@property (weak, nonatomic) IBOutlet UILabel *labelView; -- (IBAction)stepperValueChanged:(id)sender; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.m b/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.m deleted file mode 100644 index 5ecebb0..0000000 --- a/MonsterCards/Views/FormFields/MCIntegerFieldTableViewCell.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// MCIntegerFieldTableViewCell.m -// MonsterCards -// -// Created by Tom Hicks on 9/17/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCIntegerFieldTableViewCell.h" - -@implementation MCIntegerFieldTableViewCell - -@synthesize value = _value; - --(void) setValue:(int)number { - if (_value != number) { - NSNumber *newValue = [NSNumber numberWithInt:number]; - _value = number; - if (self.textField) { - self.textField.text = [newValue stringValue]; - } - if (self.stepper) { - self.stepper.value = number; - } - if (self.delegate) { - [self.delegate editableValueDidChange:newValue - forIdentifier:self.identifier - andType:kMCFieldValueTypeInteger]; - } - } -} - -- (int) value { - return _value; -} - -@synthesize label = _label; - -- (void)setLabel:(NSString*)label { - if (![_label isEqualToString:label]) { - _label = label; - if (self.textField) { - self.textField.placeholder = label; - } - if (self.labelView) { - self.labelView.text = label; - } - } -} - -- (NSString*)label { - return _label; -} - -- (void)awakeFromNib { - [super awakeFromNib]; - [self.textField addTarget:self - action:@selector(textFieldValueChanged:) - forControlEvents:UIControlEventEditingChanged]; - self.textField.text = [[NSNumber numberWithInt:_value] stringValue]; - self.stepper.value = _value; -} - -- (void)textFieldValueChanged:(UITextField*)textField { - self.value = [textField.text intValue]; -} - -- (IBAction)stepperValueChanged:(id)sender { - self.value = self.stepper.value; -} - -@end diff --git a/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.h b/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.h deleted file mode 100644 index 2bf614a..0000000 --- a/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// MCRadioFieldTableViewCell.h -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldDelegate.h" -#import "MCChoice.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MCRadioFieldTableViewCell : UITableViewCell - -@property NSString* identifier; -@property NSString* label; -@property NSObject* selectedValue; -@property NSArray* choices; - -@property (weak, nonatomic) id delegate; -@property (weak, nonatomic) IBOutlet UILabel *labelView; -@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.m b/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.m deleted file mode 100644 index 913ec91..0000000 --- a/MonsterCards/Views/FormFields/MCRadioFieldTableViewCell.m +++ /dev/null @@ -1,131 +0,0 @@ -// -// MCRadioFieldTableViewCell.m -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCRadioFieldTableViewCell.h" - -@implementation MCRadioFieldTableViewCell { - MCChoice* _selectedChoice; -} - --(MCChoice*)findChoiceWithValue:(NSObject*)value - inArray:(NSArray*)array { - NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id element, NSDictionary *bindings) { - if (![element isKindOfClass:[MCChoice class]]) { - return NO; - } - MCChoice *choice = (MCChoice*)element; - return [choice.value isEqual:value]; - }]; - NSArray *matchingChoices = [array filteredArrayUsingPredicate:predicate]; - MCChoice *foundChoice = matchingChoices.count > 0 ? matchingChoices.firstObject : nil; - return foundChoice; -} - --(void)notifyChangedValue { - NSUInteger selectedIndex = [_choices indexOfObject:_selectedChoice]; - [self.segmentedControl setSelectedSegmentIndex:selectedIndex]; - - if (_delegate) { - [_delegate editableValueDidChange:_selectedValue - forIdentifier:_identifier - andType:kMCFieldValueTypeChoice]; - } -} - --(void)updateSegments { - if (_segmentedControl) { - [_segmentedControl removeAllSegments]; - int index = 0; - for (MCChoice *choice in _choices) { - [_segmentedControl insertSegmentWithTitle:choice.label atIndex:index animated:NO]; - index++; - } - _segmentedControl.selectedSegmentIndex = [_choices indexOfObject:_selectedChoice]; - } -} - -@synthesize choices = _choices; --(void)setChoices:(NSArray*)choices { - MCChoice *foundChoice = [self findChoiceWithValue:_selectedValue - inArray:choices]; - if ([_choices isEqualToArray:choices]) { - // Choices are equivalent so selected value. Pointer may have changed but content hasn't. - _selectedChoice = foundChoice; - } else if (foundChoice) { - // Choices are different but selected value is in the new choices. Pointer may have changed but content hasn't. - _selectedChoice = foundChoice; - } else { - // Choices are different and selected value is not in the new choices. Select the first choice or nil if there are none. - _selectedChoice = [choices firstObject]; - } - _choices = choices; - - if (_selectedValue != foundChoice.value) { - self.selectedValue = foundChoice.value; - } - - [self updateSegments]; -} --(NSArray*)choices { - return _choices; -} - -@synthesize label = _label; --(void)setLabel:(NSString*)label { - if (![_label isEqualToString:label]) { - _label = label; - } - if (_labelView && ![_labelView.text isEqualToString:label]) { - _labelView.text = label; - } -} --(NSString*)label { - return _label; -} - -@synthesize selectedValue = _selectedValue; --(void)setSelectedValue:(NSObject*)value { - NSObject *newValue = nil; - MCChoice *foundChoice = [self findChoiceWithValue:value inArray:_choices]; - if (!_choices) { - newValue = value; - } else if (!foundChoice) { - newValue = nil; - } else { - newValue = foundChoice.value; - } - _selectedChoice = foundChoice; - if (_selectedValue != newValue) { - _selectedValue = newValue; - [self notifyChangedValue]; - } -} --(NSObject*)selectedValue { - return _selectedValue; -} - -- (void)awakeFromNib { - [super awakeFromNib]; - // Initialization code -} - -- (void)setSelected:(BOOL)selected animated:(BOOL)animated { - [super setSelected:selected animated:animated]; - - // Configure the view for the selected state -} - -- (IBAction)selectedSegmentChanged:(id)sender { - NSInteger selectedIndex = _segmentedControl.selectedSegmentIndex; - MCChoice *newChoice = [_choices objectAtIndex:selectedIndex]; - _selectedChoice = newChoice; - _selectedValue = _selectedChoice.value; - [self notifyChangedValue]; -} - -@end diff --git a/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.h b/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.h deleted file mode 100644 index 47d11ac..0000000 --- a/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// MCSelectFieldTableViewCell.h -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldDelegate.h" -#import "MCChoice.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MCSelectFieldTableViewCell : UITableViewCell - -@property NSString* identifier; -@property NSString* label; -@property NSObject* selectedValue; -@property NSArray* choices; - -@property (weak, nonatomic) id delegate; -@property (weak, nonatomic) IBOutlet UITextField *textField; -@property (weak, nonatomic) IBOutlet UILabel *labelView; -@property (nonatomic) UIPickerView *pickerView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.m b/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.m deleted file mode 100644 index e0e4b7e..0000000 --- a/MonsterCards/Views/FormFields/MCSelectFieldTableViewCell.m +++ /dev/null @@ -1,182 +0,0 @@ -// -// MCSelectFieldTableViewCell.m -// MonsterCards -// -// Created by Tom Hicks on 9/26/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCSelectFieldTableViewCell.h" - -@implementation MCSelectFieldTableViewCell { - MCChoice* _selectedChoice; -} - --(MCChoice*)findChoiceWithValue:(NSObject*)value - inArray:(NSArray*)array { - NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id element, NSDictionary *bindings) { - if (![element isKindOfClass:[MCChoice class]]) { - return NO; - } - MCChoice *choice = (MCChoice*)element; - return [choice.value isEqual:value]; - }]; - NSArray *matchingChoices = [array filteredArrayUsingPredicate:predicate]; - MCChoice *foundChoice = matchingChoices.count > 0 ? matchingChoices.firstObject : nil; - return foundChoice; -} - --(void)notifyChangedValue { - [self updateView]; - - if (_delegate) { - [_delegate editableValueDidChange:_selectedValue - forIdentifier:_identifier - andType:kMCFieldValueTypeChoice]; - } -} - --(void)updateView { - self.textField.text = _selectedChoice.label; - if (_choices && _choices.count > 0) { - NSInteger selectedRow = [_choices indexOfObject:_selectedChoice]; - if (selectedRow != NSNotFound) { - [self.pickerView selectRow:selectedRow inComponent:0 animated:YES]; - } else { - [self.pickerView selectRow:0 inComponent:0 animated:YES]; - } - } -} - -@synthesize choices = _choices; --(void)setChoices:(NSArray*)choices { - MCChoice *foundChoice = [self findChoiceWithValue:_selectedValue - inArray:choices]; - if ([_choices isEqualToArray:choices]) { - // Choices are equivalent so selected value. Pointer may have changed but content hasn't. - _selectedChoice = foundChoice; - } else if (foundChoice) { - // Choices are different but selected value is in the new choices. Pointer may have changed but content hasn't. - _selectedChoice = foundChoice; - } else { - // Choices are different and selected value is not in the new choices. Select the first choice or nil if there are none. - _selectedChoice = [choices firstObject]; - } - _choices = choices; - - if (_selectedValue != foundChoice.value) { - self.selectedValue = foundChoice.value; - } - - [self updateView]; -} --(NSArray*)choices { - return _choices; -} - -@synthesize label = _label; --(void)setLabel:(NSString*)label { - if (![_label isEqualToString:label]) { - _label = label; - } - if (_labelView && ![_labelView.text isEqualToString:label]) { - _labelView.text = label; - } -} --(NSString*)label { - return _label; -} - - -@synthesize selectedValue = _selectedValue; --(void)setSelectedValue:(NSObject*)value { - NSObject *newValue = nil; - MCChoice *foundChoice = [self findChoiceWithValue:value inArray:_choices]; - if (!_choices) { - newValue = value; - } else if (!foundChoice) { - foundChoice = [_choices firstObject]; - newValue = foundChoice.value; - } else { - newValue = foundChoice.value; - } - _selectedChoice = foundChoice; - if (_selectedValue != newValue) { - _selectedValue = newValue; - [self notifyChangedValue]; - } -} --(NSObject*)selectedValue { - return _selectedValue; -} - -- (void)awakeFromNib { - [super awakeFromNib]; - self.pickerView = [[UIPickerView alloc] init]; - self.pickerView.delegate = self; - self.pickerView.dataSource = self; - self.textField.inputView = self.pickerView; - self.pickerView.translatesAutoresizingMaskIntoConstraints = NO; - - UIToolbar *toolbar = [[UIToolbar alloc] init]; - [toolbar sizeToFit]; - - UIBarButtonItem *button = - [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", @"Button label") - style:UIBarButtonItemStylePlain - target:self - action:@selector(choiceSelected)]; - [toolbar setItems:@[button] - animated:true]; - [toolbar setUserInteractionEnabled:YES]; - self.textField.inputAccessoryView = toolbar; - self.textField.hidden = NO; - self.textField.text = _selectedChoice.label; - self.textField.delegate = self; -} - -- (void)setSelected:(BOOL)selected animated:(BOOL)animated { - [super setSelected:selected animated:animated]; - - // Configure the view for the selected state -} - -- (void)choiceSelected { - [self endEditing:true]; -} - -#pragma mark - UIPickerViewDataSource - -- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { - return 1; -} - -- (NSInteger)pickerView:(UIPickerView *)pickerView -numberOfRowsInComponent:(NSInteger)component { - return [_choices count]; -} - -#pragma mark - UIPickerViewDelegate - -- (NSString *)pickerView:(UIPickerView *)pickerView - titleForRow:(NSInteger)row - forComponent:(NSInteger)component { - return [_choices objectAtIndex:row].label; -} - -- (void)pickerView:(UIPickerView *)pickerView - didSelectRow:(NSInteger)row - inComponent:(NSInteger)component { - - _selectedChoice = [_choices objectAtIndex:row]; - self.textField.text = _selectedChoice.label; - self.selectedValue = _selectedChoice.value; -} - -#pragma mark - UITextFieldDelegate - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - [self updateView]; -} - -@end diff --git a/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.h b/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.h deleted file mode 100644 index 894bcd8..0000000 --- a/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// EditableShortStringTableViewCell.h -// MonsterCards -// -// Created by Tom Hicks on 9/9/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "MCFormFieldDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MCShortStringFieldTableViewCell : UITableViewCell - -@property NSString* identifier; -@property NSString* label; -@property NSString* value; - -@property (weak, nonatomic) id delegate; -@property (weak, nonatomic) IBOutlet UITextField *textField; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.m b/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.m deleted file mode 100644 index 4056f5b..0000000 --- a/MonsterCards/Views/FormFields/MCShortStringFieldTableViewCell.m +++ /dev/null @@ -1,57 +0,0 @@ -// -// EditableShortStringTableViewCell.m -// MonsterCards -// -// Created by Tom Hicks on 9/9/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MCShortStringFieldTableViewCell.h" - -@implementation MCShortStringFieldTableViewCell - -@synthesize value = _value; - -- (void)setValue:(NSString*)value { - if (![_value isEqualToString:value]) { - _value = value; - if (self.textField) { - self.textField.text = value; - } - } -} - -- (NSString*)value { - return _value; -} - -@synthesize label = _label; - -- (void)setLabel:(NSString*)label { - if (![_label isEqualToString:label]) { - _label = label; - if (self.textField) { - self.textField.placeholder = label; - } - } -} - -- (NSString*)label { - return _label; -} - -- (void)awakeFromNib { - [super awakeFromNib]; - [self.textField addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventEditingChanged]; -} - -- (void)valueChanged:(UITextField*)textField { - NSString *newValue = textField.text; - if (self.delegate != nil) { - [self.delegate editableValueDidChange:newValue - forIdentifier:self.identifier - andType:kMCFieldValueTypeString]; - } -} - -@end diff --git a/MonsterCards/Views/Library.swift b/MonsterCards/Views/Library.swift new file mode 100644 index 0000000..fb2c7a4 --- /dev/null +++ b/MonsterCards/Views/Library.swift @@ -0,0 +1,60 @@ +// +// Library.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +struct Library: View { + @Environment(\.managedObjectContext) private var viewContext + + @FetchRequest( + sortDescriptors: [ + NSSortDescriptor(keyPath: \Monster.name, ascending: true), + ], + animation: .default) + var allMonsters: FetchedResults + + var body: some View { + NavigationView{ + List(allMonsters) { monster in + NavigationLink(destination: MonsterDetail(monster: monster)) { + Text(monster.name ?? "") + } + } + .navigationTitle("Library") + .navigationBarTitleDisplayMode(.inline) + .toolbar(content: { + ToolbarItem(placement: .primaryAction) { + Button(action: addMonster) { + Image(systemName:"plus") + } + } + }) + } + } + + private func addMonster() { + withAnimation { + let newItem = Monster(context: viewContext) + newItem.name = "Unnamed Monster" + + do { + try viewContext.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nsError = error as NSError + fatalError("Unresolved error \(nsError), \(nsError.userInfo)") + } + } + } +} + +struct Library_Previews: PreviewProvider { + static var previews: some View { + return Library().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + } +} diff --git a/MonsterCards/Views/LibraryViewController.h b/MonsterCards/Views/LibraryViewController.h deleted file mode 100644 index db4c945..0000000 --- a/MonsterCards/Views/LibraryViewController.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// LibraryViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface LibraryViewController : UITableViewController - -@property (strong, nonatomic) IBOutlet UITableView *monstersTable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/LibraryViewController.m b/MonsterCards/Views/LibraryViewController.m deleted file mode 100644 index 69b781b..0000000 --- a/MonsterCards/Views/LibraryViewController.m +++ /dev/null @@ -1,94 +0,0 @@ -// -// LibraryViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "LibraryViewController.h" -#import "Monster.h" -#import "MonsterViewController.h" -#import "AppDelegate.h" - -@interface LibraryViewController () - -@property NSArray* allMonsters; - -@end - -@implementation LibraryViewController { - NSManagedObjectContext *_context; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - AppDelegate *appDelegate = (AppDelegate*)UIApplication.sharedApplication.delegate; - _context = appDelegate.persistentContainer.viewContext; -} - -- (void)viewWillAppear:(BOOL)animated { - self.allMonsters = [_context executeFetchRequest:[Monster fetchRequest] error:nil]; - [self.monstersTable reloadData]; -} - -- (IBAction)addNewMonster:(id)sender { - Monster *monster = [[Monster alloc] initWithContext:_context]; - monster.name = NSLocalizedString(@"Unnamed Monster", @"The default name of a new monster."); - self.allMonsters = [self.allMonsters arrayByAddingObject:monster]; - //DispatchQueue.main.async{"code here"} - [_context save:nil]; - [self.monstersTable reloadData]; -} - -#pragma mark - Navigation - -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - if ([@"ShowMonsterDetail" isEqualToString:segue.identifier]) { - NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; - if ([segue.destinationViewController isKindOfClass:[MonsterViewController class]]) { - MonsterViewController *vc = (MonsterViewController*)segue.destinationViewController; - vc.monster = [self.allMonsters objectAtIndex:indexPath.row]; - } - } -} - -#pragma mark - UITableViewDataSource - -- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { - return [self.allMonsters count]; -} - -- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { - static NSString *simpleTableIdentifier = @"MonsterCell"; - - UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; - - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; - } - - Monster *monster = (Monster*)[self.allMonsters objectAtIndex:indexPath.row]; - - cell.textLabel.text = monster.name; - - return cell; -} - -#pragma mark - UITableViewDelegate - -- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView -trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath { - UIContextualAction *action = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:NSLocalizedString(@"Delete", @"Command to delete an object.") handler:^(UIContextualAction *action, __kindof UIView *sourceView, void (^completionHandler)(BOOL actionPerformed)) { - Monster *monster = [self.allMonsters objectAtIndex:indexPath.row]; - [self->_context deleteObject:monster]; - [self->_context save:nil]; - self.allMonsters = [self->_context executeFetchRequest:[Monster fetchRequest] error:nil]; - [self.tableView reloadData]; - }]; - - UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:[NSArray arrayWithObject:action]]; - return config; -} - -@end diff --git a/MonsterCards/Views/MCAdvantagePicker.swift b/MonsterCards/Views/MCAdvantagePicker.swift new file mode 100644 index 0000000..9fa2cd8 --- /dev/null +++ b/MonsterCards/Views/MCAdvantagePicker.swift @@ -0,0 +1,34 @@ +// +// MCAdvantagePicker.swift +// MonsterCards +// +// Created by Tom Hicks on 1/17/21. +// + +import SwiftUI + +struct MCAdvantagePicker: View { + var label: String = "" + var value: Binding + + var body: some View { + VStack(alignment: .leading) { + Text(label) + .font(.caption2) + Picker( + selection: value, + label: Text(label)) { + ForEach(AdvantageType.allCases) { advType in + Text(advType.displayName).tag(advType) + } + } + .pickerStyle(SegmentedPickerStyle()) + } + } +} + +struct MCAdvantagePicker_Previews: PreviewProvider { + static var previews: some View { + MCAdvantagePicker(value: .constant(AdvantageType.none)) + } +} diff --git a/MonsterCards/Views/MCProficiencyPicker.swift b/MonsterCards/Views/MCProficiencyPicker.swift new file mode 100644 index 0000000..6ccd39d --- /dev/null +++ b/MonsterCards/Views/MCProficiencyPicker.swift @@ -0,0 +1,34 @@ +// +// MCProficiencyPicker.swift +// MonsterCards +// +// Created by Tom Hicks on 1/17/21. +// + +import SwiftUI + +struct MCProficiencyPicker: View { + var label: String = "" + var value: Binding + + var body: some View { + VStack(alignment: .leading) { + Text(label) + .font(.caption2) + Picker( + selection: value, + label: Text(label)) { + ForEach(ProficiencyType.allCases) { profType in + Text(profType.displayName).tag(profType) + } + } + .pickerStyle(SegmentedPickerStyle()) + } + } +} + +struct MCProficiencyPicker_Previews: PreviewProvider { + static var previews: some View { + MCProficiencyPicker(value: .constant(ProficiencyType.none)) + } +} diff --git a/MonsterCards/Views/MCStepperField.swift b/MonsterCards/Views/MCStepperField.swift new file mode 100644 index 0000000..68e41f9 --- /dev/null +++ b/MonsterCards/Views/MCStepperField.swift @@ -0,0 +1,37 @@ +// +// MCStepperField.swift +// MonsterCards +// +// Created by Tom Hicks on 1/16/21. +// + +import SwiftUI + +struct MCStepperField: View { + var label: String = "" + var prefix: String = "" + var step: Int = 1 + var suffix: String = "" + var value: Binding + + var body: some View { + VStack(alignment: .leading) { + Text(label) + .font(.caption2) + Stepper( + value: value, + step: step + ) { + Text("\(prefix)\(value.wrappedValue)\(suffix)" as String) + } + } + } +} + +struct MCStepperField_Previews: PreviewProvider { + static var previews: some View { + MCStepperField( + label: "Hit Dice", + value: .constant(4)) + } +} diff --git a/MonsterCards/Views/MCTextField.swift b/MonsterCards/Views/MCTextField.swift new file mode 100644 index 0000000..937ece6 --- /dev/null +++ b/MonsterCards/Views/MCTextField.swift @@ -0,0 +1,28 @@ +// +// MCTextField.swift +// MonsterCards +// +// Created by Tom Hicks on 1/16/21. +// + +import SwiftUI + +struct MCTextField: View { + var label: String + var value: Binding + var body: some View { + VStack(alignment: .leading) { + Text(label) + .font(.caption2) + TextField(label, text: value) + .autocapitalization(/*@START_MENU_TOKEN@*/.none/*@END_MENU_TOKEN@*/) +// .padding(.top, -4) + } + } +} + +struct MCTextField_Previews: PreviewProvider { + static var previews: some View { + MCTextField(label: "Name", value: .constant("Ted")) + } +} diff --git a/MonsterCards/Views/MonsterDetail.swift b/MonsterCards/Views/MonsterDetail.swift new file mode 100644 index 0000000..0063edd --- /dev/null +++ b/MonsterCards/Views/MonsterDetail.swift @@ -0,0 +1,177 @@ +// +// MonsterDetail.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +struct LabeledField: View { + let content: Content + let label: String + + @inlinable public init( + _ label: String, + @ViewBuilder content: () -> Content) { + self.content = content() + self.label = label + } + + var body: some View { + HStack(alignment: .top) { + Text(label) + .fontWeight(.bold) + content + } + } +} + +struct SectionDivider: View { + var body: some View { + Image("section-divider") // divider + .resizable() + .scaledToFit() + .padding(.vertical, 4) + } +} + +struct SmallAbilityScore: View { + var label: String + var score: Int64 + var modifier: Int + + public init( + _ label: String, + _ score: Int64, + _ modifier: Int) { + self.label = label + self.score = score + self.modifier = modifier + } + + var body: some View { + VStack { + Text(label) + .fontWeight(.bold) + Text(String(format: "%d (%+d)", score, modifier)) + } + .frame(maxWidth: .infinity) + } +} + +struct MonsterDetail: View { + let kTextColor: Color = Color(hex: 0x982818) + + var monster: Monster + + var body: some View { + ScrollView { + VStack (alignment: .leading) { + // meta: "(large humanoid (elf) lawful evil" + Text(monster.meta) + .font(.subheadline) + .foregroundColor(.secondary) + + SectionDivider() + + // AC + LabeledField("Armor Class") { + Text(monster.armorClassDescription)// armor class + } + // HP + LabeledField("Hit Points") { + Text(monster.hitPoints) // hit points + } + // Speed + LabeledField("Speed") { + Text(monster.speed) // speed + } + + SectionDivider() + + // Ability Scores + HStack { + SmallAbilityScore("STR", monster.strengthScore, monster.strengthModifier) + SmallAbilityScore("DEX", monster.dexterityScore, monster.dexterityModifier) + SmallAbilityScore("CON", monster.constitutionScore, monster.constitutionModifier) + SmallAbilityScore("INT", monster.intelligenceScore, monster.intelligenceModifier) + SmallAbilityScore("WIS", monster.wisdomScore, monster.wisdomModifier) + SmallAbilityScore("CHA", monster.charismaScore, monster.charismaModifier) + } + + SectionDivider() + + let savingThrowsDescription = monster.savingThrowsDescription + if (!savingThrowsDescription.isEmpty) { + LabeledField("Saving Throws") { + Text(monster.savingThrowsDescription) + } + } + } + .padding(.horizontal) + .foregroundColor(kTextColor) + } + .toolbar(content: { + ToolbarItem(placement: .primaryAction) { + NavigationLink("Edit", destination: EditMonster(monster: monster)) + } + }) + .navigationTitle(monster.name ?? "") + .navigationBarTitleDisplayMode(.inline) + } + + private func editMonster() { + print("Edit Monster pressed") + } +} + +struct MonsterDetail_Previews: PreviewProvider { + static var previews: some View { + let context = PersistenceController.preview.container.viewContext + let monster = Monster.init(context: context) + monster.name = "Steve" + monster.size = "Medium" + monster.type = "humanoid" + monster.subtype = "human" + monster.alignment = "LG" + monster.hitDice = 6 + monster.hasCustomHP = true + monster.customHP = "12 (1d10)+2" + monster.baseSpeed = 5 + monster.burrowSpeed = 10 + monster.climbSpeed = 15 + monster.flySpeed = 20 + monster.swimSpeed = 25 + monster.canHover = true + monster.hasCustomSpeed = false + monster.customSpeed = "walk: 5 ft." + monster.strengthScore = 8 + monster.dexterityScore = 10 + monster.constitutionScore = 12 + monster.intelligenceScore = 14 + monster.wisdomScore = 16 + monster.charismaScore = 18 + monster.strengthSavingThrowAdvantageEnum = AdvantageType.none + monster.strengthSavingThrowProficiencyEnum = ProficiencyType.none + monster.dexteritySavingThrowAdvantageEnum = AdvantageType.advantage + monster.dexteritySavingThrowProficiencyEnum = ProficiencyType.proficient + monster.constitutionSavingThrowAdvantageEnum = AdvantageType.disadvantage + monster.constitutionSavingThrowProficiencyEnum = ProficiencyType.expertise + monster.intelligenceSavingThrowAdvantageEnum = AdvantageType.none + monster.intelligenceSavingThrowProficiencyEnum = ProficiencyType.expertise + monster.wisdomSavingThrowAdvantageEnum = AdvantageType.advantage + monster.wisdomSavingThrowProficiencyEnum = ProficiencyType.proficient + monster.charismaSavingThrowAdvantageEnum = AdvantageType.disadvantage + monster.charismaSavingThrowProficiencyEnum = ProficiencyType.none + + return Group { + MonsterDetail(monster: monster) + .environment(\.managedObjectContext, context) + .previewDevice("iPod touch (7th generation)") + MonsterDetail(monster: monster) + .environment(\.managedObjectContext, context) + .previewDevice("iPad Pro (11-inch) (2nd generation)") + } + } +} diff --git a/MonsterCards/Views/MonsterViewController.h b/MonsterCards/Views/MonsterViewController.h deleted file mode 100644 index e7545a6..0000000 --- a/MonsterCards/Views/MonsterViewController.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// MonsterViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Monster.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface MonsterViewController : UIViewController - -@property (weak, nonatomic) IBOutlet UILabel *monsterName; -@property (weak, nonatomic) IBOutlet UILabel *monsterMeta; -@property (weak, nonatomic) IBOutlet UILabel *monsterArmorClass; -@property (weak, nonatomic) IBOutlet UILabel *monsterHitPoints; -@property (weak, nonatomic) IBOutlet UILabel *monsterSpeed; -@property (weak, nonatomic) IBOutlet UILabel *monsterStrength; -@property (weak, nonatomic) IBOutlet UILabel *monsterDexterity; -@property (weak, nonatomic) IBOutlet UILabel *monsterConstitution; -@property (weak, nonatomic) IBOutlet UILabel *monsterIntelligence; -@property (weak, nonatomic) IBOutlet UILabel *monsterWisdom; -@property (weak, nonatomic) IBOutlet UILabel *monsterCharisma; -@property (weak, nonatomic) IBOutlet UILabel *monsterSavingThrows; - -@property Monster* monster; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/MonsterViewController.m b/MonsterCards/Views/MonsterViewController.m deleted file mode 100644 index f97eac4..0000000 --- a/MonsterCards/Views/MonsterViewController.m +++ /dev/null @@ -1,134 +0,0 @@ -// -// MonsterViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "MonsterViewController.h" -#import "EditMonsterViewController.h" -#import "HTMLHelper.h" -#import "AppDelegate.h" - -@interface MonsterViewController () - -@end - -NSString *const defaultFontFamily = @"helvetica"; -NSString *const defaultFontSize = @"12pt"; -NSString *const defaultTextColor = @"#9B2818"; - -NSString* makeHTMLFragmentString(NSString* format, ...) { - va_list args; - va_start(args, format); - NSString *childString = [[NSString alloc] initWithFormat:format arguments:args]; - va_end(args); - - NSString *formattedString = [NSString stringWithFormat:@"%@", defaultFontFamily, defaultFontSize, defaultTextColor, childString]; - return formattedString; -} - -@implementation MonsterViewController { - NSManagedObjectContext *_context; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - AppDelegate *appDelegate = (AppDelegate*)UIApplication.sharedApplication.delegate; - _context = appDelegate.persistentContainer.viewContext; -} - -- (void)viewWillAppear:(BOOL)animated { - [_context refreshObject:self.monster mergeChanges:NO]; - if (self.monsterName != nil) { - self.monsterName.text = self.monster.name; - } else if (self.navigationItem != nil) { - self.navigationItem.title = self.monster.name; - } - if (self.monsterName != nil) { - self.monsterName.text = self.monster.name; - } else if (self.navigationItem != nil) { - if (self.monster.name == nil) { - self.navigationItem.title = @"Unnamed Monster"; - } else { - self.navigationItem.title = self.monster.name; - } - } - if (self.monsterMeta != nil) { - NSString *metaText = self.monster.meta; - if (metaText == nil) { - self.monsterMeta.text = @""; - } else { - self.monsterMeta.text = metaText; - } - } - if (self.monsterArmorClass != nil) { - NSString *armorClassDescription = self.monster.armorClassDescription; - if (armorClassDescription == nil) { - self.monsterArmorClass.text = @""; - } else { - self.monsterArmorClass.attributedText = [HTMLHelper attributedStringFromHTML:makeHTMLFragmentString(@"Armor Class %@", armorClassDescription)]; - } - } - if (self.monsterHitPoints != nil) { - NSString *hitPointsDescription = self.monster.hitPointsDescription; - if (hitPointsDescription == nil) { - self.monsterHitPoints.text = @""; - } else { - self.monsterHitPoints.attributedText = [HTMLHelper attributedStringFromHTML:makeHTMLFragmentString(@"Hit Points %@", hitPointsDescription)]; - } - } - if (self.monsterSpeed != nil) { - NSString *speedDescription = self.monster.speedDescription; - if (speedDescription == nil) { - self.monsterSpeed.text = @""; - } else { - self.monsterSpeed.attributedText = [HTMLHelper attributedStringFromHTML:makeHTMLFragmentString(@"Speed %@", speedDescription)]; - } - } - if (self.monsterStrength) { - self.monsterStrength.text = self.monster.strengthDescription; - } - if (self.monsterDexterity) { - self.monsterDexterity.text = self.monster.dexterityDescription; - } - if (self.monsterConstitution) { - self.monsterConstitution.text = self.monster.constitutionDescription; - } - if (self.monsterIntelligence) { - self.monsterIntelligence.text = self.monster.intelligenceDescription; - } - if (self.monsterWisdom) { - self.monsterWisdom.text = self.monster.wisdomDescription; - } - if (self.monsterCharisma) { - self.monsterCharisma.text = self.monster.charismaDescription; - } - if (self.monsterSavingThrows) { - NSString *savingThrowsDescription = self.monster.savingThrowsDescription; - if (savingThrowsDescription == nil) { - self.monsterSavingThrows.text = @""; - } else { - self.monsterSavingThrows.attributedText = [HTMLHelper attributedStringFromHTML:makeHTMLFragmentString(@"Saving Throws %@", savingThrowsDescription)]; - } - } -} - -- (IBAction)unwindWithSegue:(UIStoryboardSegue *)unwindSegue { -// UIViewController *sourceViewController = unwindSegue.sourceViewController; - // Use data from the view controller which initiated the unwind segue -} - -#pragma mark - Navigation - -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - if ([@"EditMonster" isEqualToString:segue.identifier]) { - if ([segue.destinationViewController isKindOfClass:[EditMonsterViewController class]]) { - EditMonsterViewController *vc = (EditMonsterViewController*)segue.destinationViewController; - vc.originalMonster = self.monster; - } - } -} - -@end diff --git a/MonsterCards/Views/Search.swift b/MonsterCards/Views/Search.swift new file mode 100644 index 0000000..883a123 --- /dev/null +++ b/MonsterCards/Views/Search.swift @@ -0,0 +1,41 @@ +// +// Search.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import SwiftUI + +struct Search: View { + @State private var searchText = "" + + @Environment(\.managedObjectContext) var managedObjectContext + @FetchRequest( + sortDescriptors: [ + NSSortDescriptor(keyPath: \Monster.name, ascending: true), + ], + animation: .default) + var allMonsters: FetchedResults + + var body: some View { + NavigationView { + List { + SearchBar(text: $searchText) + .padding(.top, -30) + + ForEach(allMonsters.filter({searchText.isEmpty ? true : $0.name?.containsCaseInsensitive(searchText) ?? false })) { monster in + NavigationLink(destination: MonsterDetail(monster: monster)) { + Text(monster.name ?? "") + } + } + } + } + } +} + +struct Search_Previews: PreviewProvider { + static var previews: some View { + Search().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + } +} diff --git a/MonsterCards/Views/SearchBar.swift b/MonsterCards/Views/SearchBar.swift new file mode 100644 index 0000000..115c0a2 --- /dev/null +++ b/MonsterCards/Views/SearchBar.swift @@ -0,0 +1,63 @@ +// +// SearchBar.swift +// MonsterCards +// +// Created by Tom Hicks on 1/15/21. +// + +import Foundation +import UIKit +import SwiftUI + +struct SearchBar: UIViewRepresentable { + + @Binding var text: String + + class Coordinator: NSObject, UISearchBarDelegate { + @Binding var text: String + + init(text: Binding) { + _text = text + } + + func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { + text = searchText + } + + func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { + UIApplication.shared.endEditing() + } + } + + func makeCoordinator() -> SearchBar.Coordinator { + return Coordinator(text: $text) + } + + func makeUIView(context: UIViewRepresentableContext) -> UISearchBar { + let searchBar = UISearchBar(frame: .zero) + searchBar.delegate = context.coordinator + searchBar.autocapitalizationType = .none + return searchBar + } + + func updateUIView(_ uiView: UISearchBar, context: UIViewRepresentableContext) { + uiView.text = text + } +} + +extension String { + func containsCaseInsensitive(_ string: String) -> Bool { + return self.localizedCaseInsensitiveContains(string) + } +} + +extension UIApplication { + func endEditing() { + sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) + } +} +struct SearchBar_Previews: PreviewProvider { + static var previews: some View { + SearchBar(text: .constant("")) + } +} diff --git a/MonsterCards/Views/SearchViewController.h b/MonsterCards/Views/SearchViewController.h deleted file mode 100644 index a3fd563..0000000 --- a/MonsterCards/Views/SearchViewController.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SearchViewController.h -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SearchViewController : UITableViewController - -@property (weak, nonatomic) IBOutlet UISearchBar *searchBar; -@property (weak, nonatomic) IBOutlet UITableView *searchResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MonsterCards/Views/SearchViewController.m b/MonsterCards/Views/SearchViewController.m deleted file mode 100644 index ad6ecf1..0000000 --- a/MonsterCards/Views/SearchViewController.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// SearchViewController.m -// MonsterCards -// -// Created by Tom Hicks on 9/4/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import "SearchViewController.h" -#import "MonsterViewController.h" -#import "Monster.h" -#import "AppDelegate.h" - -@interface SearchViewController () - -@property NSArray* allMonsters; -@property NSArray* foundMonsters; - -@end - -@implementation SearchViewController { - NSManagedObjectContext *_context; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - AppDelegate *appDelegate = (AppDelegate*)UIApplication.sharedApplication.delegate; - _context = appDelegate.persistentContainer.viewContext; -} - -- (void)viewWillAppear:(BOOL)animated { - NSString *searchText = nil; - if (self.searchBar != nil) { - searchText = self.searchBar.text; - } - self.allMonsters = [_context executeFetchRequest:[Monster fetchRequest] error:nil]; - self.foundMonsters = [self filterAllMonstersWithText:searchText]; - [self.tableView reloadData]; -} - -#pragma mark - Navigation - -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - if ([@"ShowMonsterDetail" isEqualToString:segue.identifier]) { - NSIndexPath *indexPath = [self.searchResults indexPathForSelectedRow]; - if ([segue.destinationViewController isKindOfClass:[MonsterViewController class]]) { - MonsterViewController *vc = (MonsterViewController*)segue.destinationViewController; - vc.monster = [self.foundMonsters objectAtIndex:indexPath.row]; - } - } -} - -#pragma mark - UITableViewDataSource - -- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { - return [self.foundMonsters count]; -} - -- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { - static NSString *simpleTableIdentifier = @"MonsterCell"; - - UITableViewCell *cell = [self.searchResults dequeueReusableCellWithIdentifier:simpleTableIdentifier]; - - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; - } - - Monster *monster = (Monster*)[self.foundMonsters objectAtIndex:indexPath.row]; - - cell.textLabel.text = monster.name; - - return cell; -} - -#pragma mark - UISearchBarDelegate - -- (NSArray*)filterAllMonstersWithText:(NSString *)searchText { - if (searchText != nil && ![@"" isEqualToString:searchText]) { - NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id item, NSDictionary *bindings) { - if (![item isKindOfClass:[Monster class]]) { - return false; - } - Monster *monster = (Monster*)item; - - if ([monster.name localizedCaseInsensitiveContainsString:searchText]) { - return true; - } - - return false; - }]; - return [self.allMonsters filteredArrayUsingPredicate:predicate]; - } else { - return self.allMonsters; - } -} - -- (void)searchBar:(UISearchBar *)searchBar - textDidChange:(NSString *)searchText { - - self.foundMonsters = [self filterAllMonstersWithText:searchText]; - - [self.tableView reloadData]; -} - -@end diff --git a/MonsterCards/main.m b/MonsterCards/main.m deleted file mode 100644 index 5ea591c..0000000 --- a/MonsterCards/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// MonsterCards -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); -} diff --git a/MonsterCardsTests/Helpers/JSONHelperTests.m b/MonsterCardsTests/Helpers/JSONHelperTests.m deleted file mode 100644 index ce3bc83..0000000 --- a/MonsterCardsTests/Helpers/JSONHelperTests.m +++ /dev/null @@ -1,697 +0,0 @@ -// -// JSONHelperTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/15/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "JSONHelper.h" - -@interface JSONHelperTests : XCTestCase - -@end - -@implementation JSONHelperTests { - NSString *_jsonStringKey; - NSString *_jsonStringValue; - NSString *_jsonStringFragment; - NSString *_jsonIntegerKey; - NSNumber *_jsonIntegerValue; - NSString *_jsonIntegerFragment; - NSString *_jsonBooleanKey; - BOOL _jsonBooleanValue; - NSString *_jsonBooleanFragment; - NSString *_jsonDictionaryKey; - NSDictionary *_jsonDictionaryValue; - NSString *_jsonDictionaryFragment; - NSString *_jsonDictionaryStringValue; - NSString *_jsonArrayKey; - NSArray *_jsonArrayValue; - NSString *_jsonArrayFragment; - NSString *_jsonArrayStringValue; -} - -NSString* escapeStringForJSON(NSString *unescaped) { - return [[unescaped stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"] stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]; -} - -NSDictionary* readJSONDictionaryFromString(NSString *jsonString) { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - NSDictionary *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSDictionary class]]) { - return nil; - } else { - return jsonRoot; - } -} - -NSArray* readJSONArrayFromString(NSString *jsonString) { - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; - if (![jsonRoot isKindOfClass:[NSArray class]]) { - return nil; - } else { - return jsonRoot; - } -} - -- (void)setUp { - _jsonStringKey = @"my_string"; - _jsonStringValue = @"Hello, World!"; - _jsonStringFragment = [NSString stringWithFormat:@"\"%@\":\"%@\"", escapeStringForJSON(_jsonStringKey), escapeStringForJSON(_jsonStringValue)]; - _jsonIntegerKey = @"my_int"; - _jsonIntegerValue = @12345; - _jsonIntegerFragment = [NSString stringWithFormat:@"\"%@\":%@", escapeStringForJSON(_jsonIntegerKey), [_jsonIntegerValue stringValue]]; - _jsonBooleanKey = @"my_bool"; - _jsonBooleanValue = YES; - _jsonBooleanFragment = [NSString stringWithFormat:@"\"%@\":true", escapeStringForJSON(_jsonBooleanKey)]; - _jsonDictionaryKey = @"my_dictionary"; - _jsonDictionaryValue = @{_jsonStringKey: _jsonStringValue}; - _jsonDictionaryStringValue = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - _jsonDictionaryFragment = [NSString stringWithFormat:@"\"%@\":%@", escapeStringForJSON(_jsonDictionaryKey), _jsonDictionaryStringValue]; - _jsonArrayKey = @"my_array"; - _jsonArrayValue = @[_jsonStringValue]; - _jsonArrayStringValue = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - _jsonArrayFragment = [NSString stringWithFormat:@"\"%@\":%@", escapeStringForJSON(_jsonArrayKey), _jsonArrayStringValue]; -} - -- (void)tearDown { -} - -#pragma mark - Strings in Dictionaries - -- (void)testReadStringFromDictionaryReturnsNilIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromDictionary:jsonRoot forKey:_jsonStringKey]; - XCTAssertNil(readString); -} - -- (void)testReadStringFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromDictionary:jsonRoot forKey:_jsonStringKey withDefaultValue:_jsonStringValue]; - XCTAssertEqualObjects(_jsonStringValue, readString); -} - -- (void) testReadStringFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromDictionary:jsonRoot forKey:_jsonStringKey]; - XCTAssertEqualObjects(_jsonStringValue, readString); -} - -- (void)testReadStringFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromDictionary:jsonRoot forKey:_jsonStringKey withDefaultValue:@"Some other string"]; - XCTAssertEqualObjects(_jsonStringValue, readString); -} - -- (void) testReadStringFromDictionaryReturnsNilIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":%@}", _jsonStringKey, _jsonIntegerValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromDictionary:jsonRoot forKey:_jsonStringKey]; - XCTAssertNil(readString); -} - -#pragma mark - Strings in Arrays - -- (void)testReadStringFromArrayReturnsNilIfNotAString { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonIntegerValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromArray:jsonRoot forIndex:0]; - XCTAssertNil(readString); -} - -- (void)testReadStringFromArrayWithDefaultReturnsDefaultValueIfNotAString { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonIntegerValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromArray:jsonRoot forIndex:0 withDefaultValue:_jsonStringValue]; - XCTAssertEqualObjects(_jsonStringValue, readString); -} - -- (void)testReadStringFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return nil - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readStringFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readStringFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadStringFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSString *readString = [JSONHelper readStringFromArray:jsonRoot forIndex:0]; - XCTAssertEqualObjects(_jsonStringValue, readString); -} - -#pragma mark - Integers in Dictionaries - -- (void)testReadIntegerFromDictionaryReturnsNilIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertNil(readNumber); -} - -- (void)testReadIntegerFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromDictionary:jsonRoot forKey:_jsonIntegerKey withDefaultValue:_jsonIntegerValue]; - XCTAssertEqualObjects(_jsonIntegerValue, readNumber); -} - -- (void) testReadIntegerFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertEqualObjects(_jsonIntegerValue, readNumber); -} - -- (void)testReadIntegerFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromDictionary:jsonRoot forKey:_jsonIntegerKey withDefaultValue:@67890]; - XCTAssertEqualObjects(_jsonIntegerValue, readNumber); -} - -- (void) testReadIntegerFromDictionaryReturnsNilIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":\"%@\"}", _jsonIntegerKey, _jsonStringValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertNil(readNumber); -} - -- (void)testReadIntFromDictionaryReturnsZeroIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertEqual(0, readNumber); -} - -- (void)testReadIntFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromDictionary:jsonRoot forKey:_jsonIntegerKey withDefaultValue:[_jsonIntegerValue intValue]]; - XCTAssertEqual([_jsonIntegerValue intValue], readNumber); -} - -- (void) testReadIntFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertEqual([_jsonIntegerValue intValue], readNumber); -} - -- (void)testReadIntFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromDictionary:jsonRoot forKey:_jsonIntegerKey withDefaultValue:67890]; - XCTAssertEqual([_jsonIntegerValue intValue], readNumber); -} - -- (void) testReadIntFromDictionaryReturnsZeroIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":\"%@\"}", _jsonIntegerKey, _jsonStringValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertEqual(0, readNumber); -} - -#pragma mark - Dictionaries in Dictionaries - -- (void)testReadDictionaryFromDictionaryReturnsNilIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - - NSDictionary *readValue = [JSONHelper readDictionaryFromDictionary:jsonRoot forKey:_jsonDictionaryKey]; - XCTAssertNil(readValue); -} - -- (void)testReadDictionaryFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent{ - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromDictionary:jsonRoot forKey:_jsonDictionaryKey withDefaultValue:@{}]; - XCTAssertEqualObjects(@{}, readValue); -} - -- (void)testReadDictionaryFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonDictionaryFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromDictionary:jsonRoot forKey:_jsonDictionaryKey]; - XCTAssertEqualObjects(_jsonDictionaryValue, readValue); -} - -- (void)testReadDictionaryFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromDictionary:jsonRoot forKey:_jsonDictionaryKey withDefaultValue:@{}]; - XCTAssertEqualObjects(@{}, readValue); -} - -- (void)testReadDictionaryFromDictionaryReturnsNilIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":\"%@\"}", _jsonDictionaryKey, _jsonStringValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromDictionary:jsonRoot forKey:_jsonDictionaryKey]; - XCTAssertNil(readValue); -} - -#pragma mark - Arrays in Dictionaries - -- (void)testReadArrayFromDictionaryReturnsNilIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - - NSArray *readValue = [JSONHelper readArrayFromDictionary:jsonRoot forKey:_jsonArrayKey]; - XCTAssertNil(readValue); -} - -- (void)testReadArrayFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent{ - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromDictionary:jsonRoot forKey:_jsonArrayKey withDefaultValue:@[]]; - XCTAssertEqualObjects(@[], readValue); -} - -- (void)testReadArrayFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonArrayFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromDictionary:jsonRoot forKey:_jsonArrayKey]; - XCTAssertEqualObjects(_jsonArrayValue, readValue); -} - -- (void)testReadArrayFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonIntegerFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromDictionary:jsonRoot forKey:_jsonArrayKey withDefaultValue:@[]]; - XCTAssertEqualObjects(@[], readValue); -} - -- (void)testReadArrayFromDictionaryReturnsNilIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":\"%@\"}", _jsonArrayKey, _jsonStringValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromDictionary:jsonRoot forKey:_jsonArrayKey]; - XCTAssertNil(readValue); -} - -#pragma mark - Integers in Arrays - -- (void)testReadIntegerFromArrayReturnsNilIfNotAnInteger { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromArray:jsonRoot forIndex:0]; - XCTAssertNil(readNumber); -} - -- (void)testReadIntegerFromArrayWithDefaultReturnsDefaultValueIfNotAnInteger { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromArray:jsonRoot forIndex:0 withDefaultValue:_jsonIntegerValue]; - XCTAssertEqualObjects(_jsonIntegerValue, readNumber); -} - -- (void)testReadIntegerFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return nil - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readNumberFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readNumberFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadIntegerFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonIntegerValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSNumber *readNumber = [JSONHelper readNumberFromArray:jsonRoot forIndex:0]; - XCTAssertEqualObjects(_jsonIntegerValue, readNumber); -} - -- (void)testReadIntFromArrayReturnsNilIfNotAnInteger { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromArray:jsonRoot forIndex:0]; - XCTAssertEqual(0, readNumber); -} - -- (void)testReadIntFromArrayWithDefaultReturnsDefaultValueIfNotAnInteger { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromArray:jsonRoot forIndex:0 withDefaultValue:[_jsonIntegerValue intValue]]; - XCTAssertEqual([_jsonIntegerValue intValue], readNumber); -} - -- (void)testReadIntFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return 0 - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readIntFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readIntFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadIntFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonIntegerValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - int readNumber = [JSONHelper readIntFromArray:jsonRoot forIndex:0]; - XCTAssertEqual([_jsonIntegerValue intValue], readNumber); -} - -#pragma mark - BOOLs in Dictionaries - -- (void)testReadBoolFromDictionaryReturnsFalseIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromDictionary:jsonRoot forKey:_jsonBooleanKey]; - XCTAssertEqual(0, readValue); -} - -- (void)testReadBoolFromDictionaryWithDefaultReturnsDefaultIfKeyNotPresent { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonStringFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromDictionary:jsonRoot forKey:_jsonIntegerKey withDefaultValue:_jsonBooleanValue]; - XCTAssertEqual(_jsonBooleanValue, readValue); -} - -- (void) testReadBoolFromDictionaryReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonBooleanFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromDictionary:jsonRoot forKey:_jsonBooleanKey]; - XCTAssertEqual(_jsonBooleanValue, readValue); -} - -- (void)testReadBoolFromDictionaryWithDefaultReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"{%@}", _jsonBooleanFragment]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromDictionary:jsonRoot forKey:_jsonBooleanKey withDefaultValue:NO]; - XCTAssertEqual(_jsonBooleanValue, readValue); -} - -- (void) testReadBoolFromDictionaryReturnsFalseIfWrongType { - NSString *jsonString = [NSString stringWithFormat:@"{\"%@\":\"%@\"}", _jsonIntegerKey, _jsonStringValue]; - NSDictionary *jsonRoot = readJSONDictionaryFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromDictionary:jsonRoot forKey:_jsonIntegerKey]; - XCTAssertEqual(NO, readValue); -} - -#pragma mark - BOOLs in Arrays - -- (void)testReadBoolFromArrayReturnsFalseIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromArray:jsonRoot forIndex:0]; - XCTAssertEqual(NO, readValue); -} - -- (void)testReadBoolFromArrayWithDefaultReturnsDefaultValueIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readIntFromArray:jsonRoot forIndex:0 withDefaultValue:YES]; - XCTAssertEqual(YES, readValue); -} - -- (void)testReadBoolFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return 0 - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readBoolFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readBoolFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadBoolFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[%s]", _jsonBooleanValue ? "true" : "false"]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - BOOL readValue = [JSONHelper readBoolFromArray:jsonRoot forIndex:0]; - XCTAssertEqual(_jsonBooleanValue, readValue); -} - -#pragma mark - Dictionaries in Arrays - -- (void)testReadDictionaryFromArrayReturnsNilIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromArray:jsonRoot forIndex:0]; - XCTAssertNil(readValue); -} - -- (void)testReadDictionaryFromArrayWithDefaultReturnsDefaultValueIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromArray:jsonRoot forIndex:0 withDefaultValue:@{}]; - XCTAssertEqualObjects(@{}, readValue); -} - -- (void)testReadDictionaryFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return nil - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readDictionaryFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readDictionaryFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadDictionaryFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonDictionaryStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSDictionary *readValue = [JSONHelper readDictionaryFromArray:jsonRoot forIndex:0]; - XCTAssertEqualObjects(_jsonDictionaryValue, readValue); -} - -#pragma mark - Arrays in Arrays - -- (void)testReadArrayFromArrayReturnsNilIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromArray:jsonRoot forIndex:0]; - XCTAssertNil(readValue); -} - -- (void)testReadArrayFromArrayWithDefaultReturnsDefaultValueIfNotCoercable { - NSString *jsonString = [NSString stringWithFormat:@"[\"%@\"]", _jsonStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromArray:jsonRoot forIndex:0 withDefaultValue:@[]]; - XCTAssertEqualObjects(@[], readValue); -} - -- (void)testReadArrayFromArrayThrowsIfIndexOutOfRange { - // TODO: Decide if this should throw or return nil - NSString *jsonString = @"[]"; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - XCTAssertThrows([JSONHelper readArrayFromArray:jsonRoot forIndex:0]); - XCTAssertThrows([JSONHelper readArrayFromArray:jsonRoot forIndex:-1]); -} - -- (void)testReadArrayFromArrayReturnsCorrectValue { - NSString *jsonString = [NSString stringWithFormat:@"[%@]", _jsonArrayStringValue]; - NSArray *jsonRoot = readJSONArrayFromString(jsonString); - XCTAssertNotNil(jsonRoot); - - NSArray *readValue = [JSONHelper readArrayFromArray:jsonRoot forIndex:0]; - XCTAssertEqualObjects(_jsonArrayValue, readValue); -} - -#pragma mark - JSON parsing - -- (void)testParseJSONDataReturnsDictionary { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - id parsedResult = [JSONHelper parseJSONData:jsonData]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSDictionary class]]); -} - -- (void)testParseJSONDataReturnsArray { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - id parsedResult = [JSONHelper parseJSONData:jsonData]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSArray class]]); -} - -- (void)testParseJSONDataAsDictionaryReturnsDictionary { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - NSDictionary *parsedResult = [JSONHelper parseJSONDataAsDictionary:jsonData]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSDictionary class]]); -} - -- (void)testParseJSONDataAsDictionaryReturnsNilIfNotDictionary { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - id parsedResult = [JSONHelper parseJSONDataAsDictionary:jsonData]; - XCTAssertNil(parsedResult); -} - -- (void)testParseJSONDataAsArrayReturnsArray { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - id parsedResult = [JSONHelper parseJSONDataAsArray:jsonData]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSArray class]]); -} - -- (void)testParseJSONDataAsArrayReturnsNilIfNotArray { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; - - id parsedResult = [JSONHelper parseJSONDataAsArray:jsonData]; - XCTAssertNil(parsedResult); -} - -- (void)testParseJSONStringReturnsDictionary { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - - id parsedResult = [JSONHelper parseJSONString:jsonString]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSDictionary class]]); -} - -- (void)testParseJSONStringReturnsArray { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - - id parsedResult = [JSONHelper parseJSONString:jsonString]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSArray class]]); -} - -- (void)testParseJSONStringAsDictionaryReturnsDictionary { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - - NSDictionary *parsedResult = [JSONHelper parseJSONStringAsDictionary:jsonString]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSDictionary class]]); -} - -- (void)testParseJSONStringAsDictionaryReturnsNilIfNotDictionary { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - - id parsedResult = [JSONHelper parseJSONStringAsDictionary:jsonString]; - XCTAssertNil(parsedResult); -} - -- (void)testParseJSONStringAsArrayReturnsArray { - NSString *jsonString = @"[\"a\",1,\"b\",2]"; - - id parsedResult = [JSONHelper parseJSONStringAsArray:jsonString]; - XCTAssertNotNil(parsedResult); - XCTAssertTrue([parsedResult isKindOfClass:[NSArray class]]); -} - -- (void)testParseJSONStringAsArrayReturnsNilIfNotArray { - NSString *jsonString = @"{\"a\":1,\"b\":2}"; - - id parsedResult = [JSONHelper parseJSONStringAsArray:jsonString]; - XCTAssertNil(parsedResult); -} - -@end diff --git a/MonsterCardsTests/Models/AbilityTests.m b/MonsterCardsTests/Models/AbilityTests.m deleted file mode 100644 index 89ab413..0000000 --- a/MonsterCardsTests/Models/AbilityTests.m +++ /dev/null @@ -1,54 +0,0 @@ -// -// AbilityTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Ability.h" - -@interface AbilityTests : XCTestCase - -@end - -@implementation AbilityTests { - Ability *_ability; - NSString *_name; - NSString *_description; -} - -- (void)setUp { - _ability = [[Ability alloc] init]; - _name = @"My Ability Name"; - _description = @"This is my ability description."; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertEqualObjects(@"", _ability.name); - XCTAssertEqualObjects(@"", _ability.abilityDescription); -} - -- (void)testNameGetterAndSetter { - _ability.name = _name; - XCTAssertEqualObjects(_name, _ability.name); -} - -- (void)testDescriptionGetterAndSetter { - _ability.abilityDescription = _description; - XCTAssertEqualObjects(_description, _ability.abilityDescription); -} - -- (void)testInitWithNameAndDescription { - _ability = [[Ability alloc] initWithName:_name andDescription:_description]; - - XCTAssertEqualObjects(_name, _ability.name); - XCTAssertEqualObjects(_description, _ability.abilityDescription); -} - -@end diff --git a/MonsterCardsTests/Models/ActionTests.m b/MonsterCardsTests/Models/ActionTests.m deleted file mode 100644 index 696dc2c..0000000 --- a/MonsterCardsTests/Models/ActionTests.m +++ /dev/null @@ -1,54 +0,0 @@ -// -// ActionTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Action.h" - -@interface ActionTests : XCTestCase - -@end - -@implementation ActionTests { - Action *_action; - NSString *_name; - NSString *_description; -} - -- (void)setUp { - _action = [[Action alloc] init]; - _name = @"My Action Name"; - _description = @"This is my action description."; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertEqualObjects(@"", _action.name); - XCTAssertEqualObjects(@"", _action.actionDescription); -} - -- (void)testNameGetterAndSetter { - _action.name = _name; - XCTAssertEqualObjects(_name, _action.name); -} - -- (void)testDescriptionGetterAndSetter { - _action.actionDescription = _description; - XCTAssertEqualObjects(_description, _action.actionDescription); -} - -- (void)testInitWithNameAndDescription { - _action = [[Action alloc] initWithName:_name andDescription:_description]; - - XCTAssertEqualObjects(_name, _action.name); - XCTAssertEqualObjects(_description, _action.actionDescription); -} - -@end diff --git a/MonsterCardsTests/Models/DamageTypeTests.m b/MonsterCardsTests/Models/DamageTypeTests.m deleted file mode 100644 index 25b3f48..0000000 --- a/MonsterCardsTests/Models/DamageTypeTests.m +++ /dev/null @@ -1,61 +0,0 @@ -// -// DamageTypeTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "DamageType.h" - -@interface DamageTypeTests : XCTestCase { - DamageType *_damageType; - NSString *_name; - NSString *_note; - NSString *_type; -} - -@end - -@implementation DamageTypeTests - -- (void)setUp { - _damageType = [[DamageType alloc] init]; - _name = @"My Damage Type"; - _note = @"A note"; - _type = @"A type"; -} - -- (void)tearDown {} - -- (void)testDefaultInitializer { - XCTAssertEqualObjects(@"", _damageType.name); - XCTAssertEqualObjects(@"", _damageType.note); - XCTAssertEqualObjects(@"", _damageType.type); -} - -- (void)testInitWithNameNoteAndType { - _damageType = [[DamageType alloc] initWithName:_name note:_note andType:_type]; - - XCTAssertEqualObjects(_name, _damageType.name); - XCTAssertEqualObjects(_note, _damageType.note); - XCTAssertEqualObjects(_type, _damageType.type); -} - -- (void)testNameGetterAndSetter { - _damageType.name = _name; - XCTAssertEqualObjects(_name, _damageType.name); -} - -- (void)testNoteGetterAndSetter { - _damageType.note = _note; - XCTAssertEqualObjects(_note, _damageType.note); -} - -- (void)testTypeGetterAndSetter { - _damageType.type = _type; - XCTAssertEqualObjects(_type, _damageType.type); -} - -@end diff --git a/MonsterCardsTests/Models/LanguageTests.m b/MonsterCardsTests/Models/LanguageTests.m deleted file mode 100644 index bd021f3..0000000 --- a/MonsterCardsTests/Models/LanguageTests.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// Language.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "Language.h" - -@interface LanguageTests : XCTestCase - -@end - -@implementation LanguageTests { - Language *_language; - NSString *_name; - BOOL _canSpeak; -} - -- (void)setUp { - _language = [[Language alloc] init]; - _name = @"English"; - _canSpeak = YES; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertNotNil(_language); - XCTAssertEqualObjects(@"", _language.name); - XCTAssertEqual(YES, _language.speaks); -} - -- (void)testInitWithNameAndSpeaks { - _language = [[Language alloc] initWithName:_name andSpeaks:_canSpeak]; - - XCTAssertNotNil(_language); - XCTAssertEqualObjects(_name, _language.name); - XCTAssertEqual(_canSpeak, _language.speaks); -} - -- (void)testNameGetterAndSetter { - _language.name = _name; - XCTAssertEqualObjects(_name, _language.name); -} - -- (void)testSpeaksGetterAndSetter { - _language.speaks = NO; - XCTAssertEqual(NO, _language.speaks); -} - -@end diff --git a/MonsterCardsTests/Models/MonsterTests.m b/MonsterCardsTests/Models/MonsterTests.m deleted file mode 100644 index 5720237..0000000 --- a/MonsterCardsTests/Models/MonsterTests.m +++ /dev/null @@ -1,438 +0,0 @@ -// -// MonsterTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -@import OCHamcrest; -@import OCMockito; -#import "Monster.h" - -@interface MonsterTests : XCTestCase - -@end - -@implementation MonsterTests { - Monster *_monster; - NSManagedObjectContext *_context; - NSString *_jsonString; - NSData *_jsonData; -} - -- (void)setUp { - _context = nil; - _monster = [[Monster alloc] initWithContext:_context]; - _jsonString = @"{\"name\":\"Acolyte\",\"size\":\"medium\",\"type\":\"humanoid\",\"tag\":\"any race\",\"alignment\":\"any alignment\",\"strPoints\":8,\"dexPoints\":10,\"conPoints\":12,\"intPoints\":14,\"wisPoints\":16,\"chaPoints\":18,\"armorName\":\"none\",\"otherArmorDesc\":\"10\",\"shieldBonus\":2,\"hitDice\":3,\"customHP\":true,\"hpText\":\"1234 (1d1+magic)\"}"; - _jsonData = [_jsonString dataUsingEncoding:NSUTF8StringEncoding]; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertNotNil(_monster); - XCTAssertEqualObjects(@"", _monster.name); - XCTAssertEqualObjects(@"", _monster.size); - XCTAssertEqualObjects(@"", _monster.type); - XCTAssertEqualObjects(@"", _monster.subtype); - XCTAssertEqualObjects(@"", _monster.alignment); - XCTAssertEqual(10, _monster.strengthScore); - XCTAssertEqual(10, _monster.dexterityScore); - XCTAssertEqual(10, _monster.constitutionScore); - XCTAssertEqual(10, _monster.intelligenceScore); - XCTAssertEqual(10, _monster.wisdomScore); - XCTAssertEqual(10, _monster.charismaScore); - XCTAssertEqualObjects(@"", _monster.armorType); - XCTAssertEqualObjects(@"", _monster.otherArmorDescription); - XCTAssertEqual(0, _monster.shieldBonus); - XCTAssertEqual(NO, _monster.customHP); - XCTAssertEqual(0, _monster.hitDice); - XCTAssertEqualObjects(@"", _monster.hpText);} - -- (void)testInitWithJSONString { - _monster = [[Monster alloc] initWithJSONString:_jsonString andContext:_context]; - - XCTAssertNotNil(_monster); - XCTAssertEqualObjects(@"Acolyte", _monster.name); - XCTAssertEqualObjects(@"medium", _monster.size); - XCTAssertEqualObjects(@"humanoid", _monster.type); - XCTAssertEqualObjects(@"any race", _monster.subtype); - XCTAssertEqualObjects(@"any alignment", _monster.alignment); - XCTAssertEqual(8, _monster.strengthScore); - XCTAssertEqual(10, _monster.dexterityScore); - XCTAssertEqual(12, _monster.constitutionScore); - XCTAssertEqual(14, _monster.intelligenceScore); - XCTAssertEqual(16, _monster.wisdomScore); - XCTAssertEqual(18, _monster.charismaScore); - XCTAssertEqualObjects(@"none", _monster.armorType); - XCTAssertEqualObjects(@"10", _monster.otherArmorDescription); - XCTAssertEqual(2, _monster.shieldBonus); - XCTAssertEqual(YES, _monster.customHP); - XCTAssertEqual(3, _monster.hitDice); - XCTAssertEqualObjects(@"1234 (1d1+magic)", _monster.hpText); -} - -- (void)testInitWithEmptyJSONString { - _monster = [[Monster alloc] initWithJSONString:@"{}" andContext:_context]; - - XCTAssertNotNil(_monster); - XCTAssertEqualObjects(@"", _monster.name); - XCTAssertEqualObjects(@"", _monster.size); - XCTAssertEqualObjects(@"", _monster.type); - XCTAssertEqualObjects(@"", _monster.subtype); - XCTAssertEqualObjects(@"", _monster.alignment); - XCTAssertEqual(10, _monster.strengthScore); - XCTAssertEqual(10, _monster.dexterityScore); - XCTAssertEqual(10, _monster.constitutionScore); - XCTAssertEqual(10, _monster.intelligenceScore); - XCTAssertEqual(10, _monster.wisdomScore); - XCTAssertEqual(10, _monster.charismaScore); - XCTAssertEqualObjects(@"", _monster.armorType); - XCTAssertEqualObjects(@"", _monster.otherArmorDescription); - XCTAssertEqual(0, _monster.shieldBonus); - XCTAssertEqual(NO, _monster.customHP); - XCTAssertEqual(0, _monster.hitDice); - XCTAssertEqualObjects(@"", _monster.hpText); -} - -- (void)testInitWithJSONData { - _monster = [[Monster alloc] initWithJSONData:_jsonData andContext:_context]; - - XCTAssertNotNil(_monster); - XCTAssertEqualObjects(@"Acolyte", _monster.name); - XCTAssertEqualObjects(@"medium", _monster.size); - XCTAssertEqualObjects(@"humanoid", _monster.type); - XCTAssertEqualObjects(@"any race", _monster.subtype); - XCTAssertEqualObjects(@"any alignment", _monster.alignment); - XCTAssertEqual(8, _monster.strengthScore); - XCTAssertEqual(10, _monster.dexterityScore); - XCTAssertEqual(12, _monster.constitutionScore); - XCTAssertEqual(14, _monster.intelligenceScore); - XCTAssertEqual(16, _monster.wisdomScore); - XCTAssertEqual(18, _monster.charismaScore); - XCTAssertEqualObjects(@"none", _monster.armorType); - XCTAssertEqualObjects(@"10", _monster.otherArmorDescription); - XCTAssertEqual(2, _monster.shieldBonus); - XCTAssertEqual(YES, _monster.customHP); - XCTAssertEqual(3, _monster.hitDice); - XCTAssertEqualObjects(@"1234 (1d1+magic)", _monster.hpText); -} - -- (void)testNameGetterAndSetter { - NSString *name = @"Pixie"; - _monster.name = name; - XCTAssertEqualObjects(name, _monster.name); -} - -- (void)testSizeGetterAndSetter { - NSString *size = @"huge"; - _monster.size = size; - XCTAssertEqualObjects(size, _monster.size); -} - -- (void)testTypeGetterAndSetter { - NSString *type = @"fey"; - _monster.type = type; - XCTAssertEqualObjects(type, _monster.type); -} - -- (void)testSubtypeGetterAndSetter { - NSString *subtype = @"elf"; - _monster.subtype = subtype; - XCTAssertEqualObjects(subtype, _monster.subtype); -} - -- (void)testAlignmentGetterAndSetter { - NSString *alignment = @"chaotic good"; - _monster.alignment = alignment; - XCTAssertEqualObjects(alignment, _monster.alignment); -} -- (void)testCopyFromMonster { - Monster *otherMonster = [[Monster alloc] initWithJSONString:_jsonString andContext:_context]; - [_monster copyFromMonster:otherMonster]; - - XCTAssertNotNil(_monster); - XCTAssertEqualObjects(@"Acolyte", _monster.name); - XCTAssertEqualObjects(@"medium", _monster.size); - XCTAssertEqualObjects(@"humanoid", _monster.type); - XCTAssertEqualObjects(@"any race", _monster.subtype); - XCTAssertEqualObjects(@"any alignment", _monster.alignment); - XCTAssertEqual(8, _monster.strengthScore); - XCTAssertEqual(10, _monster.dexterityScore); - XCTAssertEqual(12, _monster.constitutionScore); - XCTAssertEqual(14, _monster.intelligenceScore); - XCTAssertEqual(16, _monster.wisdomScore); - XCTAssertEqual(18, _monster.charismaScore); - XCTAssertEqualObjects(@"none", _monster.armorType); - XCTAssertEqualObjects(@"10", _monster.otherArmorDescription); - XCTAssertEqual(2, _monster.shieldBonus); -} - -- (void)testMetaWithNoFieldsSet { - - XCTAssertEqualObjects(@"", _monster.meta); -} - -- (void)testMetaWithSize { - _monster.size = @"large"; - XCTAssertEqualObjects(@"large", _monster.meta); -} - -- (void)testMetaWithType { - _monster.type = @"humanoid"; - XCTAssertEqualObjects(@"humanoid", _monster.meta); -} - -- (void)testMetaWithSizeAndType { - _monster.size = @"large"; - _monster.type = @"humanoid"; - XCTAssertEqualObjects(@"large humanoid", _monster.meta); -} - -- (void)testMetaWithSubtype { - _monster.subtype = @"elf"; - XCTAssertEqualObjects(@"(elf)", _monster.meta); -} - -- (void)testMetaWithSizeAndSubtype { - _monster.size = @"large"; - _monster.subtype = @"elf"; - XCTAssertEqualObjects(@"large (elf)", _monster.meta); -} - -- (void)testMetaWithTypeAndSubtype { - _monster.type = @"humanoid"; - _monster.subtype = @"elf"; - XCTAssertEqualObjects(@"humanoid (elf)", _monster.meta); -} - -- (void)testMetaWithSizeTypeAndSubtype { - _monster.size = @"large"; - _monster.type = @"humanoid"; - _monster.subtype = @"elf"; - XCTAssertEqualObjects(@"large humanoid (elf)", _monster.meta); -} - -- (void)testMetaWithAlignment { - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"chaotic good", _monster.meta); -} - -- (void)testMetaWithSizeAndAlignment { - _monster.size = @"large"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"large chaotic good", _monster.meta); -} - -- (void)testMetaWithTypeAndAlignment { - _monster.type = @"humanoid"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"humanoid chaotic good", _monster.meta); -} - -- (void)testMetaWithSizeTypeAndAlignment { - _monster.size = @"large"; - _monster.type = @"humanoid"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"large humanoid chaotic good", _monster.meta); -} - -- (void)testMetaWithSizeSubtypeAndAlignment { - _monster.size = @"large"; - _monster.subtype = @"elf"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"large (elf) chaotic good", _monster.meta); -} - -- (void)testMetaWithTypeSubtypeAndAlignment { - _monster.type = @"humanoid"; - _monster.subtype = @"elf"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"humanoid (elf) chaotic good", _monster.meta); -} - -- (void)testMetaWithSizeTypeSubtypeAndAlignment { - _monster.size = @"large"; - _monster.type = @"humanoid"; - _monster.subtype = @"elf"; - _monster.alignment = @"chaotic good"; - XCTAssertEqualObjects(@"large humanoid (elf) chaotic good", _monster.meta); -} - -- (void)testAbilityModifierForScore { - XCTAssertEqual(-6, [Monster abilityModifierForScore:-1]); - XCTAssertEqual(-5, [Monster abilityModifierForScore:0]); - XCTAssertEqual(-5, [Monster abilityModifierForScore:1]); - XCTAssertEqual(-4, [Monster abilityModifierForScore:2]); - XCTAssertEqual(-4, [Monster abilityModifierForScore:3]); - XCTAssertEqual(-3, [Monster abilityModifierForScore:4]); - XCTAssertEqual(-3, [Monster abilityModifierForScore:5]); - XCTAssertEqual(-2, [Monster abilityModifierForScore:6]); - XCTAssertEqual(-2, [Monster abilityModifierForScore:7]); - XCTAssertEqual(-1, [Monster abilityModifierForScore:8]); - XCTAssertEqual(-1, [Monster abilityModifierForScore:9]); - XCTAssertEqual(0, [Monster abilityModifierForScore:10]); - XCTAssertEqual(0, [Monster abilityModifierForScore:11]); - XCTAssertEqual(1, [Monster abilityModifierForScore:12]); - XCTAssertEqual(1, [Monster abilityModifierForScore:13]); - XCTAssertEqual(2, [Monster abilityModifierForScore:14]); - XCTAssertEqual(2, [Monster abilityModifierForScore:15]); - XCTAssertEqual(3, [Monster abilityModifierForScore:16]); - XCTAssertEqual(3, [Monster abilityModifierForScore:17]); - XCTAssertEqual(4, [Monster abilityModifierForScore:18]); - XCTAssertEqual(4, [Monster abilityModifierForScore:19]); - XCTAssertEqual(5, [Monster abilityModifierForScore:20]); -} - -- (void)testStrengthScoreGetterAndSetter { - _monster.strengthScore = 11; - XCTAssertEqual(11, _monster.strengthScore); -} - -- (void)testStrengthModifier { - _monster.strengthScore = 9; - XCTAssertEqual(-1, _monster.strengthModifier); - - _monster.strengthScore = 10; - XCTAssertEqual(0, _monster.strengthModifier); - - _monster.strengthScore = 12; - XCTAssertEqual(1, _monster.strengthModifier); -} - -- (void)testDexterityScoreGetterAndSetter { - _monster.dexterityScore = 11; - XCTAssertEqual(11, _monster.dexterityScore); -} - -- (void)testDexterityModifier { - _monster.dexterityScore = 9; - XCTAssertEqual(-1, _monster.dexterityModifier); - - _monster.dexterityScore = 10; - XCTAssertEqual(0, _monster.dexterityModifier); - - _monster.dexterityScore = 12; - XCTAssertEqual(1, _monster.dexterityModifier); -} - -- (void)testConstitutionScoreGetterAndSetter { - _monster.constitutionScore = 11; - XCTAssertEqual(11, _monster.constitutionScore); -} - -- (void)testConstitutionModifier { - _monster.constitutionScore = 9; - XCTAssertEqual(-1, _monster.constitutionModifier); - - _monster.constitutionScore = 10; - XCTAssertEqual(0, _monster.constitutionModifier); - - _monster.constitutionScore = 12; - XCTAssertEqual(1, _monster.constitutionModifier); -} - -- (void)testIntelligenceScoreGetterAndSetter { - _monster.intelligenceScore = 11; - XCTAssertEqual(11, _monster.intelligenceScore); -} - -- (void)testIntelligenceModifier { - _monster.intelligenceScore = 9; - XCTAssertEqual(-1, _monster.intelligenceModifier); - - _monster.intelligenceScore = 10; - XCTAssertEqual(0, _monster.intelligenceModifier); - - _monster.intelligenceScore = 12; - XCTAssertEqual(1, _monster.intelligenceModifier); -} - -- (void)testWisdomScoreGetterAndSetter { - _monster.wisdomScore = 11; - XCTAssertEqual(11, _monster.wisdomScore); -} - -- (void)testWisdomModifier { - _monster.wisdomScore = 9; - XCTAssertEqual(-1, _monster.wisdomModifier); - - _monster.wisdomScore = 10; - XCTAssertEqual(0, _monster.wisdomModifier); - - _monster.wisdomScore = 12; - XCTAssertEqual(1, _monster.wisdomModifier); -} - -- (void)testCharismaScoreGetterAndSetter { - _monster.charismaScore = 11; - XCTAssertEqual(11, _monster.charismaScore); -} - -- (void)testCharismaModifier { - _monster.charismaScore = 9; - XCTAssertEqual(-1, _monster.charismaModifier); - - _monster.charismaScore = 10; - XCTAssertEqual(0, _monster.charismaModifier); - - _monster.charismaScore = 12; - XCTAssertEqual(1, _monster.charismaModifier); -} - -- (void)testGetterAndSetterForArmorName { - _monster.armorType = @"dandelion"; - XCTAssertEqualObjects(@"dandelion", _monster.armorType); -} - -- (void)testGetterAndSetterForOtherArmorDescription { - _monster.otherArmorDescription = @"green"; - XCTAssertEqualObjects(@"green", _monster.otherArmorDescription); -} - -- (void)testHitDieForSizeReturnsExpectedValuesForKnownSizes { - -} - -- (void)testHitDieForSizeReutnrsEightForUnknownSizes { - XCTAssertEqual(4, [Monster hitDieForSize:kMonsterSizeTiny]); - XCTAssertEqual(6, [Monster hitDieForSize:kMonsterSizeSmall]); - XCTAssertEqual(8, [Monster hitDieForSize:kMonsterSizeMedium]); - XCTAssertEqual(10, [Monster hitDieForSize:kMonsterSizeLarge]); - XCTAssertEqual(12, [Monster hitDieForSize:kMonsterSizeHuge]); - XCTAssertEqual(20, [Monster hitDieForSize:kMonsterSizeGargantuan]); -} - -- (void)testCustomHPGetterAndSetter { - XCTAssertEqual(8, [Monster hitDieForSize:nil]); - XCTAssertEqual(8, [Monster hitDieForSize:@""]); - XCTAssertEqual(8, [Monster hitDieForSize:@"unknown size"]); -} - -- (void)testHitDiceGetterAndSetter { - _monster.hitDice = 9; - XCTAssertEqual(9, _monster.hitDice); -} - -- (void)testHPTextGetterAndSetter { - _monster.hpText = @"This is my HP."; - XCTAssertEqualObjects(@"This is my HP.", _monster.hpText); -} - -- (void)testHitPointsDescriptionWithCustomHP { - _monster = [[Monster alloc] initWithJSONString:_jsonString andContext:_context]; - _monster.customHP = YES; - XCTAssertEqualObjects(@"1234 (1d1+magic)", _monster.hitPointsDescription); -} - -- (void)testHitPointsDescriptionWithCalculatedHP { - _monster = [[Monster alloc] initWithJSONString:_jsonString andContext:_context]; - _monster.customHP = NO; - XCTAssertEqualObjects(@"20 (3d8+3)", _monster.hitPointsDescription); -} - -@end diff --git a/MonsterCardsTests/Models/SavingThrowTests.m b/MonsterCardsTests/Models/SavingThrowTests.m deleted file mode 100644 index 31e793f..0000000 --- a/MonsterCardsTests/Models/SavingThrowTests.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// SavingThrowTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -#import "SavingThrow.h" - -@interface SavingThrowTests : XCTestCase - -@end - -@implementation SavingThrowTests { - SavingThrow *_savingThrow; - NSString *_name; - int _order; -} - -- (void)setUp { - _savingThrow = [[SavingThrow alloc] init]; - _name = @"str"; - _order = 9; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertNotNil(_savingThrow); - XCTAssertEqualObjects(@"", _savingThrow.name); - XCTAssertEqual(-1, _savingThrow.order); -} - -- (void)testInitWithNameAndOrder { - _savingThrow = [[SavingThrow alloc] initWithName:_name andOrder:_order]; - XCTAssertNotNil(_savingThrow); - XCTAssertEqualObjects(_name, _savingThrow.name); - XCTAssertEqual(_order, _savingThrow.order); -} - -- (void)testNameGetterAndSetter { - _savingThrow.name = _name; - XCTAssertEqualObjects(_name, _savingThrow.name); -} - -- (void)testOrderGetterAndSetter { - _savingThrow.order = _order; - XCTAssertEqual(_order, _savingThrow.order); -} - -@end diff --git a/MonsterCardsTests/Models/SkillTests.m b/MonsterCardsTests/Models/SkillTests.m deleted file mode 100644 index a1975ad..0000000 --- a/MonsterCardsTests/Models/SkillTests.m +++ /dev/null @@ -1,106 +0,0 @@ -// -// SkillTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/5/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -@import OCMockito; -@import OCHamcrest; -#import "Skill.h" - -@interface SkillTests : XCTestCase - -@end - -@implementation SkillTests { - Skill *_skill; - NSString *_name; - NSString *_abilityScoreName; - NSString *_notes; -} - -- (void)setUp { - _skill = [[Skill alloc] init]; - _name = @"pranking"; - _abilityScoreName = @"str"; - _notes = @"some notes"; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testDefaultInitializer { - XCTAssertNotNil(_skill); - XCTAssertEqualObjects(@"", _skill.name); - XCTAssertEqualObjects(@"", _skill.abilityScoreName); - XCTAssertEqualObjects(@"", _skill.notes); -} - -- (void)testInitWithNameAbilityScoreNameAndNotes { - _skill = [[Skill alloc] initWithName:_name abilityScoreName:_abilityScoreName andNotes:_notes]; - XCTAssertNotNil(_skill); - XCTAssertEqualObjects(_name, _skill.name); - XCTAssertEqualObjects(_abilityScoreName, _skill.abilityScoreName); - XCTAssertEqualObjects(_notes, _skill.notes); -} - -- (void)testNameGetterAndSetter { - _skill.name = _name; - XCTAssertEqualObjects(_name, _skill.name); -} - -- (void)testAbilityScoreNameGetterAndSetter { - _skill.abilityScoreName = _abilityScoreName; - XCTAssertEqualObjects(_abilityScoreName, _skill.abilityScoreName); -} - -- (void)testNotesGetterAndSetter { - _skill.notes = _notes; - XCTAssertEqualObjects(_notes, _skill.notes); -} - -- (void)testSkillBonusForMonster { - Monster *monster = mock([Monster class]); - [given([monster abilityModifierForAbilityScoreName:_abilityScoreName]) willReturnInt:1]; - stubProperty(monster, proficiencyBonus, @2); - - _skill = [[Skill alloc] initWithName:_name abilityScoreName:_abilityScoreName andNotes:_notes]; - - XCTAssertEqual(3, [_skill skillBonusForMonster:monster]); -} - -- (void)testSkillBonusForMonsterWithExpertise { - Monster *monster = mock([Monster class]); - [given([monster abilityModifierForAbilityScoreName:_abilityScoreName]) willReturnInt:1]; - stubProperty(monster, proficiencyBonus, @2); - - _skill = [[Skill alloc] initWithName:_name abilityScoreName:_abilityScoreName andNotes:@" (ex)"]; - - XCTAssertEqual(5, [_skill skillBonusForMonster:monster]); -} - -- (void)testTextForMonster { - Monster *monster = mock([Monster class]); - [given([monster abilityModifierForAbilityScoreName:_abilityScoreName]) willReturnInt:1]; - stubProperty(monster, proficiencyBonus, @2); - - _skill = [[Skill alloc] initWithName:_name abilityScoreName:_abilityScoreName andNotes:_notes]; - - XCTAssertEqualObjects(@"Pranking 3", [_skill textForMonster:monster]); -} - -- (void)testTextForMonsterWithExpertise { - Monster *monster = mock([Monster class]); - [given([monster abilityModifierForAbilityScoreName:_abilityScoreName]) willReturnInt:1]; - stubProperty(monster, proficiencyBonus, @2); - - _skill = [[Skill alloc] initWithName:_name abilityScoreName:_abilityScoreName andNotes:@" (ex)"]; - - XCTAssertEqualObjects(@"Pranking 5", [_skill textForMonster:monster]); -} - -@end diff --git a/MonsterCardsTests/MonsterCardsTests.m b/MonsterCardsTests/MonsterCardsTests.m deleted file mode 100644 index c17a47c..0000000 --- a/MonsterCardsTests/MonsterCardsTests.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// MonsterCardsTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -@interface MonsterCardsTests : XCTestCase - -@end - -@implementation MonsterCardsTests - -- (void)setUp { - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/MonsterCardsTests/MonsterCardsTests.swift b/MonsterCardsTests/MonsterCardsTests.swift new file mode 100644 index 0000000..9b1f4ea --- /dev/null +++ b/MonsterCardsTests/MonsterCardsTests.swift @@ -0,0 +1,33 @@ +// +// MonsterCardsTests.swift +// MonsterCardsTests +// +// Created by Tom Hicks on 1/15/21. +// + +import XCTest +@testable import MonsterCards + +class MonsterCardsTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/MonsterCardsTests/Views/EditMonsterViewControllerTests.m b/MonsterCardsTests/Views/EditMonsterViewControllerTests.m deleted file mode 100644 index 747435d..0000000 --- a/MonsterCardsTests/Views/EditMonsterViewControllerTests.m +++ /dev/null @@ -1,130 +0,0 @@ -// -// EditMonsterViewControllerTests.m -// MonsterCardsTests -// -// Created by Tom Hicks on 9/12/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import -@import OCMockito; -@import OCHamcrest; -#import "MCShortStringFieldTableViewCell.h" -#import "EditMonsterViewController.h" -#import "AppDelegate.h" - -@interface EditMonsterViewControllerTests : XCTestCase - -@end - -@implementation EditMonsterViewControllerTests { - EditMonsterViewController *_viewController; - NSManagedObjectContext *_context; - AppDelegate *_appDelegate; - NSPersistentCloudKitContainer *_persistentContainer; - Monster *_monster; -} - -- (void)setUp { - _monster = mock([Monster class]); - _viewController = [[EditMonsterViewController alloc] init]; - _context = mock([NSManagedObjectContext class]); - _appDelegate = mock([AppDelegate class]); - _persistentContainer = mock([NSPersistentCloudKitContainer class]); - - UIApplication.sharedApplication.delegate = _appDelegate; -} - -- (void)tearDown { -} - -- (void)testRendersSubtypeCell { - UITableView *monstersTableView = mock([UITableView class]); - NSIndexPath *path = [NSIndexPath indexPathForRow:3 inSection:0]; - MCShortStringFieldTableViewCell *shortStringCell = [[MCShortStringFieldTableViewCell alloc] init]; - UITextField *textField = [[UITextField alloc] init]; - shortStringCell.textField = textField; - - [given([monstersTableView dequeueReusableCellWithIdentifier:@"MCShortStringField"]) willReturn:shortStringCell]; - - _monster.subtype = @"elf"; - _viewController.originalMonster = _monster; - _viewController.monsterTableView = monstersTableView; - [_viewController viewDidLoad]; - [_viewController viewWillAppear:NO]; - - UITableViewCell *cell = [_viewController tableView:monstersTableView cellForRowAtIndexPath:path]; - - XCTAssertNotNil(cell); - - XCTAssertTrue([cell isKindOfClass:[MCShortStringFieldTableViewCell class]]); - shortStringCell = (MCShortStringFieldTableViewCell*)cell; - XCTAssertEqualObjects(@"monster.subtype", shortStringCell.identifier); - XCTAssertEqualObjects(@"Subtype", shortStringCell.textField.placeholder); - XCTAssertEqualObjects(@"", shortStringCell.textField.text); - XCTAssertEqual(_viewController, shortStringCell.delegate); -} - -- (void)testEditingSubtype { - UIViewController *destinationVC = mock([UIViewController class]); - UIStoryboardSegue *segue = [UIStoryboardSegue segueWithIdentifier:@"SaveChanges" source:_viewController destination:destinationVC performHandler:^{}]; - - _monster = [[Monster alloc] initWithContext:_context]; - _monster.subtype = @"elf"; - _viewController.originalMonster = _monster; - [_viewController viewDidLoad]; - [_viewController viewWillAppear:NO]; - - [_viewController editableValueDidChange:@"newValue" forIdentifier:@"monster.subtype" andType:@"String"]; - - [_viewController prepareForSegue:segue sender:nil]; - - XCTAssertEqualObjects(@"newValue", _viewController.originalMonster.subtype); -} - -- (void)testRendersAlignmentCell { - UITableView *monstersTableView = mock([UITableView class]); - NSIndexPath *path = [NSIndexPath indexPathForRow:4 inSection:0]; - MCShortStringFieldTableViewCell *shortStringCell = [[MCShortStringFieldTableViewCell alloc] init]; - UITextField *textField = [[UITextField alloc] init]; - shortStringCell.textField = textField; - - [given([monstersTableView dequeueReusableCellWithIdentifier:@"MCShortStringField"]) willReturn:shortStringCell]; - - _monster.alignment = @"chaotic good"; - _viewController.originalMonster = _monster; - _viewController.monsterTableView = monstersTableView; - [_viewController viewDidLoad]; - [_viewController viewWillAppear:NO]; - - UITableViewCell *cell = [_viewController tableView:monstersTableView cellForRowAtIndexPath:path]; - - XCTAssertNotNil(cell); - - XCTAssertTrue([cell isKindOfClass:[MCShortStringFieldTableViewCell class]]); - shortStringCell = (MCShortStringFieldTableViewCell*)cell; - XCTAssertEqualObjects(@"monster.alignment", shortStringCell.identifier); - XCTAssertEqualObjects(@"Alignment", shortStringCell.textField.placeholder); - XCTAssertEqualObjects(@"", shortStringCell.textField.text); - XCTAssertEqual(_viewController, shortStringCell.delegate); -} - -- (void)testEditingAlignment { - UIViewController *destinationVC = mock([UIViewController class]); - UIStoryboardSegue *segue = [UIStoryboardSegue segueWithIdentifier:@"SaveChanges" source:_viewController destination:destinationVC performHandler:^{}]; - - _monster = [[Monster alloc] initWithContext:_context]; - _monster.alignment = @"chaotic good"; - _viewController.originalMonster = _monster; - [_viewController viewDidLoad]; - [_viewController viewWillAppear:NO]; - - [_viewController editableValueDidChange:@"newValue" forIdentifier:@"monster.alignment" andType:@"String"]; - - [_viewController prepareForSegue:segue sender:nil]; - - XCTAssertEqualObjects(@"newValue", _viewController.originalMonster.alignment); -} - - -@end diff --git a/MonsterCardsUITests/MonsterCardsUITests.m b/MonsterCardsUITests/MonsterCardsUITests.m deleted file mode 100644 index ab20ba7..0000000 --- a/MonsterCardsUITests/MonsterCardsUITests.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// MonsterCardsUITests.m -// MonsterCardsUITests -// -// Created by Tom Hicks on 9/2/20. -// Copyright © 2020 Tom Hicks. All rights reserved. -// - -#import - -@interface MonsterCardsUITests : XCTestCase - -@end - -@implementation MonsterCardsUITests - -- (void)setUp { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - self.continueAfterFailure = NO; - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample { - // UI tests must launch the application that they test. - XCUIApplication *app = [[XCUIApplication alloc] init]; - [app launch]; - - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testLaunchPerformance { - if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { - // This measures how long it takes to launch your application. - [self measureWithMetrics:@[XCTOSSignpostMetric.applicationLaunchMetric] block:^{ - [[[XCUIApplication alloc] init] launch]; - }]; - } -} - -@end diff --git a/MonsterCardsUITests/MonsterCardsUITests.swift b/MonsterCardsUITests/MonsterCardsUITests.swift new file mode 100644 index 0000000..92fbd4d --- /dev/null +++ b/MonsterCardsUITests/MonsterCardsUITests.swift @@ -0,0 +1,42 @@ +// +// MonsterCardsUITests.swift +// MonsterCardsUITests +// +// Created by Tom Hicks on 1/15/21. +// + +import XCTest + +class MonsterCardsUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/Podfile b/Podfile deleted file mode 100644 index e4de1c3..0000000 --- a/Podfile +++ /dev/null @@ -1,23 +0,0 @@ -# Uncomment the next line to define a global platform for your project - platform :ios, '12.0' - -target 'MonsterCards' do - # Comment the next line if you don't want to use dynamic frameworks - use_frameworks! - - # Pods for MonsterCards - - target 'MonsterCardsTests' do - inherit! :search_paths - # Pods for testing - use_frameworks! - pod 'OCMockito', '~> 5.0' - end - - target 'MonsterCardsUITests' do - # Pods for testing - use_frameworks! - pod 'OCMockito', '~> 5.0' - end - -end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index 243f7f5..0000000 --- a/Podfile.lock +++ /dev/null @@ -1,20 +0,0 @@ -PODS: - - OCHamcrest (7.1.2) - - OCMockito (5.1.3): - - OCHamcrest (~> 7.0) - -DEPENDENCIES: - - OCMockito (~> 5.0) - -SPEC REPOS: - trunk: - - OCHamcrest - - OCMockito - -SPEC CHECKSUMS: - OCHamcrest: b284c9592c28c1e4025a8542e67ea41a635d0d73 - OCMockito: 677cbb4a18fd492b5a4fb10144dada4de5ddb877 - -PODFILE CHECKSUM: 36e78345fa3ece507b6ca1b4a3033ab665fec396 - -COCOAPODS: 1.9.3 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock deleted file mode 100644 index 243f7f5..0000000 --- a/Pods/Manifest.lock +++ /dev/null @@ -1,20 +0,0 @@ -PODS: - - OCHamcrest (7.1.2) - - OCMockito (5.1.3): - - OCHamcrest (~> 7.0) - -DEPENDENCIES: - - OCMockito (~> 5.0) - -SPEC REPOS: - trunk: - - OCHamcrest - - OCMockito - -SPEC CHECKSUMS: - OCHamcrest: b284c9592c28c1e4025a8542e67ea41a635d0d73 - OCMockito: 677cbb4a18fd492b5a4fb10144dada4de5ddb877 - -PODFILE CHECKSUM: 36e78345fa3ece507b6ca1b4a3033ab665fec396 - -COCOAPODS: 1.9.3 diff --git a/Pods/OCHamcrest/LICENSE.txt b/Pods/OCHamcrest/LICENSE.txt deleted file mode 100644 index 2a24489..0000000 --- a/Pods/OCHamcrest/LICENSE.txt +++ /dev/null @@ -1,13 +0,0 @@ -OCHamcrest by Jon Reid, https://qualitycoding.org/ -Copyright 2019 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(BSD License) diff --git a/Pods/OCHamcrest/README.md b/Pods/OCHamcrest/README.md deleted file mode 100644 index 45a0e1c..0000000 --- a/Pods/OCHamcrest/README.md +++ /dev/null @@ -1,244 +0,0 @@ -![ochamcrest](http://hamcrest.org/images/logo.jpg) - -What is OCHamcrest? -------------------- - -[![Build Status](https://travis-ci.org/hamcrest/OCHamcrest.svg?branch=master)](https://travis-ci.org/hamcrest/OCHamcrest) -[![Coverage Status](https://coveralls.io/repos/hamcrest/OCHamcrest/badge.svg?branch=master)](https://coveralls.io/r/hamcrest/OCHamcrest?branch=master) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Cocoapods Version](https://cocoapod-badges.herokuapp.com/v/OCHamcrest/badge.png)](https://cocoapods.org/pods/OCHamcrest) -[![Twitter Follow](https://img.shields.io/twitter/follow/qcoding.svg?style=social)](https://twitter.com/qcoding) - -OCHamcrest is an Objective-C module providing: - -* a library of "matcher" objects for declaring rules to check whether a given object matches those - rules. -* a framework for writing your own matchers. - -Matchers are useful for a variety of purposes, such as UI validation. But they're most commonly used -for writing unit tests that are expressive and flexible. - - -My first OCHamcrest test ------------------------- - -We'll start by writing a very simple Xcode unit test, but instead of using XCTest's -`XCTAssertEqualObjects` function, we'll use OCHamcrest's `assertThat` construct and a predefined -matcher: - -```obj-c -@import OCHamcrest; -@import XCTest; - -@interface BiscuitTest : XCTestCase -@end - -@implementation BiscuitTest - -- (void)testEquals -{ - Biscuit* theBiscuit = [[Biscuit alloc] initWithName:@"Ginger"]; - Biscuit* myBiscuit = [[Biscuit alloc] initWithName:@"Ginger"]; - assertThat(theBiscuit, equalTo(myBiscuit)); -} - -@end -``` - -The `assertThat` function is a stylized sentence for making a test assertion. In this example, the -subject of the assertion is the object `theBiscuit`, which is the first method parameter. The second -method parameter is a matcher for `Biscuit` objects, here a matcher that checks one object is equal -to another using the `-isEqual:` method. The test passes since the `Biscuit` class defines an -`-isEqual:` method. - -OCHamcrest's functions are actually declared with an "HC_" package prefix (such as `HC_assertThat` -and `HC_equalTo`) to avoid name clashes. To make test writing faster and test code more legible, -optional short syntax is provided by default. For example, instead of writing `HC_assertThat`, -simply write `assertThat`. - - -Predefined matchers -------------------- - -OCHamcrest comes with a library of useful matchers: - -* Object - - * `conformsTo` - match object that conforms to protocol - * `equalTo` - match equal object - * `hasDescription` - match object's `-description` - * `hasProperty` - match return value of method with given name - * `instanceOf` - match object type - * `isA` - match object type precisely, no subclasses - * `nilValue`, `notNilValue` - match `nil`, or not `nil` - * `sameInstance` - match same object - * `throwsException` - match block that throws an exception - * HCArgumentCaptor - match anything, capturing all values - -* Number - - * `closeTo` - match number close to a given value - * `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, - `lessThanOrEqualTo` - match numeric ordering - * `isFalse` - match zero - * `isTrue` - match non-zero - -* Text - - * `containsSubstring` - match part of a string - * `endsWith` - match the end of a string - * `equalToIgnoringCase` - match the complete string but ignore case - * `equalToIgnoringWhitespace` - match the complete string but ignore extra - whitespace - * `startsWith` - match the beginning of a string - * `stringContainsInOrder`, `stringContainsInOrderIn` - match parts of a string, in relative order - -* Logical - - * `allOf`, `allOfIn` - "and" together all matchers - * `anyOf`, `anyOfIn` - "or" together all matchers - * `anything` - match anything (useful in composite matchers when you don't - care about a particular value) - * `isNot` - negate the matcher - -* Collection - - * `contains`, `containsIn` - exactly match the entire collection - * `containsInAnyOrder`, `containsInAnyOrderIn` - match the entire collection, but in any order - * `containsInRelativeOrder`, `containsInRelativeOrderIn` - match collection containing items in relative order - * `everyItem` - match if every item in a collection satisfies a given matcher - * `hasCount` - match number of elements against another matcher - * `hasCountOf` - match collection with given number of elements - * `hasEntries` - match dictionary with key-value pairs in a dictionary - * `hasEntriesIn` - match dictionary with key-value pairs in a list - * `hasEntry` - match dictionary containing a key-value pair - * `hasItem` - match if given item appears in the collection - * `hasItems`, `hasItemsIn` - match if all given items appear in the collection, in any order - * `hasKey` - match dictionary with a key - * `hasValue` - match dictionary with a value - * `isEmpty` - match empty collection - * `isIn` - match when object is in given collection - * `onlyContains`, `onlyContainsIn` - match if collection's items appear in given list - -* Decorator - - * `describedAs` - give the matcher a custom failure description - * `is` - decorator to improve readability - see "Syntactic sugar" below - -The arguments for many of these matchers accept not just a matching value, but -another matcher, so matchers can be composed for greater flexibility. For -example, `only_contains(endsWith(@"."))` will match any collection where every -item is a string ending with period. - - -Syntactic sugar ---------------- - -OCHamcrest strives to make your tests as readable as possible. For example, the `is` matcher is a -wrapper that doesn't add any extra behavior to the underlying matcher. The following assertions are -all equivalent: - -```obj-c -assertThat(theBiscuit, equalTo(myBiscuit)); -assertThat(theBiscuit, is(equalTo(myBiscuit))); -assertThat(theBiscuit, is(myBiscuit)); -``` - -The last form is allowed since `is` wraps non-matcher arguments with `equalTo`. Other matchers that -take matchers as arguments provide similar shortcuts, wrapping non-matcher arguments in `equalTo`. - - -How can I assert on an asynchronous call? ------------------------------------------ - -`assertWithTimeout` will keep evaluating an expression until the matcher is satisfied or a timeout -is reached. For example, - -```obj-c -assertWithTimeout(5, thatEventually(self.someString), is(@"expected")); -``` - -This repeatedly checks for this string to evaluate to "expected" before timing out after 5 seconds. -`thatEventually` is a convenience macro to create a block. - - -Writing custom matchers ------------------------ - -OCHamcrest comes bundled with lots of useful matchers, but you'll probably find that you need to -create your own from time to time to fit your testing needs. See the -["Writing Custom Matchers" guide for more information](https://github.com/hamcrest/OCHamcrest/wiki/Writing-Custom-Matchers). - - -What about Swift? ------------------ - -Try the [native Swift implementation of Hamcrest](https://github.com/nschum/SwiftHamcrest). - - -How do I add OCHamcrest to my project? --------------------------------------- - -The Examples folder shows projects using OCHamcrest either through CocoaPods or through the prebuilt -frameworks, for iOS and macOS development. - -### CocoaPods - -If you want to add OCHamcrest using Cocoapods then add the following dependency to your Podfile. -Most people will want OCHamcrest in their test targets, and not include any pods from their main -targets: - -```ruby -target 'MyTests' do - inherit! :search_paths - use_frameworks! - pod 'OCHamcrest', '~> 7.0' -end -``` - -Use the following import: - - @import OCHamcrest; - -### Carthage - -Add the following to your Cartfile: - - github "hamcrest/OCHamcrest" ~> 7.0 - -Then drag the the built framework from the appropriate Carthage/Build directory into your project, -but with "Copy items into destination group's folder" disabled. - -### Prebuilt Frameworks - -Prebuilt binaries are available on [GitHub](https://github.com/hamcrest/OCHamcrest/releases/). The -binaries are packaged as frameworks: - -* __OCHamcrestIOS.framework__ for iOS development -* __OCHamcrest.framework__ for macOS development - -Drag the appropriate framework into your project, specifying "Copy items into destination group's -folder". Then specify `-ObjC` in your "Other Linker Flags". - -#### iOS Development: - -Use the following import: - - @import OCHamcrestIOS; - -#### macOS Development: - -Add a "Copy Files" build phase to copy OCHamcrest.framework to your Products Directory. - -Use the following import: - - @import OCHamcrest; - -### Build Your Own - -If you want to build OCHamcrest yourself, clone the repo, then - -```sh -$ cd Source -$ ./MakeDistribution.sh -``` diff --git a/Pods/OCHamcrest/Source/Core/HCAssertThat.h b/Pods/OCHamcrest/Source/Core/HCAssertThat.h deleted file mode 100644 index 138f80f..0000000 --- a/Pods/OCHamcrest/Source/Core/HCAssertThat.h +++ /dev/null @@ -1,96 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@protocol HCMatcher; - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @header - * Assertion macros for using matchers in testing frameworks. - * Unmet assertions are reported to the HCTestFailureReporterChain. - */ - - -FOUNDATION_EXPORT void HC_assertThatWithLocation(id testCase, _Nullable id actual, id matcher, - const char *fileName, int lineNumber); - -#define HC_assertThat(actual, matcher) \ - HC_assertThatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThat(actual, matcher) - - * Asserts that actual value satisfies matcher. - * @param actual The object to evaluate as the actual value. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion assertThat passes the actual value to the matcher for evaluation. If the matcher is - * not satisfied, it is reported to the HCTestFailureReporterChain. - * - * Use assertThat in test case methods. It's designed to integrate with XCTest and other testing - * frameworks where individual tests are executed as methods. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThat instead. - */ -#define assertThat(actual, matcher) HC_assertThat(actual, matcher) -#endif - - -typedef _Nonnull id (^HCFutureValue)(void); - -FOUNDATION_EXPORT void HC_assertWithTimeoutAndLocation(id testCase, NSTimeInterval timeout, - HCFutureValue actualBlock, id matcher, - const char *fileName, int lineNumber); - -#define HC_assertWithTimeout(timeout, actualBlock, matcher) \ - HC_assertWithTimeoutAndLocation(self, timeout, actualBlock, matcher, __FILE__, __LINE__) - -#define HC_thatEventually(actual) ^{ return actual; } - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertWithTimeout(timeout, actualBlock, matcher) - - * Asserts that a value provided by a block will satisfy matcher within the specified time. - * @param timeout Maximum time to wait for passing behavior, specified in seconds. - * @param actualBlock A block providing the object to repeatedly evaluate as the actual value. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion assertWithTimeout polls a value provided by a block to asynchronously - * satisfy the matcher. The block is evaluated repeatedly for an actual value, which is passed to - * the matcher for evaluation. If the matcher is not satisfied within the timeout, it is reported to - * the HCTestFailureReporterChain. - * - * An easy way of providing the actualBlock is to use the macro thatEventually. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertWithTimeout instead. -*/ -#define assertWithTimeout(timeout, actualBlock, matcher) HC_assertWithTimeout(timeout, actualBlock, matcher) - - -/*! - * @abstract thatEventually(actual) - - * Evaluates actual value at future time. - * @param actual The object to evaluate as the actual value. - * @discussion Wraps actual in a block so that it can be repeatedly evaluated by - * assertWithTimeout. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_thatEventually instead. - */ -#define thatEventually(actual) HC_thatEventually(actual) -#endif - - -/*! - * @abstract "Expected , but " - * @discussion Helper function to let you describe mismatches the way assertThat does. - */ -FOUNDATION_EXPORT NSString *HCDescribeMismatch(id matcher, id actual); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCAssertThat.m b/Pods/OCHamcrest/Source/Core/HCAssertThat.m deleted file mode 100644 index 84810ed..0000000 --- a/Pods/OCHamcrest/Source/Core/HCAssertThat.m +++ /dev/null @@ -1,58 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCAssertThat.h" - -#import "HCRunloopRunner.h" -#import "HCStringDescription.h" -#import "HCMatcher.h" -#import "HCTestFailure.h" -#import "HCTestFailureReporter.h" -#import "HCTestFailureReporterChain.h" - -static void reportMismatch(id testCase, id actual, id matcher, - char const *fileName, int lineNumber) -{ - HCTestFailure *failure = [[HCTestFailure alloc] initWithTestCase:testCase - fileName:[NSString stringWithUTF8String:fileName] - lineNumber:(NSUInteger)lineNumber - reason:HCDescribeMismatch(matcher, actual)]; - HCTestFailureReporter *chain = [HCTestFailureReporterChain reporterChain]; - [chain handleFailure:failure]; -} - -void HC_assertThatWithLocation(id testCase, _Nullable id actual, id matcher, - const char *fileName, int lineNumber) -{ - if (![matcher matches:actual]) - reportMismatch(testCase, actual, matcher, fileName, lineNumber); -} - -void HC_assertWithTimeoutAndLocation(id testCase, NSTimeInterval timeout, - HCFutureValue actualBlock, id matcher, - const char *fileName, int lineNumber) -{ - __block BOOL match = [matcher matches:actualBlock()]; - - if (!match) - { - HCRunloopRunner *runner = [[HCRunloopRunner alloc] initWithFulfillmentBlock:^{ - match = [matcher matches:actualBlock()]; - return match; - }]; - [runner runUntilFulfilledOrTimeout:timeout]; - } - - if (!match) - reportMismatch(testCase, actualBlock(), matcher, fileName, lineNumber); -} - -NSString *HCDescribeMismatch(id matcher, id actual) -{ - HCStringDescription *description = [HCStringDescription stringDescription]; - [[[description appendText:@"Expected "] - appendDescriptionOf:matcher] - appendText:@", but "]; - [matcher describeMismatchOf:actual to:description]; - return description.description; -} diff --git a/Pods/OCHamcrest/Source/Core/HCBaseDescription.h b/Pods/OCHamcrest/Source/Core/HCBaseDescription.h deleted file mode 100644 index 68e4bd1..0000000 --- a/Pods/OCHamcrest/Source/Core/HCBaseDescription.h +++ /dev/null @@ -1,29 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Base class for all HCDescription implementations. - */ -@interface HCBaseDescription : NSObject -@end - - -/*! - * @abstract Methods that must be provided by subclasses of HCBaseDescription. - */ -@interface HCBaseDescription (SubclassResponsibility) - -/*! - * @abstract Appends the specified string to the description. - */ -- (void)append:(NSString *)str; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCBaseDescription.m b/Pods/OCHamcrest/Source/Core/HCBaseDescription.m deleted file mode 100644 index bd0259f..0000000 --- a/Pods/OCHamcrest/Source/Core/HCBaseDescription.m +++ /dev/null @@ -1,101 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCBaseDescription.h" - -#import "HCMatcher.h" - - -@implementation HCBaseDescription - -- (id )appendText:(NSString *)text -{ - [self append:text]; - return self; -} - -- (id )appendDescriptionOf:(nullable id)value -{ - if (value == nil) - [self append:@"nil"]; - else if ([value conformsToProtocol:@protocol(HCSelfDescribing)]) - [value describeTo:self]; - else if ([value respondsToSelector:@selector(isKindOfClass:)] && [value isKindOfClass:[NSString class]]) - [self toCSyntaxString:value]; - else - [self appendObjectDescriptionOf:value]; - - return self; -} - -- (id )appendObjectDescriptionOf:(id)value -{ - NSString *description = [value description]; - NSUInteger descriptionLength = description.length; - if (descriptionLength == 0) - [self append:[NSString stringWithFormat:@"<%@: %p>", NSStringFromClass([value class]), (__bridge void *)value]]; - else if ([description characterAtIndex:0] == '<' - && [description characterAtIndex:descriptionLength - 1] == '>') - { - [self append:description]; - } - else - { - [self append:@"<"]; - [self append:description]; - [self append:@">"]; - } - return self; -} - -- (id )appendList:(NSArray *)values - start:(NSString *)start - separator:(NSString *)separator - end:(NSString *)end -{ - BOOL separate = NO; - - [self append:start]; - for (id item in values) - { - if (separate) - [self append:separator]; - [self appendDescriptionOf:item]; - separate = YES; - } - [self append:end]; - return self; -} - -- (void)toCSyntaxString:(NSString *)unformatted -{ - [self append:@"\""]; - NSUInteger length = unformatted.length; - for (NSUInteger index = 0; index < length; ++index) - [self toCSyntax:[unformatted characterAtIndex:index]]; - [self append:@"\""]; -} - -- (void)toCSyntax:(unichar)ch -{ - switch (ch) - { - case '"': - [self append:@"\\\""]; - break; - case '\n': - [self append:@"\\n"]; - break; - case '\r': - [self append:@"\\r"]; - break; - case '\t': - [self append:@"\\t"]; - break; - default: - [self append:[NSString stringWithCharacters:&ch length:1]]; - break; - } -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h deleted file mode 100644 index 18405bb..0000000 --- a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import -#import - -#define HC_ABSTRACT_METHOD [self subclassResponsibility:_cmd] - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Base class for all HCMatcher implementations. - * @discussion Simple matchers can just subclass HCBaseMatcher and implement -matches: - * and -describeTo:. But if the matching algorithm has several "no match" paths, - * consider subclassing HCDiagnosingMatcher instead. - */ -@interface HCBaseMatcher : NSObject - -/*! @abstract Raises exception that command (a pseudo-abstract method) is not implemented. */ -- (void)subclassResponsibility:(SEL)command; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m deleted file mode 100644 index 6f7cd02..0000000 --- a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m +++ /dev/null @@ -1,52 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCBaseMatcher.h" - -#import "HCStringDescription.h" - - -@implementation HCBaseMatcher - -- (NSString *)description -{ - return [HCStringDescription stringFrom:self]; -} - -- (BOOL)matches:(nullable id)item -{ - HC_ABSTRACT_METHOD; - return NO; -} - -- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription -{ - BOOL matchResult = [self matches:item]; - if (!matchResult) - [self describeMismatchOf:item to:mismatchDescription]; - return matchResult; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [[mismatchDescription appendText:@"was "] appendDescriptionOf:item]; -} - -- (void)describeTo:(id )description -{ - HC_ABSTRACT_METHOD; -} - -- (void)subclassResponsibility:(SEL)command -{ - NSString *className = NSStringFromClass([self class]); - [NSException raise:NSGenericException - format:@"-[%@ %@] not implemented", className, NSStringFromSelector(command)]; -} - -- (id)copyWithZone:(NSZone *)zone -{ - return self; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/HCDescription.h b/Pods/OCHamcrest/Source/Core/HCDescription.h deleted file mode 100644 index bf196c0..0000000 --- a/Pods/OCHamcrest/Source/Core/HCDescription.h +++ /dev/null @@ -1,39 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract A description of an HCMatcher. - * @discussion An HCMatcher will describe itself to a description which can later be used for reporting. - */ -@protocol HCDescription - -/*! - * @abstract Appends some plain text to the description. - * @return self, for chaining. - */ -- (id )appendText:(NSString *)text; - -/*! - * @abstract Appends description of specified value to description. - * @discussion If the value implements the HCSelfDescribing protocol, then it will be used. - * @return self, for chaining. - */ -- (id )appendDescriptionOf:(nullable id)value; - -/*! - * @abstract Appends a list of objects to the description. - * @return self, for chaining. - */ -- (id )appendList:(NSArray *)values - start:(NSString *)start - separator:(NSString *)separator - end:(NSString *)end; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h deleted file mode 100644 index 2366cf2..0000000 --- a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Base class for matchers that generate mismatch descriptions during the matching. - * @discussion Some matching algorithms have several "no match" paths. It helps to make the mismatch - * description as precise as possible, but we don't want to have to repeat the matching logic to do - * so. For such matchers, subclass HCDiagnosingMatcher and implement HCMatcher's - * -matches:describingMismatchTo:. -*/ -@interface HCDiagnosingMatcher : HCBaseMatcher -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m deleted file mode 100644 index 70e426c..0000000 --- a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCDiagnosingMatcher.h" - - -@implementation HCDiagnosingMatcher - -- (BOOL)matches:(nullable id)item -{ - return [self matches:item describingMismatchTo:nil]; -} - -- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription -{ - HC_ABSTRACT_METHOD; - return NO; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [self matches:item describingMismatchTo:mismatchDescription]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/HCMatcher.h b/Pods/OCHamcrest/Source/Core/HCMatcher.h deleted file mode 100644 index 19f641a..0000000 --- a/Pods/OCHamcrest/Source/Core/HCMatcher.h +++ /dev/null @@ -1,47 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract A matcher over acceptable values. - * @discussion A matcher is able to describe itself to give feedback when it fails. - * - * HCMatcher implementations should not directly implement this protocol. Instead, extend the - * HCBaseMatcher class, which will ensure that the HCMatcher API can grow to support new features - * and remain compatible with all HCMatcher implementations. - */ -@protocol HCMatcher - -/*! - * @abstract Evaluates the matcher for argument item. - * @param item The object against which the matcher is evaluated. - * @return YES if item matches, otherwise NO. - */ -- (BOOL)matches:(nullable id)item; - -/*! - * @abstract Evaluates the matcher for argument item. - * @param item The object against which the matcher is evaluated. - * @param mismatchDescription The description to be built or appended to if item does not match. - * @return YES if item matches, otherwise NO. - */ -- (BOOL)matches:(nullable id)item describingMismatchTo:(nullable id )mismatchDescription; - -/*! - * @abstract Generates a description of why the matcher has not accepted the item. - * @param item The item that the HCMatcher has rejected. - * @param mismatchDescription The description to be built or appended to. - * @discussion The description will be part of a larger description of why a matching failed, so it - * should be concise. - * - * This method assumes that matches:item is false, but will not check this. - */ -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h b/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h deleted file mode 100644 index e454348..0000000 --- a/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h +++ /dev/null @@ -1,26 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -#import // Convenience header - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract The ability of an object to describe itself. - */ -@protocol HCSelfDescribing - -/*! - * @abstract Generates a description of the object. - * @param description The description to be built or appended to. - * @discussion The description may be part of a description of a larger object of which this is just - * a component, so it should be worded appropriately. - */ -- (void)describeTo:(id )description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCStringDescription.h b/Pods/OCHamcrest/Source/Core/HCStringDescription.h deleted file mode 100644 index 5603b9f..0000000 --- a/Pods/OCHamcrest/Source/Core/HCStringDescription.h +++ /dev/null @@ -1,36 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@protocol HCSelfDescribing; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract An HCDescription that is stored as a string. - */ -@interface HCStringDescription : HCBaseDescription - - -/*! - * @abstract Returns the description of an HCSelfDescribing object as a string. - * @param selfDescribing The object to be described. - * @return The description of the object. - */ -+ (NSString *)stringFrom:(id )selfDescribing; - -/*! - * @abstract Creates and returns an empty description. - */ -+ (instancetype)stringDescription; - -/*! - * @abstract Initializes a newly allocated HCStringDescription that is initially empty. - */ -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCStringDescription.m b/Pods/OCHamcrest/Source/Core/HCStringDescription.m deleted file mode 100644 index a44e53c..0000000 --- a/Pods/OCHamcrest/Source/Core/HCStringDescription.m +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCStringDescription.h" - -#import "HCSelfDescribing.h" - - -@interface HCStringDescription () -@property (nonatomic, strong) NSMutableString *accumulator; -@end - -@implementation HCStringDescription - -+ (NSString *)stringFrom:(id )selfDescribing -{ - HCStringDescription *description = [HCStringDescription stringDescription]; - [description appendDescriptionOf:selfDescribing]; - return description.description; -} - -+ (instancetype)stringDescription -{ - return [[HCStringDescription alloc] init]; -} - -- (instancetype)init -{ - self = [super init]; - if (self) - _accumulator = [[NSMutableString alloc] init]; - return self; -} - -- (NSString *)description -{ - return self.accumulator; -} - -- (void)append:(NSString *)str -{ - [self.accumulator appendString:str]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h deleted file mode 100644 index 050c71f..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h +++ /dev/null @@ -1,26 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -#import - -@protocol HCMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Returns an array of values from a variable-length comma-separated list terminated - * by nil. - */ -FOUNDATION_EXPORT NSArray * HCCollectItems(id item, va_list args); - -/*! - * @abstract Returns an array of matchers from a mixed array of items and matchers. - * @discussion Each item is wrapped in HCWrapInMatcher to transform non-matcher items into equality - * matchers. - */ -FOUNDATION_EXPORT NSArray> * HCWrapIntoMatchers(NSArray *items); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m deleted file mode 100644 index 3ec9ae4..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m +++ /dev/null @@ -1,43 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCCollect.h" - -#import "HCWrapInMatcher.h" - -/*! - * @abstract Returns an array of wrapped items from a variable-length comma-separated list - * terminated by nil. - * @discussion Each item is transformed by passing it to the specified wrap function. - */ -static NSArray * HCCollectWrappedItems(id item, va_list args, id (*wrap)(id)) -{ - NSMutableArray *list = [NSMutableArray arrayWithObject:wrap(item)]; - - id nextItem = va_arg(args, id); - while (nextItem) - { - [list addObject:wrap(nextItem)]; - nextItem = va_arg(args, id); - } - - return list; -} - -static id passThrough(id value) -{ - return value; -} - -NSArray * HCCollectItems(id item, va_list args) -{ - return HCCollectWrappedItems(item, args, passThrough); -} - -NSArray> * HCWrapIntoMatchers(NSArray *items) -{ - NSMutableArray> *matchers = [[NSMutableArray alloc] init]; - for (id item in items) - [matchers addObject:HCWrapInMatcher(item)]; - return matchers; -} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h deleted file mode 100644 index 5ad382c..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h +++ /dev/null @@ -1,42 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Supporting class for matching a feature of an object. - * @discussion Tests whether the result of passing the specified invocation to the value satisfies - * the specified matcher. - */ -@interface HCInvocationMatcher : HCBaseMatcher - - -/*! - * @abstract Determines whether a mismatch will be described in short form. - * @discussion Default is long form, which describes the object, the name of the invocation, and the - * sub-matcher's mismatch diagnosis. Short form only has the sub-matcher's mismatch diagnosis. - */ -@property (nonatomic, assign) BOOL shortMismatchDescription; - -/*! - * @abstract Initializes a newly allocated HCInvocationMatcher with an invocation and a matcher. - */ -- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -/*! - * @abstract Invokes stored invocation on the specified item and returns the result. - */ -- (id)invokeOn:(id)item; - -/*! - * @abstract Returns string representation of the invocation's selector. - */ -- (NSString *)stringFromSelector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m deleted file mode 100644 index bf48ed1..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m +++ /dev/null @@ -1,81 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCInvocationMatcher.h" - - -@interface HCInvocationMatcher () -@property (nonatomic, strong) NSInvocation *invocation; -@property (nonatomic, strong) id subMatcher; -@end - -@implementation HCInvocationMatcher - -- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher -{ - self = [super init]; - if (self) - { - _invocation = anInvocation; - _subMatcher = aMatcher; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if ([self invocationNotSupportedForItem:item]) - return NO; - - return [self.subMatcher matches:[self invokeOn:item]]; -} - -- (BOOL)invocationNotSupportedForItem:(id)item -{ - return ![item respondsToSelector:self.invocation.selector]; -} - -- (id)invokeOn:(id)item -{ - __unsafe_unretained id result = nil; - [self.invocation invokeWithTarget:item]; - [self.invocation getReturnValue:&result]; - return result; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - if ([self invocationNotSupportedForItem:item]) - [super describeMismatchOf:item to:mismatchDescription]; - else - { - [self describeLongMismatchDescriptionOf:item to:mismatchDescription]; - [self.subMatcher describeMismatchOf:[self invokeOn:item] to:mismatchDescription]; - } -} - -- (void)describeLongMismatchDescriptionOf:(id)item to:(id )mismatchDescription -{ - if (!self.shortMismatchDescription) - { - [[[[mismatchDescription appendDescriptionOf:item] - appendText:@" "] - appendText:[self stringFromSelector]] - appendText:@" "]; - } -} - -- (void)describeTo:(id )description -{ - [[[[description appendText:@"an object with "] - appendText:[self stringFromSelector]] - appendText:@" "] - appendDescriptionOf:self.subMatcher]; -} - -- (NSString *)stringFromSelector -{ - return NSStringFromSelector(self.invocation.selector); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h deleted file mode 100644 index aff90de..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h +++ /dev/null @@ -1,14 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Throws an NSException if obj is nil. -*/ -FOUNDATION_EXPORT void HCRequireNonNilObject(id obj); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m deleted file mode 100644 index 8ae3932..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m +++ /dev/null @@ -1,15 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCRequireNonNilObject.h" - - -void HCRequireNonNilObject(id obj) -{ - if (obj == nil) - { - @throw [NSException exceptionWithName:@"NilObject" - reason:@"Must be non-nil object" - userInfo:nil]; - } -} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h deleted file mode 100644 index 9eefe57..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h +++ /dev/null @@ -1,21 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Runs runloop until fulfilled, or timeout is reached. - * @discussion Based on http://bou.io/CTTRunLoopRunUntil.html - */ -@interface HCRunloopRunner : NSObject - -- (instancetype)initWithFulfillmentBlock:(BOOL (^)(void))fulfillmentBlock NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (void)runUntilFulfilledOrTimeout:(CFTimeInterval)timeout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m deleted file mode 100644 index fd4e25d..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m +++ /dev/null @@ -1,36 +0,0 @@ -#import "HCRunloopRunner.h" - - -@implementation HCRunloopRunner -{ - CFRunLoopObserverRef _observer; -} - -- (instancetype)initWithFulfillmentBlock:(BOOL (^)(void))fulfillmentBlock -{ - self = [super init]; - if (self) - { - _observer = CFRunLoopObserverCreateWithHandler(NULL, kCFRunLoopBeforeWaiting, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) { - if (fulfillmentBlock()) - CFRunLoopStop(CFRunLoopGetCurrent()); - else - CFRunLoopWakeUp(CFRunLoopGetCurrent()); - }); - CFRunLoopAddObserver(CFRunLoopGetCurrent(), _observer, kCFRunLoopDefaultMode); - } - return self; -} - -- (void)dealloc -{ - CFRunLoopRemoveObserver(CFRunLoopGetCurrent(), _observer, kCFRunLoopDefaultMode); - CFRelease(_observer); -} - -- (void)runUntilFulfilledOrTimeout:(CFTimeInterval)timeout -{ - CFRunLoopRunInMode(kCFRunLoopDefaultMode, timeout, false); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h deleted file mode 100644 index b59dfbe..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@protocol HCMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Wraps argument in a matcher, if necessary. - * @return The argument as-is if it is already a matcher, otherwise wrapped in an equalTo matcher. - */ -FOUNDATION_EXPORT _Nullable id HCWrapInMatcher(_Nullable id matcherOrValue); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m deleted file mode 100644 index 8d44d4c..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m +++ /dev/null @@ -1,17 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCWrapInMatcher.h" - -#import "HCIsEqual.h" - - -_Nullable id HCWrapInMatcher(_Nullable id matcherOrValue) -{ - if (!matcherOrValue) - return nil; - - if ([matcherOrValue conformsToProtocol:@protocol(HCMatcher)]) - return matcherOrValue; - return HC_equalTo(matcherOrValue); -} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h deleted file mode 100644 index 0dcc461..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface NSInvocation (OCHamcrest) - -+ (NSInvocation *)och_invocationWithTarget:(id)target selector:(SEL)selector; -+ (NSInvocation *)och_invocationOnObjectOfType:(Class)aClass selector:(SEL)selector; -- (id)och_invoke; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m deleted file mode 100644 index aff8eda..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "NSInvocation+OCHamcrest.h" - -#import "HCReturnValueGetter.h" -#import "HCReturnTypeHandlerChain.h" - - -@implementation NSInvocation (OCHamcrest) - -+ (NSInvocation *)och_invocationWithTarget:(id)target selector:(SEL)selector -{ - NSMethodSignature *signature = [target methodSignatureForSelector:selector]; - NSInvocation *invocation= [self och_invocationWithSignature:signature selector:selector]; - invocation.target = target; - return invocation; -} - -+ (NSInvocation *)och_invocationOnObjectOfType:(Class)aClass selector:(SEL)selector -{ - NSMethodSignature *signature = [aClass instanceMethodSignatureForSelector:selector]; - return [self och_invocationWithSignature:signature selector:selector]; -} - -+ (NSInvocation *)och_invocationWithSignature:(NSMethodSignature *)signature selector:(SEL)selector -{ - NSInvocation *invocation = [[self class] invocationWithMethodSignature:signature]; - invocation.selector = selector; - return invocation; -} - -- (id)och_invoke -{ - [self invoke]; - return [self och_returnValue]; -} - -- (id)och_returnValue -{ - char const *returnType = self.methodSignature.methodReturnType; - return [HCReturnValueGetterChain() returnValueOfType:returnType fromInvocation:self]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h deleted file mode 100644 index c75af44..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCBoolReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m deleted file mode 100644 index a1291df..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCBoolReturnGetter.h" - - -@implementation HCBoolReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(BOOL) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - BOOL value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h deleted file mode 100644 index f80e7db..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCCharReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m deleted file mode 100644 index cf92850..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCCharReturnGetter.h" - - -@implementation HCCharReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(char) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - char value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h deleted file mode 100644 index 0016a59..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCDoubleReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m deleted file mode 100644 index 2619ad0..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCDoubleReturnGetter.h" - - -@implementation HCDoubleReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(double) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - double value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h deleted file mode 100644 index d52d0e0..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCFloatReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m deleted file mode 100644 index 18d2bfb..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCFloatReturnGetter.h" - - -@implementation HCFloatReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(float) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - float value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h deleted file mode 100644 index 323f686..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCIntReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m deleted file mode 100644 index 91624a4..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIntReturnGetter.h" - - -@implementation HCIntReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(int) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - int value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h deleted file mode 100644 index 710ac5c..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCLongLongReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m deleted file mode 100644 index ec6d974..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCLongLongReturnGetter.h" - - -@implementation HCLongLongReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(long long) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - long long value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h deleted file mode 100644 index 33a57a3..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCLongReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m deleted file mode 100644 index ff74f44..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCLongReturnGetter.h" - - -@implementation HCLongReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(long) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - long value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h deleted file mode 100644 index a8308ee..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCObjectReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m deleted file mode 100644 index a99c3a2..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCObjectReturnGetter.h" - - -@implementation HCObjectReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(id) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - __unsafe_unretained id value; - [invocation getReturnValue:&value]; - return value; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h deleted file mode 100644 index 0867768..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h +++ /dev/null @@ -1,12 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@class HCReturnValueGetter; - - -/*! - * @abstract Returns chain of return type handlers. - */ -FOUNDATION_EXPORT HCReturnValueGetter *HCReturnValueGetterChain(void); diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m deleted file mode 100644 index d3567d0..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnTypeHandlerChain.h" - -#import "HCObjectReturnGetter.h" -#import "HCCharReturnGetter.h" -#import "HCBoolReturnGetter.h" -#import "HCIntReturnGetter.h" -#import "HCShortReturnGetter.h" -#import "HCLongReturnGetter.h" -#import "HCLongLongReturnGetter.h" -#import "HCUnsignedCharReturnGetter.h" -#import "HCUnsignedIntReturnGetter.h" -#import "HCUnsignedShortReturnGetter.h" -#import "HCUnsignedLongReturnGetter.h" -#import "HCUnsignedLongLongReturnGetter.h" -#import "HCFloatReturnGetter.h" -#import "HCDoubleReturnGetter.h" - - -HCReturnValueGetter *HCReturnValueGetterChain(void) -{ - static HCReturnValueGetter *chain = nil; - if (!chain) - { - HCReturnValueGetter *doubleHandler = [[HCDoubleReturnGetter alloc] initWithSuccessor:nil]; - HCReturnValueGetter *floatHandler = [[HCFloatReturnGetter alloc] initWithSuccessor:doubleHandler]; - HCReturnValueGetter *uLongLongHandler = [[HCUnsignedLongLongReturnGetter alloc] initWithSuccessor:floatHandler]; - HCReturnValueGetter *uLongHandler = [[HCUnsignedLongReturnGetter alloc] initWithSuccessor:uLongLongHandler]; - HCReturnValueGetter *uShortHandler = [[HCUnsignedShortReturnGetter alloc] initWithSuccessor:uLongHandler]; - HCReturnValueGetter *uIntHandler = [[HCUnsignedIntReturnGetter alloc] initWithSuccessor:uShortHandler]; - HCReturnValueGetter *uCharHandler = [[HCUnsignedCharReturnGetter alloc] initWithSuccessor:uIntHandler]; - HCReturnValueGetter *longLongHandler = [[HCLongLongReturnGetter alloc] initWithSuccessor:uCharHandler]; - HCReturnValueGetter *longHandler = [[HCLongReturnGetter alloc] initWithSuccessor:longLongHandler]; - HCReturnValueGetter *shortHandler = [[HCShortReturnGetter alloc] initWithSuccessor:longHandler]; - HCReturnValueGetter *intHandler = [[HCIntReturnGetter alloc] initWithSuccessor:shortHandler]; - HCReturnValueGetter *boolHandler = [[HCBoolReturnGetter alloc] initWithSuccessor:intHandler]; - HCReturnValueGetter *charHandler = [[HCCharReturnGetter alloc] initWithSuccessor:boolHandler]; - HCReturnValueGetter *objectHandler = [[HCObjectReturnGetter alloc] initWithSuccessor:charHandler]; - chain = objectHandler; - } - return chain; -} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h deleted file mode 100644 index ee319dc..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h +++ /dev/null @@ -1,20 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Chain-of-responsibility for handling NSInvocation return types. - */ -@interface HCReturnValueGetter : NSObject - -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (id)returnValueOfType:(char const *)type fromInvocation:(NSInvocation *)invocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m deleted file mode 100644 index 0e6f089..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m +++ /dev/null @@ -1,42 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -@interface HCReturnValueGetter (SubclassResponsibility) -- (id)returnValueFromInvocation:(NSInvocation *)invocation; -@end - -@interface HCReturnValueGetter () -@property (nonatomic, assign, readonly) char const *handlerType; -@property (nullable, nonatomic, strong, readonly) HCReturnValueGetter *successor; -@end - -@implementation HCReturnValueGetter - -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor -{ - self = [super init]; - if (self) - { - _handlerType = handlerType; - _successor = successor; - } - return self; -} - -- (BOOL)handlesReturnType:(char const *)returnType -{ - return strcmp(returnType, self.handlerType) == 0; -} - -- (id)returnValueOfType:(char const *)type fromInvocation:(NSInvocation *)invocation -{ - if ([self handlesReturnType:type]) - return [self returnValueFromInvocation:invocation]; - - return [self.successor returnValueOfType:type fromInvocation:invocation]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h deleted file mode 100644 index ac517a5..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCShortReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m deleted file mode 100644 index c9776b4..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCShortReturnGetter.h" - - -@implementation HCShortReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(short) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - short value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h deleted file mode 100644 index 825d097..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCUnsignedCharReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m deleted file mode 100644 index 56a1966..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCUnsignedCharReturnGetter.h" - - -@implementation HCUnsignedCharReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(unsigned char) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - unsigned char value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h deleted file mode 100644 index e627cdc..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCUnsignedIntReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m deleted file mode 100644 index 1d19315..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCUnsignedIntReturnGetter.h" - - -@implementation HCUnsignedIntReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(unsigned int) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - unsigned int value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h deleted file mode 100644 index be9d4c8..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCUnsignedLongLongReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m deleted file mode 100644 index 11f0027..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCUnsignedLongLongReturnGetter.h" - - -@implementation HCUnsignedLongLongReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(unsigned long long) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - unsigned long long value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h deleted file mode 100644 index e06431c..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCUnsignedLongReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m deleted file mode 100644 index 626c79b..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCUnsignedLongReturnGetter.h" - - -@implementation HCUnsignedLongReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(unsigned long) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - unsigned long value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h deleted file mode 100644 index 820c94f..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCReturnValueGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCUnsignedShortReturnGetter : HCReturnValueGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m deleted file mode 100644 index 552a0ac..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCUnsignedShortReturnGetter.h" - - -@implementation HCUnsignedShortReturnGetter - -- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor -{ - self = [super initWithType:@encode(unsigned short) successor:successor]; - return self; -} - -- (id)returnValueFromInvocation:(NSInvocation *)invocation -{ - unsigned short value; - [invocation getReturnValue:&value]; - return @(value); -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h deleted file mode 100644 index 19a7ef4..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h +++ /dev/null @@ -1,8 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailureReporter.h" - - -@interface HCGenericTestFailureReporter : HCTestFailureReporter -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m deleted file mode 100644 index dc85f09..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m +++ /dev/null @@ -1,31 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCGenericTestFailureReporter.h" - -#import "HCTestFailure.h" - - -@implementation HCGenericTestFailureReporter - -- (BOOL)willHandleFailure:(HCTestFailure *)failure -{ - return YES; -} - -- (void)executeHandlingOfFailure:(HCTestFailure *)failure -{ - NSException *exception = [self createExceptionForFailure:failure]; - [exception raise]; -} - -- (NSException *)createExceptionForFailure:(HCTestFailure *)failure -{ - NSString *failureReason = [NSString stringWithFormat:@"%@:%lu: matcher error: %@", - failure.fileName, - (unsigned long)failure.lineNumber, - failure.reason]; - return [NSException exceptionWithName:@"HCGenericTestFailure" reason:failureReason userInfo:nil]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h deleted file mode 100644 index 61c0b71..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h +++ /dev/null @@ -1,8 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailureReporter.h" - - -@interface HCSenTestFailureReporter : HCTestFailureReporter -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m deleted file mode 100644 index 772a279..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m +++ /dev/null @@ -1,69 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCSenTestFailureReporter.h" - -#import "HCTestFailure.h" -#import "NSInvocation+OCHamcrest.h" - -@interface NSObject (PretendMethodsExistOnNSObjectToAvoidLinkingSenTestingKit) - -+ (NSException *)failureInFile:(NSString *)filename - atLine:(int)lineNumber - withDescription:(NSString *)formatString, ...; - -- (void)failWithException:(NSException *)exception; - -@end - - -@interface NSInvocation (OCHamcrest_SenTestingKit) -@end - -@implementation NSInvocation (OCHamcrest_SenTestingKit) - -+ (NSInvocation *)och_SenTestFailureInFile:(NSString *)fileName - atLine:(NSUInteger)lineNumber - description:(NSString *)description -{ - // SenTestingKit expects a format string, but NSInvocation does not support varargs. - // Mask % symbols in the string so they aren't treated as placeholders. - NSString *massagedDescription = [description stringByReplacingOccurrencesOfString:@"%" - withString:@"%%"]; - - NSInvocation *invocation = [NSInvocation och_invocationWithTarget:[NSException class] - selector:@selector(failureInFile:atLine:withDescription:)]; - [invocation setArgument:&fileName atIndex:2]; - [invocation setArgument:&lineNumber atIndex:3]; - [invocation setArgument:&massagedDescription atIndex:4]; - return invocation; -} - -@end - - -@implementation HCSenTestFailureReporter - -- (BOOL)willHandleFailure:(HCTestFailure *)failure -{ - return [failure.testCase respondsToSelector:@selector(failWithException:)]; -} - -- (void)executeHandlingOfFailure:(HCTestFailure *)failure -{ - NSException *exception = [self createExceptionForFailure:failure]; - [failure.testCase failWithException:exception]; -} - -- (NSException *)createExceptionForFailure:(HCTestFailure *)failure -{ - NSInvocation *invocation = [NSInvocation och_SenTestFailureInFile:failure.fileName - atLine:failure.lineNumber - description:failure.reason]; - [invocation invoke]; - __unsafe_unretained NSException *result = nil; - [invocation getReturnValue:&result]; - return result; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h deleted file mode 100644 index 4ba2faa..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h +++ /dev/null @@ -1,42 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - @abstract Test failure location and reason. - */ -@interface HCTestFailure : NSObject - -/*! - * @abstract Test case used to run test method. - * @discussion Can be nil. - * - * For unmet OCHamcrest assertions, if the assertion was assertThat or - * assertWithTimeout, testCase will be the test case instance. - */ -@property (nonatomic, strong, readonly) id testCase; - -/*! @abstract File name to report. */ -@property (nonatomic, copy, readonly) NSString *fileName; - -/*! @abstract Line number to report. */ -@property (nonatomic, assign, readonly) NSUInteger lineNumber; - -/*! @abstract Failure reason to report. */ -@property (nonatomic, strong, readonly) NSString *reason; - -/*! - * @abstract Initializes a newly allocated instance of a test failure. - */ -- (instancetype)initWithTestCase:(id)testCase - fileName:(NSString *)fileName - lineNumber:(NSUInteger)lineNumber - reason:(NSString *)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m deleted file mode 100644 index 236f739..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailure.h" - - -@implementation HCTestFailure - -- (instancetype)initWithTestCase:(id)testCase - fileName:(NSString *)fileName - lineNumber:(NSUInteger)lineNumber - reason:(NSString *)reason -{ - self = [super init]; - if (self) - { - _testCase = testCase; - _fileName = [fileName copy]; - _lineNumber = lineNumber; - _reason = [reason copy]; - } - return self; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h deleted file mode 100644 index b04338a..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@class HCTestFailure; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - Chain-of-responsibility for handling test failures. - */ -@interface HCTestFailureReporter : NSObject - -@property (nullable, nonatomic, strong) HCTestFailureReporter *successor; - -/*! - Handle test failure at specific location, or pass to successor. - */ -- (void)handleFailure:(HCTestFailure *)failure; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m deleted file mode 100644 index 25737f7..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailureReporter.h" - -@interface HCTestFailureReporter (SubclassResponsibility) -- (BOOL)willHandleFailure:(HCTestFailure *)failure; -- (void)executeHandlingOfFailure:(HCTestFailure *)failure; -@end - - -@implementation HCTestFailureReporter - -- (void)handleFailure:(HCTestFailure *)failure -{ - if ([self willHandleFailure:failure]) - [self executeHandlingOfFailure:failure]; - else - [self.successor handleFailure:failure]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h deleted file mode 100644 index a4fc882..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h +++ /dev/null @@ -1,36 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@class HCTestFailureReporter; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Manage chain-of-responsibility for reporting test failures. - * @discussion This provides a generic way of reporting test failures without knowing about the - * underlying test framework. By default, we try XCTest first, then SenTestingKit. If we run out of - * options, the final catch-all is to throw an NSException describing the test failure. - */ -@interface HCTestFailureReporterChain : NSObject - -/*! - * @abstract Returns current chain of test failure reporters. - */ -+ (HCTestFailureReporter *)reporterChain; - -/*! - * @abstract Adds specified test failure reporter to head of chain-of-responsibility. - */ -+ (void)addReporter:(HCTestFailureReporter *)reporter; - -/*! - * @abstract Resets chain-of-responsibility to default. - */ -+ (void)reset; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m deleted file mode 100644 index 2a0d65d..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailureReporterChain.h" - -#import "HCGenericTestFailureReporter.h" -#import "HCSenTestFailureReporter.h" -#import "HCXCTestFailureReporter.h" - -static HCTestFailureReporter *chainHead = nil; - - -@implementation HCTestFailureReporterChain - -+ (HCTestFailureReporter *)reporterChain -{ - if (!chainHead) - { - HCTestFailureReporter *xctestReporter = [[HCXCTestFailureReporter alloc] init]; - HCTestFailureReporter *ocunitReporter = [[HCSenTestFailureReporter alloc] init]; - HCTestFailureReporter *genericReporter = [[HCGenericTestFailureReporter alloc] init]; - - chainHead = xctestReporter; - xctestReporter.successor = ocunitReporter; - ocunitReporter.successor = genericReporter; - } - return chainHead; -} - -+ (void)addReporter:(HCTestFailureReporter *)reporter -{ - reporter.successor = [self reporterChain]; - chainHead = reporter; -} - -+ (void)reset -{ - chainHead = nil; -} - -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h deleted file mode 100644 index c70e687..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h +++ /dev/null @@ -1,8 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCTestFailureReporter.h" - - -@interface HCXCTestFailureReporter : HCTestFailureReporter -@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m deleted file mode 100644 index 2bff825..0000000 --- a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m +++ /dev/null @@ -1,33 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCXCTestFailureReporter.h" - -#import "HCTestFailure.h" - -@interface NSObject (PretendMethodExistsOnNSObjectToAvoidLinkingXCTest) - -- (void)recordFailureWithDescription:(NSString *)description - inFile:(NSString *)filename - atLine:(NSUInteger)lineNumber - expected:(BOOL)expected; - -@end - - -@implementation HCXCTestFailureReporter - -- (BOOL)willHandleFailure:(HCTestFailure *)failure -{ - return [failure.testCase respondsToSelector:@selector(recordFailureWithDescription:inFile:atLine:expected:)]; -} - -- (void)executeHandlingOfFailure:(HCTestFailure *)failure -{ - [failure.testCase recordFailureWithDescription:failure.reason - inFile:failure.fileName - atLine:failure.lineNumber - expected:YES]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h deleted file mode 100644 index 92d0af9..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if every item in a collection satisfies a nested matcher. - */ -@interface HCEvery : HCDiagnosingMatcher - -@property (nonatomic, strong, readonly) id matcher; - -- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_everyItem(id itemMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when the examined collection's items are - * all matched by the specified matcher. - * @param itemMatcher The matcher to apply to every item provided by the examined collection. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. - * - * Example
- *
assertThat(\@[\@"bar", \@"baz"], everyItem(startsWith(\@"ba")))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_everyItem instead. - */ -static inline id everyItem(id itemMatcher) -{ - return HC_everyItem(itemMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m deleted file mode 100644 index 3f193fd..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m +++ /dev/null @@ -1,74 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCEvery.h" - -#import "HCRequireNonNilObject.h" - - -@implementation HCEvery - -- (instancetype)initWithMatcher:(id )matcher -{ - HCRequireNonNilObject(matcher); - - self = [super init]; - if (self) - _matcher = matcher; - return self; -} - -- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription -{ - if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) - { - [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; - return NO; - } - - if ([collection count] == 0) - { - [mismatchDescription appendText:@"was empty"]; - return NO; - } - - for (id item in collection) - { - if (![self.matcher matches:item]) - { - [self describeAllMismatchesInCollection:collection to:mismatchDescription]; - return NO; - } - } - return YES; -} - -- (void)describeAllMismatchesInCollection:(id)collection to:(id )mismatchDescription -{ - [mismatchDescription appendText:@"mismatches were: ["]; - BOOL isPastFirst = NO; - for (id item in collection) - { - if (![self.matcher matches:item]) - { - if (isPastFirst) - [mismatchDescription appendText:@", "]; - [self.matcher describeMismatchOf:item to:mismatchDescription]; - isPastFirst = YES; - } - } - [mismatchDescription appendText:@"]"]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"every item is "] appendDescriptionOf:self.matcher]; -} - -@end - - -id HC_everyItem(id itemMatcher) -{ - return [[HCEvery alloc] initWithMatcher:itemMatcher]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h deleted file mode 100644 index a52f27c..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h +++ /dev/null @@ -1,63 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if collection size satisfies a nested matcher. - */ -@interface HCHasCount : HCBaseMatcher - -- (instancetype)initWithMatcher:(id )countMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasCount(id countMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object's -count method - * returns a value that satisfies the specified matcher. - * @param countMatcher A matcher for the count of an examined collection. - * @discussion - * Example
- *
assertThat(\@[\@"foo", \@"bar"], hasCount(equalTo(@2)))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasCount instead. - */ -static inline id hasCount(id countMatcher) -{ - return HC_hasCount(countMatcher); -} -#endif - - -FOUNDATION_EXPORT id HC_hasCountOf(NSUInteger count); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object's -count method - * returns a value that equals the specified value. - * @param value Value to compare against as the expected count. - * @discussion - * Example
- *
assertThat(\@[\@"foo", \@"bar"], hasCountOf(2))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasCountOf instead. - */ -static inline id hasCountOf(NSUInteger value) -{ - return HC_hasCountOf(value); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m deleted file mode 100644 index dc55b3c..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m +++ /dev/null @@ -1,65 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCHasCount.h" - -#import "HCIsEqual.h" - - -@interface HCHasCount () -@property (nonatomic, strong, readonly) id countMatcher; -@end - -@implementation HCHasCount - -- (instancetype)initWithMatcher:(id )countMatcher -{ - self = [super init]; - if (self) - _countMatcher = countMatcher; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (![self itemHasCount:item]) - return NO; - - NSNumber *count = @([item count]); - return [self.countMatcher matches:count]; -} - -- (BOOL)itemHasCount:(id)item -{ - return [item respondsToSelector:@selector(count)]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [mismatchDescription appendText:@"was "]; - if ([self itemHasCount:item]) - { - [[[mismatchDescription appendText:@"count of "] - appendDescriptionOf:@([item count])] - appendText:@" with "]; - } - [mismatchDescription appendDescriptionOf:item]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a collection with count of "] appendDescriptionOf:self.countMatcher]; -} - -@end - - -id HC_hasCount(id countMatcher) -{ - return [[HCHasCount alloc] initWithMatcher:countMatcher]; -} - -id HC_hasCountOf(NSUInteger value) -{ - return HC_hasCount(HC_equalTo(@(value))); -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h deleted file mode 100644 index 42be830..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h +++ /dev/null @@ -1,95 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if any item in a collection satisfies a nested matcher. - */ -@interface HCIsCollectionContaining : HCDiagnosingMatcher - -- (instancetype)initWithMatcher:(id )elementMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasItem(id itemMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract hasItem(itemMatcher) - - * Creates a matcher for collections that matches when at least one item in the examined collection - * satisfies the specified matcher. - * @param itemMatcher The matcher to apply to collection elements, or an expected value - * for equalTo matching. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. - * - * If itemMatcher is not a matcher, it is implicitly wrapped in an equalTo matcher - * to check for equality. - * - * Example
- *
assertThat(\@[\@1, \@2, \@3], hasItem(equalTo(\@2)))
- * - *
assertThat(\@[\@1, \@2, \@3], hasItem(\@2))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasItem instead. - */ -#define hasItem HC_hasItem -#endif - - -FOUNDATION_EXPORT id HC_hasItemsIn(NSArray *itemMatchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when all specified matchers are - * satisfied by any item in the examined collection. - * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped - * in an equalTo matcher to check for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing one pass for each matcher. - * - * Example
- *
assertThat(\@[\@"foo", \@"bar", \@"baz"], hasItems(\@[endsWith(\@"z"), endsWith(\@"o")]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasItemsIn instead. - */ -static inline id hasItemsIn(NSArray *itemMatchers) -{ - return HC_hasItemsIn(itemMatchers); -} -#endif - - -FOUNDATION_EXPORT id HC_hasItems(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when all specified matchers are - * satisfied by any item in the examined collection. - * @param itemMatchers... A comma-separated list of matchers ending with nil. - * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check - * for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing one pass for each matcher. - * - * Example
- *
assertThat(\@[\@"foo", \@"bar", \@"baz"], hasItems(endsWith(\@"z"), endsWith(\@"o"), nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasItems instead. - */ -#define hasItems(itemMatchers...) HC_hasItems(itemMatchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m deleted file mode 100644 index bbb4a26..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m +++ /dev/null @@ -1,88 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCollectionContaining.h" - -#import "HCAllOf.h" -#import "HCCollect.h" -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" - - -@interface HCIsCollectionContaining () -@property (nonatomic, strong, readonly) id elementMatcher; -@end - -@implementation HCIsCollectionContaining - -- (instancetype)initWithMatcher:(id )elementMatcher -{ - self = [super init]; - if (self) - _elementMatcher = elementMatcher; - return self; -} - -- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription -{ - if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) - { - [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; - return NO; - } - - if ([collection count] == 0) - { - [mismatchDescription appendText:@"was empty"]; - return NO; - } - - for (id item in collection) - if ([self.elementMatcher matches:item]) - return YES; - - [mismatchDescription appendText:@"mismatches were: ["]; - BOOL isPastFirst = NO; - for (id item in collection) - { - if (isPastFirst) - [mismatchDescription appendText:@", "]; - [self.elementMatcher describeMismatchOf:item to:mismatchDescription]; - isPastFirst = YES; - } - [mismatchDescription appendText:@"]"]; - return NO; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a collection containing "] - appendDescriptionOf:self.elementMatcher]; -} - -@end - - -id HC_hasItem(id itemMatcher) -{ - HCRequireNonNilObject(itemMatcher); - return [[HCIsCollectionContaining alloc] initWithMatcher:HCWrapInMatcher(itemMatcher)]; -} - -id HC_hasItemsIn(NSArray *itemMatchers) -{ - NSMutableArray *matchers = [[NSMutableArray alloc] init]; - for (id itemMatcher in itemMatchers) - [matchers addObject:HC_hasItem(itemMatcher)]; - return HC_allOfIn(matchers); -} - -id HC_hasItems(id itemMatchers, ...) -{ - va_list args; - va_start(args, itemMatchers); - NSArray *array = HCCollectItems(itemMatchers, args); - va_end(args); - - return HC_hasItemsIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h deleted file mode 100644 index 4fecfdf..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h +++ /dev/null @@ -1,79 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if every item in a collection, in any order, satisfy a list of nested matchers. - */ -@interface HCIsCollectionContainingInAnyOrder : HCDiagnosingMatcher - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_containsInAnyOrderIn(NSArray *itemMatchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates an order-agnostic matcher for collections that matches when each item in the - * examined collection satisfies one matcher anywhere in the specified list of matchers. - * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped - * in an equalTo matcher to check for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. For a positive match, the examined collection must be of the same - * length as the specified list of matchers. - * - * Note: Each matcher in the specified list will only be used once during a given examination, so - * be careful when specifying matchers that may be satisfied by more than one entry in an examined - * collection. - * - * Examples
- *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrderIn(\@[equalTo(\@"bar"), equalTo(\@"foo")]))
- *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrderIn(@[\@"bar", \@"foo"]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_containsInAnyOrderIn instead. - */ -static inline id containsInAnyOrderIn(NSArray *itemMatchers) -{ - return HC_containsInAnyOrderIn(itemMatchers); -} -#endif - - -FOUNDATION_EXPORT id HC_containsInAnyOrder(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates an order-agnostic matcher for collections that matches when each item in the - * examined collection satisfies one matcher anywhere in the specified list of matchers. - * @param itemMatchers... A comma-separated list of matchers ending with nil. - * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check - * for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. For a positive match, the examined collection must be of the same - * length as the specified list of matchers. - * - * Note: Each matcher in the specified list will only be used once during a given examination, so - * be careful when specifying matchers that may be satisfied by more than one entry in an examined - * collection. - * - * Examples
- *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrder(equalTo(\@"bar"), equalTo(\@"foo"), nil))
- *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrder(\@"bar", \@"foo", nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_containsInAnyOrder instead. - */ -#define containsInAnyOrder(itemMatchers...) HC_containsInAnyOrder(itemMatchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m deleted file mode 100644 index 95623d2..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m +++ /dev/null @@ -1,115 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCollectionContainingInAnyOrder.h" - -#import "HCCollect.h" - - -@interface HCMatchingInAnyOrder : NSObject -@property (nonatomic, copy, readonly) NSMutableArray> *matchers; -@property (nonatomic, strong, readonly) id mismatchDescription; -@end - -@implementation HCMatchingInAnyOrder - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers - mismatchDescription:(id )description -{ - self = [super init]; - if (self) - { - _matchers = [itemMatchers mutableCopy]; - _mismatchDescription = description; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - NSUInteger index = 0; - for (id matcher in self.matchers) - { - if ([matcher matches:item]) - { - [self.matchers removeObjectAtIndex:index]; - return YES; - } - ++index; - } - [[self.mismatchDescription appendText:@"not matched: "] - appendDescriptionOf:item]; - return NO; -} - -- (BOOL)isFinishedWith:(NSArray *)collection -{ - if (self.matchers.count == 0) - return YES; - - [[[[self.mismatchDescription appendText:@"no item matches: "] - appendList:self.matchers start:@"" separator:@", " end:@""] - appendText:@" in "] - appendList:collection start:@"[" separator:@", " end:@"]"]; - return NO; -} - -@end - - -@interface HCIsCollectionContainingInAnyOrder () -@property (nonatomic, copy, readonly) NSArray> *matchers; -@end - -@implementation HCIsCollectionContainingInAnyOrder - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers -{ - self = [super init]; - if (self) - _matchers = [itemMatchers copy]; - return self; -} - -- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription -{ - if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) - { - [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; - return NO; - } - - HCMatchingInAnyOrder *matchSequence = - [[HCMatchingInAnyOrder alloc] initWithMatchers:self.matchers - mismatchDescription:mismatchDescription]; - for (id item in collection) - if (![matchSequence matches:item]) - return NO; - - return [matchSequence isFinishedWith:collection]; -} - -- (void)describeTo:(id )description -{ - [[[description appendText:@"a collection over "] - appendList:self.matchers start:@"[" separator:@", " end:@"]"] - appendText:@" in any order"]; -} - -@end - - -id HC_containsInAnyOrderIn(NSArray *itemMatchers) -{ - return [[HCIsCollectionContainingInAnyOrder alloc] initWithMatchers:HCWrapIntoMatchers(itemMatchers)]; -} - -id HC_containsInAnyOrder(id itemMatchers, ...) -{ - va_list args; - va_start(args, itemMatchers); - NSArray *array = HCCollectItems(itemMatchers, args); - va_end(args); - - return HC_containsInAnyOrderIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h deleted file mode 100644 index a07ee8a..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h +++ /dev/null @@ -1,71 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if every item in a collection satisfies a list of nested matchers, in order. - */ -@interface HCIsCollectionContainingInOrder : HCDiagnosingMatcher - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_containsIn(NSArray *itemMatchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when each item in the examined - * collection satisfies the corresponding matcher in the specified list of matchers. - * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped - * in an equalTo matcher to check for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. For a positive match, the examined collection must be of the same - * length as the specified list of matchers. - * - * Examples
- *
assertThat(\@[\@"foo", \@"bar"], containsIn(\@[equalTo(\@"foo"), equalTo(\@"bar")]))
- *
assertThat(\@[\@"foo", \@"bar"], containsIn(\@[\@"foo", \@"bar"]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_containsIn instead.) - */ -static inline id containsIn(NSArray *itemMatchers) -{ - return HC_containsIn(itemMatchers); -} -#endif - - -FOUNDATION_EXPORT id HC_contains(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when each item in the examined - * collection satisfies the corresponding matcher in the specified list of matchers. - * @param itemMatchers... A comma-separated list of matchers ending with nil. - * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check - * for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. For a positive match, the examined collection must be of the same - * length as the specified list of matchers. - * - * Examples
- *
assertThat(\@[\@"foo", \@"bar"], contains(equalTo(\@"foo"), equalTo(\@"bar"), nil))
- *
assertThat(\@[\@"foo", \@"bar"], contains(\@"foo", \@"bar", nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_contains instead.) - */ -#define contains(itemMatchers...) HC_contains(itemMatchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m deleted file mode 100644 index d50112a..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m +++ /dev/null @@ -1,134 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCollectionContainingInOrder.h" - -#import "HCCollect.h" - - -@interface HCMatchSequence : NSObject -@property (nonatomic, copy, readonly) NSArray> *matchers; -@property (nonatomic, strong, readonly) id mismatchDescription; -@property (nonatomic, assign) NSUInteger nextMatchIndex; -@end - -@implementation HCMatchSequence - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers - mismatchDescription:(id )description -{ - self = [super init]; - if (self) - { - _matchers = [itemMatchers copy]; - _mismatchDescription = description; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return [self isNotSurplus:item] && [self isMatched:item]; -} - -- (BOOL)isFinished -{ - if (self.nextMatchIndex < self.matchers.count) - { - [[self.mismatchDescription appendText:@"no item was "] - appendDescriptionOf:self.matchers[self.nextMatchIndex]]; - return NO; - } - return YES; -} - -- (BOOL)isMatched:(id)item -{ - id matcher = self.matchers[self.nextMatchIndex]; - if (![matcher matches:item]) - { - [self describeMismatchOfMatcher:matcher item:item]; - return NO; - } - ++self.nextMatchIndex; - return YES; -} - -- (BOOL)isNotSurplus:(id)item -{ - if (self.matchers.count <= self.nextMatchIndex) - { - [[self.mismatchDescription - appendText:[NSString stringWithFormat:@"exceeded count of %lu with item ", - (unsigned long)self.matchers.count]] - appendDescriptionOf:item]; - return NO; - } - return YES; -} - -- (void)describeMismatchOfMatcher:(id )matcher item:(id)item -{ - [self.mismatchDescription appendText:[NSString stringWithFormat:@"item %lu: ", - (unsigned long)self.nextMatchIndex]]; - [matcher describeMismatchOf:item to:self.mismatchDescription]; -} - -@end - - -@interface HCIsCollectionContainingInOrder () -@property (nonatomic, copy, readonly) NSArray> *matchers; -@end - -@implementation HCIsCollectionContainingInOrder - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers -{ - self = [super init]; - if (self) - _matchers = [itemMatchers copy]; - return self; -} - -- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription -{ - if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) - { - [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; - return NO; - } - - HCMatchSequence *matchSequence = - [[HCMatchSequence alloc] initWithMatchers:self.matchers - mismatchDescription:mismatchDescription]; - for (id item in collection) - if (![matchSequence matches:item]) - return NO; - - return [matchSequence isFinished]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a collection containing "] - appendList:self.matchers start:@"[" separator:@", " end:@"]"]; -} - -@end - - -id HC_containsIn(NSArray *itemMatchers) -{ - return [[HCIsCollectionContainingInOrder alloc] initWithMatchers:HCWrapIntoMatchers(itemMatchers)]; -} - -id HC_contains(id itemMatchers, ...) -{ - va_list args; - va_start(args, itemMatchers); - NSArray *array = HCCollectItems(itemMatchers, args); - va_end(args); - - return HC_containsIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h deleted file mode 100644 index eb0dd40..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h +++ /dev/null @@ -1,48 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if every item in a collection satisfies a list of nested matchers, in order. - */ -@interface HCIsCollectionContainingInRelativeOrder : HCDiagnosingMatcher - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_containsInRelativeOrder(NSArray *itemMatchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when the examined collection contains - * items satisfying the specified list of matchers, in the same relative order. - * @param itemMatchers Array of matchers that must be satisfied by the items provided by the - * examined collection in the same relative order. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. - * - * Any element of itemMatchers that is not a matcher is implicitly wrapped in an - * equalTo matcher to check for equality. - * - * Examples
- *
assertThat(\@[\@1, \@2, \@3, \@4, \@5], containsInRelativeOrder(equalTo(\@2), equalTo(\@4)))
- *
assertThat(\@[\@1, \@2, \@3, \@4, \@5], containsInRelativeOrder(\@2, \@4))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_containsInRelativeOrder instead. - */ -static inline id containsInRelativeOrder(NSArray *itemMatchers) -{ - return HC_containsInRelativeOrder(itemMatchers); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m deleted file mode 100644 index 4e563b4..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m +++ /dev/null @@ -1,124 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCollectionContainingInRelativeOrder.h" - -#import "HCCollect.h" - - -static void HCRequireNonEmptyArray(NSArray *array) -{ - if (!array.count) - { - @throw [NSException exceptionWithName:@"EmptyArray" - reason:@"Must be non-empty array" - userInfo:nil]; - } -} - - -@interface HCMatchSequenceInRelativeOrder : NSObject -@property (nonatomic, copy, readonly) NSArray> *matchers; -@property (nonatomic, strong, readonly) id mismatchDescription; -@property (nonatomic, assign) NSUInteger nextMatchIndex; -@property (nonatomic, strong) id lastMatchedItem; -@end - -@implementation HCMatchSequenceInRelativeOrder - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers - mismatchDescription:(id )description -{ - self = [super init]; - if (self) - { - _matchers = [itemMatchers copy]; - _mismatchDescription = description; - } - return self; -} - -- (void)processItems:(NSArray *)sequence -{ - for (id item in sequence) - { - if (self.nextMatchIndex < self.matchers.count) - { - id matcher = self.matchers[self.nextMatchIndex]; - if ([matcher matches:item]) - { - self.lastMatchedItem = item; - self.nextMatchIndex += 1; - } - } - } -} - -- (BOOL)isFinished -{ - if (self.nextMatchIndex < self.matchers.count) - { - [[self.mismatchDescription - appendDescriptionOf:self.matchers[self.nextMatchIndex]] - appendText:@" was not found"]; - if (self.lastMatchedItem != nil) - { - [[self.mismatchDescription - appendText:@" after "] - appendDescriptionOf:self.lastMatchedItem]; - } - return NO; - } - return YES; -} - -@end - - -@interface HCIsCollectionContainingInRelativeOrder () -@property (nonatomic, copy, readonly) NSArray> *matchers; -@end - -@implementation HCIsCollectionContainingInRelativeOrder - -- (instancetype)initWithMatchers:(NSArray> *)itemMatchers -{ - HCRequireNonEmptyArray(itemMatchers); - - self = [super init]; - if (self) - _matchers = [itemMatchers copy]; - return self; -} - -- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription -{ - if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) - { - [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; - return NO; - } - - HCMatchSequenceInRelativeOrder *matchSequenceInRelativeOrder = - [[HCMatchSequenceInRelativeOrder alloc] initWithMatchers:self.matchers - mismatchDescription:mismatchDescription]; - [matchSequenceInRelativeOrder processItems:collection]; - return [matchSequenceInRelativeOrder isFinished]; -} - -- (void)describeTo:(id )description -{ - [[[description - appendText:@"a collection containing "] - appendList:self.matchers start:@"[" separator:@", " end:@"]"] - appendText:@" in relative order"]; -} - -@end - - -id HC_containsInRelativeOrder(NSArray *itemMatchers) -{ - NSArray *matchers = HCWrapIntoMatchers(itemMatchers); - return [[HCIsCollectionContainingInRelativeOrder alloc] initWithMatchers:matchers]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h deleted file mode 100644 index df6d380..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h +++ /dev/null @@ -1,62 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if every item in a collection satisfies any of the nested matchers. - */ -@interface HCIsCollectionOnlyContaining : HCEvery -@end - -FOUNDATION_EXPORT id HC_onlyContainsIn(NSArray *itemMatchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when each item of the examined - * collection satisfies any of the specified matchers. - * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped - * in an equalTo matcher to check for equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. Any matcher may match multiple elements. - * - * Example
- *
assertThat(\@[\@"Jon", \@"John", \@"Bob"], onlyContainsIn(\@[startsWith(\@"Jo"), startsWith(\@("Bo")]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_onlyContainsIn instead. - */ -static inline id onlyContainsIn(NSArray *itemMatchers) -{ - return HC_onlyContainsIn(itemMatchers); -} -#endif - - -FOUNDATION_EXPORT id HC_onlyContains(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for collections that matches when each item of the examined - * collection satisfies any of the specified matchers. - * @param itemMatchers... A comma-separated list of matchers ending with nil. - * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check for - * equality. - * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, - * performing a single pass. Any matcher may match multiple elements. - * - * Example
- *
assertThat(\@[\@"Jon", \@"John", \@"Bob"], onlyContains(startsWith(\@"Jo"), startsWith(\@("Bo"), nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_onlyContains instead. - */ -#define onlyContains(itemMatchers...) HC_onlyContains(itemMatchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m deleted file mode 100644 index 117db92..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m +++ /dev/null @@ -1,34 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCollectionOnlyContaining.h" - -#import "HCAnyOf.h" -#import "HCCollect.h" - - -@implementation HCIsCollectionOnlyContaining - -- (void)describeTo:(id )description -{ - [[description appendText:@"a collection containing items matching "] - appendDescriptionOf:self.matcher]; -} - -@end - - -id HC_onlyContainsIn(NSArray *itemMatchers) -{ - return [[HCIsCollectionOnlyContaining alloc] initWithMatcher:HC_anyOfIn(itemMatchers)]; -} - -id HC_onlyContains(id itemMatchers, ...) -{ - va_list args; - va_start(args, itemMatchers); - NSArray *array = HCCollectItems(itemMatchers, args); - va_end(args); - - return HC_onlyContainsIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h deleted file mode 100644 index e4debd8..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h +++ /dev/null @@ -1,47 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if any entry in a dictionary satisfies the nested pair of matchers. - */ -@interface HCIsDictionaryContaining : HCBaseMatcher - -- (instancetype)initWithKeyMatcher:(id )keyMatcher - valueMatcher:(id )valueMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasEntry(id keyMatcher, id valueMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains - * at least one entry whose key satisfies the specified keyMatcher and whose - * value satisfies the specified valueMatcher. - * @param keyMatcher The matcher to satisfy for the key, or an expected value for equalTo matching. - * @param valueMatcher The matcher to satisfy for the value, or an expected value for equalTo matching. - * @discussion Any argument that is not a matcher is implicitly wrapped in an equalTo - * matcher to check for equality. - * - * Examples
- *
assertThat(myDictionary, hasEntry(equalTo(\@"foo"), equalTo(\@"bar")))
- *
assertThat(myDictionary, hasEntry(\@"foo", \@"bar"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasEntry instead. - */ -static inline id hasEntry(id keyMatcher, id valueMatcher) -{ - return HC_hasEntry(keyMatcher, valueMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m deleted file mode 100644 index 127f5c7..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m +++ /dev/null @@ -1,56 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsDictionaryContaining.h" - -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" - - -@interface HCIsDictionaryContaining () -@property (nonatomic, strong, readonly) id keyMatcher; -@property (nonatomic, strong, readonly) id valueMatcher; -@end - -@implementation HCIsDictionaryContaining - -- (instancetype)initWithKeyMatcher:(id )keyMatcher - valueMatcher:(id )valueMatcher -{ - self = [super init]; - if (self) - { - _keyMatcher = keyMatcher; - _valueMatcher = valueMatcher; - } - return self; -} - -- (BOOL)matches:(id)dict -{ - if ([dict isKindOfClass:[NSDictionary class]]) - for (id oneKey in dict) - if ([self.keyMatcher matches:oneKey] && [self.valueMatcher matches:dict[oneKey]]) - return YES; - return NO; -} - -- (void)describeTo:(id )description -{ - [[[[[description appendText:@"a dictionary containing { "] - appendDescriptionOf:self.keyMatcher] - appendText:@" = "] - appendDescriptionOf:self.valueMatcher] - appendText:@"; }"]; -} - -@end - - -id HC_hasEntry(id keyMatcher, id valueMatcher) -{ - HCRequireNonNilObject(keyMatcher); - HCRequireNonNilObject(valueMatcher); - return [[HCIsDictionaryContaining alloc] initWithKeyMatcher:HCWrapInMatcher(keyMatcher) - valueMatcher:HCWrapInMatcher(valueMatcher)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h deleted file mode 100644 index c8e396c..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h +++ /dev/null @@ -1,68 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if dictionary contains entries that satisfy the list of keys and value - * matchers. - */ -@interface HCIsDictionaryContainingEntries : HCDiagnosingMatcher - -- (instancetype)initWithKeys:(NSArray *)keys - valueMatchers:(NSArray> *)valueMatchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -FOUNDATION_EXPORT id HC_hasEntriesIn(NSDictionary *valueMatchersForKeys); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains - * entries satisfying a dictionary of keys and their value matchers. - * @param valueMatchersForKeys A dictionary of keys (not matchers) and their value matchers. Any - * value argument that is not a matcher is implicitly wrapped in an equalTo matcher to - * check for equality. - * @discussion - * Examples
- *
assertThat(personDict, hasEntriesIn(\@{\@"firstName": equalTo(\@"Jon"), \@"lastName": equalTo(\@"Reid")}))
- *
assertThat(personDict, hasEntriesIn(\@{\@"firstName": \@"Jon", \@"lastName": \@"Reid"}))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasEntryIn instead. - */ -static inline id hasEntriesIn(NSDictionary *valueMatchersForKeys) -{ - return HC_hasEntriesIn(valueMatchersForKeys); -} -#endif - -FOUNDATION_EXPORT id HC_hasEntries(id keysAndValueMatchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains - * entries satisfying a list of alternating keys and their value matchers. - * @param keysAndValueMatchers... A key (not a matcher) to look up, followed by a value matcher or - * an expected value for equalTo matching, in a comma-separated list ending - * with nil - * @discussion Note that the keys must be actual keys, not matchers. Any value argument that is not - * a matcher is implicitly wrapped in an equalTo matcher to check for equality. - * - * Examples
- *
assertThat(personDict, hasEntries(\@"firstName", equalTo(\@"Jon"), \@"lastName", equalTo(\@"Reid"), nil))
- *
assertThat(personDict, hasEntries(\@"firstName", \@"Jon", \@"lastName", \@"Reid", nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasEntry instead. - */ -#define hasEntries(keysAndValueMatchers...) HC_hasEntries(keysAndValueMatchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m deleted file mode 100644 index 0b7b948..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m +++ /dev/null @@ -1,132 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsDictionaryContainingEntries.h" - -#import "HCWrapInMatcher.h" - - -@interface HCIsDictionaryContainingEntries () -@property (nonatomic, copy, readonly) NSArray *keys; -@property (nonatomic, copy, readonly) NSArray> *valueMatchers; -@end - -@implementation HCIsDictionaryContainingEntries - -- (instancetype)initWithKeys:(NSArray *)keys - valueMatchers:(NSArray> *)valueMatchers -{ - self = [super init]; - if (self) - { - _keys = [keys copy]; - _valueMatchers = [valueMatchers copy]; - } - return self; -} - -- (BOOL)matches:(id)dict describingMismatchTo:(id )mismatchDescription -{ - if (![dict isKindOfClass:[NSDictionary class]]) - { - [[mismatchDescription appendText:@"was non-dictionary "] appendDescriptionOf:dict]; - return NO; - } - - NSUInteger count = self.keys.count; - for (NSUInteger index = 0; index < count; ++index) - { - id key = self.keys[index]; - if (dict[key] == nil) - { - [[[[mismatchDescription appendText:@"no "] - appendDescriptionOf:key] - appendText:@" key in "] - appendDescriptionOf:dict]; - return NO; - } - - id valueMatcher = self.valueMatchers[index]; - id actualValue = dict[key]; - - if (![valueMatcher matches:actualValue]) - { - [[[[mismatchDescription appendText:@"value for "] - appendDescriptionOf:key] - appendText:@" was "] - appendDescriptionOf:actualValue]; - return NO; - } - } - - return YES; -} - -- (void)describeKeyValueAtIndex:(NSUInteger)index to:(id )description -{ - [[[[description appendDescriptionOf:self.keys[index]] - appendText:@" = "] - appendDescriptionOf:self.valueMatchers[index]] - appendText:@"; "]; -} - -- (void)describeTo:(id )description -{ - [description appendText:@"a dictionary containing { "]; - NSUInteger count = [self.keys count]; - NSUInteger index = 0; - for (; index < count - 1; ++index) - [self describeKeyValueAtIndex:index to:description]; - [self describeKeyValueAtIndex:index to:description]; - [description appendText:@"}"]; -} - -@end - - -static void requirePairedObject(id obj) -{ - if (obj == nil) - { - @throw [NSException exceptionWithName:@"NilObject" - reason:@"HC_hasEntries keys and value matchers must be paired" - userInfo:nil]; - } -} - - -id HC_hasEntriesIn(NSDictionary *valueMatchersForKeys) -{ - NSArray *keys = valueMatchersForKeys.allKeys; - NSMutableArray> *valueMatchers = [[NSMutableArray alloc] init]; - for (id key in keys) - [valueMatchers addObject:HCWrapInMatcher(valueMatchersForKeys[key])]; - - return [[HCIsDictionaryContainingEntries alloc] initWithKeys:keys - valueMatchers:valueMatchers]; -} - -id HC_hasEntries(id keysAndValueMatchers, ...) -{ - va_list args; - va_start(args, keysAndValueMatchers); - - id key = keysAndValueMatchers; - id valueMatcher = va_arg(args, id); - requirePairedObject(valueMatcher); - NSMutableArray *keys = [NSMutableArray arrayWithObject:key]; - NSMutableArray> *valueMatchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(valueMatcher)]; - - key = va_arg(args, id); - while (key != nil) - { - [keys addObject:key]; - valueMatcher = va_arg(args, id); - requirePairedObject(valueMatcher); - [valueMatchers addObject:HCWrapInMatcher(valueMatcher)]; - key = va_arg(args, id); - } - - return [[HCIsDictionaryContainingEntries alloc] initWithKeys:keys - valueMatchers:valueMatchers]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h deleted file mode 100644 index bcdd124..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if any entry in a dictionary has a key satisfying the nested matcher. - */ -@interface HCIsDictionaryContainingKey : HCBaseMatcher - -- (instancetype)initWithKeyMatcher:(id )keyMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasKey(id keyMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains - * at least key that satisfies the specified matcher. - * @param keyMatcher The matcher to satisfy for the key, or an expected value for equalTo matching. - * @discussion Any argument that is not a matcher is implicitly wrapped in an equalTo - * matcher to check for equality. - * - * Examples
- *
assertThat(myDictionary, hasEntry(equalTo(\@"foo")))
- *
assertThat(myDictionary, hasEntry(\@"foo"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasKey instead. - */ -static inline id hasKey(id keyMatcher) -{ - return HC_hasKey(keyMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m deleted file mode 100644 index de53800..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsDictionaryContainingKey.h" - -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" - - -@interface HCIsDictionaryContainingKey () -@property (nonatomic, strong, readonly) id keyMatcher; -@end - -@implementation HCIsDictionaryContainingKey - -- (instancetype)initWithKeyMatcher:(id )keyMatcher -{ - self = [super init]; - if (self) - _keyMatcher = keyMatcher; - return self; -} - -- (BOOL)matches:(id)dict -{ - if ([dict isKindOfClass:[NSDictionary class]]) - for (id oneKey in dict) - if ([self.keyMatcher matches:oneKey]) - return YES; - return NO; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a dictionary containing key "] - appendDescriptionOf:self.keyMatcher]; -} - -@end - - -id HC_hasKey(id keyMatcher) -{ - HCRequireNonNilObject(keyMatcher); - return [[HCIsDictionaryContainingKey alloc] initWithKeyMatcher:HCWrapInMatcher(keyMatcher)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h deleted file mode 100644 index 8588b72..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if any entry in a dictionary has a value satisfying the nested matcher. - */ -@interface HCIsDictionaryContainingValue : HCBaseMatcher - -- (instancetype)initWithValueMatcher:(id )valueMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasValue(id valueMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains - * at least value that satisfies the specified matcher. - * @param valueMatcher The matcher to satisfy for the value, or an expected value for equalTo matching. - * @discussion This matcher works on any collection that has an -allValues method. - * - * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check - * for equality. - * - * Examples
- *
assertThat(myDictionary, hasValue(equalTo(\@"bar")))
- *
assertThat(myDictionary, hasValue(\@"bar"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasValue instead. - */ -static inline id hasValue(id valueMatcher) -{ - return HC_hasValue(valueMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m deleted file mode 100644 index 9e8ec6a..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsDictionaryContainingValue.h" - -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" - - -@interface HCIsDictionaryContainingValue () -@property (nonatomic, strong, readonly) id valueMatcher; -@end - -@implementation HCIsDictionaryContainingValue - -- (instancetype)initWithValueMatcher:(id )valueMatcher -{ - self = [super init]; - if (self) - _valueMatcher = valueMatcher; - return self; -} - -- (BOOL)matches:(id)dict -{ - if ([dict respondsToSelector:@selector(allValues)]) - for (id oneValue in [dict allValues]) - if ([self.valueMatcher matches:oneValue]) - return YES; - return NO; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a dictionary containing value "] - appendDescriptionOf:self.valueMatcher]; -} - -@end - - -id HC_hasValue(id valueMatcher) -{ - HCRequireNonNilObject(valueMatcher); - return [[HCIsDictionaryContainingValue alloc] initWithValueMatcher:HCWrapInMatcher(valueMatcher)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h deleted file mode 100644 index c106828..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h +++ /dev/null @@ -1,39 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches empty collections. - */ -@interface HCIsEmptyCollection : HCHasCount - -- (instancetype)init; - -@end - - -FOUNDATION_EXPORT id HC_isEmpty(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches any examined object whose -count method - * returns zero. - * - * Example
- *
assertThat(\@[], isEmpty())
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isEmpty instead. - */ -static inline id isEmpty(void) -{ - return HC_isEmpty(); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m deleted file mode 100644 index 95cd01a..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m +++ /dev/null @@ -1,33 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsEmptyCollection.h" - -#import "HCIsEqual.h" - - -@implementation HCIsEmptyCollection - -- (instancetype)init -{ - self = [super initWithMatcher:HC_equalTo(@0)]; - return self; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [[mismatchDescription appendText:@"was "] appendDescriptionOf:item]; -} - -- (void)describeTo:(id )description -{ - [description appendText:@"empty collection"]; -} - -@end - - -FOUNDATION_EXPORT id HC_isEmpty(void) -{ - return [[HCIsEmptyCollection alloc] init]; -} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h deleted file mode 100644 index 703075e..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h +++ /dev/null @@ -1,43 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches if examined object is contained within the nested collection. - */ -@interface HCIsIn : HCBaseMatcher - -- (instancetype)initWithCollection:(id)collection NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_isIn(id aCollection); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is found within the specified - * collection. - * @param aCollection The collection to search. - * @discussion Invokes -containsObject: on aCollection to determine if the - * examined object is an element of the collection. - * - * Example
- *
assertThat(\@"foo", isIn(\@@[\@"bar", \@"foo"]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isIn instead. - */ -static inline id isIn(id aCollection) -{ - return HC_isIn(aCollection); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m deleted file mode 100644 index fdce20c..0000000 --- a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsIn.h" - - -@interface HCIsIn () -@property (nonatomic, strong, readonly) id collection; -@end - -@implementation HCIsIn - -- (instancetype)initWithCollection:(id)collection -{ - if (![collection respondsToSelector:@selector(containsObject:)]) - { - @throw [NSException exceptionWithName:@"NotAContainer" - reason:@"Object must respond to -containsObject:" - userInfo:nil]; - } - - self = [super init]; - if (self) - _collection = collection; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return [self.collection containsObject:item]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"one of "] - appendList:self.collection start:@"{" separator:@", " end:@"}"]; -} - -@end - - -id HC_isIn(id aCollection) -{ - return [[HCIsIn alloc] initWithCollection:aCollection]; -} diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h deleted file mode 100644 index 5c83ce9..0000000 --- a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Provides a custom description to another matcher. - */ -@interface HCDescribedAs : HCBaseMatcher - -- (instancetype)initWithDescription:(NSString *)description - forMatcher:(id )matcher - overValues:(NSArray *)templateValues NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_describedAs(NSString *description, id matcher, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Wraps an existing matcher, overriding its description with that specified. All other - * functions are delegated to the decorated matcher, including its mismatch description. - * @param description The new description for the wrapped matcher. - * @param matcher The matcher to wrap, followed by a comma-separated list of substitution - * values ending with nil. - * @discussion The description may contain substitution placeholders %0, %1, etc. These will be - * replaced by any values that follow the matcher. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_describedAs instead. - */ -#define describedAs(description, matcher, ...) HC_describedAs(description, matcher, ##__VA_ARGS__) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m deleted file mode 100644 index f716afb..0000000 --- a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m +++ /dev/null @@ -1,121 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCDescribedAs.h" - - -@interface NSString (OCHamcrest) -@end - -@implementation NSString (OCHamcrest) - -// Parse decimal number (-1 if not found) and return remaining string. -- (NSString *)och_getDecimalNumber:(int *)number -{ - int decimal = 0; - BOOL readDigit = NO; - - NSUInteger length = self.length; - NSUInteger index; - for (index = 0; index < length; ++index) - { - unichar character = [self characterAtIndex:index]; - if (!isdigit(character)) - break; - decimal = decimal * 10 + character - '0'; - readDigit = YES; - } - - if (!readDigit) - { - *number = -1; - return self; - } - *number = decimal; - return [self substringFromIndex:index]; -} - -@end - - -@interface HCDescribedAs () -@property (nonatomic, copy, readonly) NSString *descriptionTemplate; -@property (nonatomic, strong, readonly) id matcher; -@property (nonatomic, copy, readonly) NSArray *values; -@end - -@implementation HCDescribedAs - -- (instancetype)initWithDescription:(NSString *)description - forMatcher:(id )matcher - overValues:(NSArray *)templateValues -{ - self = [super init]; - if (self) - { - _descriptionTemplate = [description copy]; - _matcher = matcher; - _values = [templateValues copy]; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return [self.matcher matches:item]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [self.matcher describeMismatchOf:item to:mismatchDescription]; -} - -- (void)describeTo:(id )description -{ - NSArray *components = [self.descriptionTemplate componentsSeparatedByString:@"%"]; - BOOL firstComponent = YES; - for (NSString *component in components) - { - if (firstComponent) - { - firstComponent = NO; - [description appendText:component]; - } - else - { - [self appendTemplateForComponent:component toDescription:description]; - } - } -} - -- (void)appendTemplateForComponent:(NSString *)component toDescription:(id )description -{ - int index; - NSString *remainder = [component och_getDecimalNumber:&index]; - if (index < 0) - [[description appendText:@"%"] appendText:component]; - else - [[description appendDescriptionOf:self.values[(NSUInteger)index]] appendText:remainder]; -} - -@end - - -id HC_describedAs(NSString *description, id matcher, ...) -{ - NSMutableArray *valueList = [NSMutableArray array]; - - va_list args; - va_start(args, matcher); - id value = va_arg(args, id); - while (value != nil) - { - [valueList addObject:value]; - value = va_arg(args, id); - } - va_end(args); - - return [[HCDescribedAs alloc] initWithDescription:description - forMatcher:matcher - overValues:valueList]; -} diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h deleted file mode 100644 index 63ad139..0000000 --- a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h +++ /dev/null @@ -1,55 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Decorates another matcher. - */ -@interface HCIs : HCBaseMatcher - -- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_is(_Nullable id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Wraps an existing matcher, or provides a shortcut to the frequently - * used is(equalTo(x)). - * @param value The matcher to satisfy, or an expected value for equalTo matching. - * @discussion - * If valueis a matcher, its behavior is retained, but the test may be slightly more - * expressive. For example: - *
    - *
  • assertThat(\@(value), equalTo(\@5))
  • - *
  • assertThat(\@(value), is(equalTo(\@5)))
  • - *
- * - * If valueis not a matcher, it is wrapped in an equalTo matcher. This makes the - * following statements equivalent: - *
    - *
  • assertThat(cheese, equalTo(smelly))
  • - *
  • assertThat(cheese, is(equalTo(smelly)))
  • - *
  • assertThat(cheese, is(smelly))
  • - *
- * - * Choose the style that makes your expression most readable. This will vary depending on context. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_is instead. - */ -static inline id is(_Nullable id value) -{ - return HC_is(value); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m deleted file mode 100644 index d50db35..0000000 --- a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIs.h" - -#import "HCWrapInMatcher.h" - - -@interface HCIs () -@property (nonatomic, strong, readonly) id matcher; -@end - -@implementation HCIs - -- (instancetype)initWithMatcher:(id )matcher -{ - self = [super init]; - if (self) - _matcher = matcher; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return [self.matcher matches:item]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [self.matcher describeMismatchOf:item to:mismatchDescription]; -} - -- (void)describeTo:(id )description -{ - [description appendDescriptionOf:self.matcher]; -} - -@end - - -id HC_is(_Nullable id value) -{ - return [[HCIs alloc] initWithMatcher:HCWrapInMatcher(value)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h deleted file mode 100644 index 547abb7..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h +++ /dev/null @@ -1,64 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Calculates the logical conjunction of multiple matchers. - * @discussion Evaluation is shortcut, so subsequent matchers are not called if an earlier matcher - * returns NO. - */ -@interface HCAllOf : HCDiagnosingMatcher - -- (instancetype)initWithMatchers:(NSArray> *)matchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_allOfIn(NSArray> *matchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object matches all of the - * specified matchers. - * @param matchers An array of matchers. Any element that is not a matcher is implicitly wrapped in - * an equalTo matcher to check for equality. - * @discussion - * Example
- *
assertThat(\@"myValue", allOfIn(\@[startsWith(\@"my"), containsSubstring(\@"Val")]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_allOfIn instead. - */ -static inline id allOfIn(NSArray *matchers) -{ - return HC_allOfIn(matchers); -} -#endif - - -FOUNDATION_EXPORT id HC_allOf(id matchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object matches all of the - * specified matchers. - * @param matchers... A comma-separated list of matchers ending with nil. Any argument - * that is not a matcher is implicitly wrapped in an equalTo matcher to check for equality. - * @discussion - * Example
- *
assertThat(\@"myValue", allOf(startsWith(\@"my"), containsSubstring(\@"Val"), nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_allOf instead. - */ -#define allOf(matchers...) HC_allOf(matchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m deleted file mode 100644 index 6c6761a..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m +++ /dev/null @@ -1,60 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCAllOf.h" - -#import "HCCollect.h" - - -@interface HCAllOf () -@property (nonatomic, copy, readonly) NSArray> *matchers; -@end - -@implementation HCAllOf - -- (instancetype)initWithMatchers:(NSArray> *)matchers -{ - self = [super init]; - if (self) - _matchers = [matchers copy]; - return self; -} - -- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription -{ - for (id oneMatcher in self.matchers) - { - if (![oneMatcher matches:item]) - { - [[[mismatchDescription appendText:@"instead of "] - appendDescriptionOf:oneMatcher] - appendText:@", "]; - [oneMatcher describeMismatchOf:item to:mismatchDescription]; - return NO; - } - } - return YES; -} - -- (void)describeTo:(id )description -{ - [description appendList:self.matchers start:@"(" separator:@" and " end:@")"]; -} - -@end - - -id HC_allOfIn(NSArray *matchers) -{ - return [[HCAllOf alloc] initWithMatchers:HCWrapIntoMatchers(matchers)]; -} - -id HC_allOf(id matchers, ...) -{ - va_list args; - va_start(args, matchers); - NSArray *array = HCCollectItems(matchers, args); - va_end(args); - - return HC_allOfIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h deleted file mode 100644 index 8bfe2a6..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h +++ /dev/null @@ -1,62 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Calculates the logical disjunction of multiple matchers. - * @discussion Evaluation is shortcut, so subsequent matchers are not called if an earlier matcher - * returns NO. - */ -@interface HCAnyOf : HCBaseMatcher - -- (instancetype)initWithMatchers:(NSArray> *)matchers NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -FOUNDATION_EXPORT id HC_anyOfIn(NSArray *matchers); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object matches any of the - * specified matchers. - * @param matchers An array of matchers. Any element that is not a matcher is implicitly wrapped in - * an equalTo matcher to check for equality. - * @discussion - * Example
- *
assertThat(\@"myValue", allOf(\@[startsWith(\@"foo"), containsSubstring(\@"Val")]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_anyOf instead. - */ -static inline id anyOfIn(NSArray *matchers) -{ - return HC_anyOfIn(matchers); -} -#endif - -FOUNDATION_EXPORT id HC_anyOf(id matchers, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object matches any of the - * specified matchers. - * @param matchers... A comma-separated list of matchers ending with nil. Any argument - * that is not a matcher is implicitly wrapped in an equalTo matcher to check for equality. - * @discussion - * Example
- *
assertThat(\@"myValue", allOf(startsWith(\@"foo"), containsSubstring(\@"Val"), nil))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_anyOf instead. - */ -#define anyOf(matchers...) HC_anyOf(matchers) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m deleted file mode 100644 index a575448..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m +++ /dev/null @@ -1,52 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCAnyOf.h" - -#import "HCCollect.h" - - -@interface HCAnyOf () -@property (nonatomic, copy, readonly) NSArray> *matchers; -@end - -@implementation HCAnyOf - -- (instancetype)initWithMatchers:(NSArray> *)matchers -{ - self = [super init]; - if (self) - _matchers = [matchers copy]; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - for (id oneMatcher in self.matchers) - if ([oneMatcher matches:item]) - return YES; - return NO; -} - -- (void)describeTo:(id )description -{ - [description appendList:self.matchers start:@"(" separator:@" or " end:@")"]; -} - -@end - - -id HC_anyOfIn(NSArray *matchers) -{ - return [[HCAnyOf alloc] initWithMatchers:HCWrapIntoMatchers(matchers)]; -} - -id HC_anyOf(id matchers, ...) -{ - va_list args; - va_start(args, matchers); - NSArray *array = HCCollectItems(matchers, args); - va_end(args); - - return HC_anyOfIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h deleted file mode 100644 index 244004c..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h +++ /dev/null @@ -1,55 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches anything. - */ -@interface HCIsAnything : HCBaseMatcher - -- (instancetype)init; -- (instancetype)initWithDescription:(NSString *)description NS_DESIGNATED_INITIALIZER; - -@end - - -FOUNDATION_EXPORT id HC_anything(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that always matches, regardless of the examined object. - * @discussion - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_anything instead. - */ -static inline id anything(void) -{ - return HC_anything(); -} -#endif - - -FOUNDATION_EXPORT id HC_anythingWithDescription(NSString *description); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches anything, regardless of the examined object, but - * describes itself with the specified NSString. - * @param description A meaningful string used to describe this matcher. - * @discussion - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_anything instead. - */ -static inline id anythingWithDescription(NSString *description) -{ - return HC_anythingWithDescription(description); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m deleted file mode 100644 index c790cd9..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m +++ /dev/null @@ -1,47 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsAnything.h" - - -@implementation HCIsAnything -{ - NSString *_description; -} - -- (instancetype)init -{ - self = [self initWithDescription:@"ANYTHING"]; - return self; -} - -- (instancetype)initWithDescription:(NSString *)description -{ - self = [super init]; - if (self) - _description = [description copy]; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return YES; -} - -- (void)describeTo:(id )aDescription -{ - [aDescription appendText:_description]; -} - -@end - - -id HC_anything() -{ - return [[HCIsAnything alloc] init]; -} - -id HC_anythingWithDescription(NSString *description) -{ - return [[HCIsAnything alloc] initWithDescription:description]; -} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h deleted file mode 100644 index 7f0eebb..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Calculates the logical negation of a matcher. - */ -@interface HCIsNot : HCBaseMatcher - -- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_isNot(_Nullable id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that wraps an existing matcher, but inverts the logic by which it - * will match. - * @param value The matcher to negate, or an expected value to match for inequality. - * @discussion If value is not a matcher, it is implicitly wrapped in an equalTo - * matcher to check for equality, and thus matches for inequality. - * - * Examples
- *
assertThat(cheese, isNot(equalTo(smelly)))
- *
assertThat(cheese, isNot(smelly))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isNot instead. - */ -static inline id isNot(_Nullable id value) -{ - return HC_isNot(value); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m deleted file mode 100644 index 4e54f32..0000000 --- a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m +++ /dev/null @@ -1,43 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsNot.h" - -#import "HCWrapInMatcher.h" - - -@interface HCIsNot () -@property (nonatomic, strong, readonly) id matcher; -@end - -@implementation HCIsNot - -- (instancetype)initWithMatcher:(id )matcher -{ - self = [super init]; - if (self) - _matcher = matcher; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return ![self.matcher matches:item]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"not "] appendDescriptionOf:self.matcher]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [self.matcher describeMismatchOf:item to:mismatchDescription]; -} -@end - - -id HC_isNot(_Nullable id value) -{ - return [[HCIsNot alloc] initWithMatcher:HCWrapInMatcher(value)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h deleted file mode 100644 index 190264f..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h +++ /dev/null @@ -1,43 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matchers numbers close to a value, within a delta range. - */ -@interface HCIsCloseTo : HCBaseMatcher - -- (instancetype)initWithValue:(double)value delta:(double)delta NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_closeTo(double value, double delta); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSNumbers that matches when the examined number is close to the - * specified value, within the specified delta. - * @param value The expected value of matching numbers. - * @param delta The delta within which matches will be allowed. - * @discussion Invokes -doubleValue on the examined number to get its value. - * - * Example
- *
assertThat(\@1.03, closeTo(1.0, 0.03)
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_closeTo instead. - */ -static inline id closeTo(double value, double delta) -{ - return HC_closeTo(value, delta); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m deleted file mode 100644 index 13099b1..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m +++ /dev/null @@ -1,69 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsCloseTo.h" - - -@interface HCIsCloseTo () -@property (nonatomic, assign, readonly) double value; -@property (nonatomic, assign, readonly) double delta; -@end - -@implementation HCIsCloseTo - -- (id)initWithValue:(double)value delta:(double)delta -{ - self = [super init]; - if (self) - { - _value = value; - _delta = delta; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if ([self itemIsNotNumber:item]) - return NO; - - return [self actualDelta:item] <= self.delta; -} - -- (double)actualDelta:(id)item -{ - return fabs([item doubleValue] - self.value); -} - -- (BOOL)itemIsNotNumber:(id)item -{ - return ![item isKindOfClass:[NSNumber class]]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - if ([self itemIsNotNumber:item]) - [super describeMismatchOf:item to:mismatchDescription]; - else - { - [[[mismatchDescription appendDescriptionOf:item] - appendText:@" differed by "] - appendDescriptionOf:@([self actualDelta:item])]; - } -} - -- (void)describeTo:(id )description -{ - [[[[description appendText:@"a numeric value within "] - appendDescriptionOf:@(self.delta)] - appendText:@" of "] - appendDescriptionOf:@(self.value)]; -} - -@end - - -id HC_closeTo(double value, double delta) -{ - return [[HCIsCloseTo alloc] initWithValue:value delta:delta]; -} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h deleted file mode 100644 index edbce06..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h +++ /dev/null @@ -1,289 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXPORT id HC_equalToChar(char value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified char value. - * @param value The char value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToChar instead. - */ -static inline id equalToChar(char value) -{ - return HC_equalToChar(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToDouble(double value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified double value. - * @param value The double value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToDouble instead. - */ -static inline id equalToDouble(double value) -{ - return HC_equalToDouble(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToFloat(float value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified float value. - * @param value The float value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToFloat instead. - */ -static inline id equalToFloat(float value) -{ - return HC_equalToFloat(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToInt(int value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified int value. - * @param value The int value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToInt instead. - */ -static inline id equalToInt(int value) -{ - return HC_equalToInt(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToLong(long value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified long value. - * @param value The long value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToLong instead. - */ -static inline id equalToLong(long value) -{ - return HC_equalToLong(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToLongLong(long long value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified long long value. - * @param value The long long value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToLongLong instead. - */ -static inline id equalToLongLong(long long value) -{ - return HC_equalToLongLong(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToShort(short value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified short value. - * @param value The short value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToShort instead. - */ -static inline id equalToShort(short value) -{ - return HC_equalToShort(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedChar(unsigned char value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract equalToUnsignedChar(value) - - * Creates a matcher that matches when the examined object is equal to an NSNumber created from the - * specified unsigned char value. - * @param value The unsigned char value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedChar instead. - */ -static inline id equalToUnsignedChar(unsigned char value) -{ - return HC_equalToUnsignedChar(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedInt(unsigned int value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified unsigned int value. - * @param value The unsigned int value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedInt instead. - */ -static inline id equalToUnsignedInt(unsigned int value) -{ - return HC_equalToUnsignedInt(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedLong(unsigned long value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified unsigned long value. - * @param value The unsigned long value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedLong instead. - */ -static inline id equalToUnsignedLong(unsigned long value) -{ - return HC_equalToUnsignedLong(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified unsigned long long value. - * @param value The unsigned long long value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedLongLong instead. - */ -static inline id equalToUnsignedLongLong(unsigned long long value) -{ - return HC_equalToUnsignedLongLong(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedShort(unsigned short value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified unsigned short value. - * @param value The unsigned short value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedShort instead. - */ -static inline id equalToUnsignedShort(unsigned short value) -{ - return HC_equalToUnsignedShort(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToInteger(NSInteger value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified NSInteger value. - * @param value The NSInteger value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToInteger instead. - */ -static inline id equalToInteger(NSInteger value) -{ - return HC_equalToInteger(value); -} -#endif - - -FOUNDATION_EXPORT id HC_equalToUnsignedInteger(NSUInteger value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created - * from the specified NSUInteger value. - * @param value The NSUInteger value from which to create an NSNumber. - * @discussion Consider using equalTo(\@(value)) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToUnsignedInteger instead. - */ -static inline id equalToUnsignedInteger(NSUInteger value) -{ - return HC_equalToUnsignedInteger(value); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m deleted file mode 100644 index ea58bb6..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m +++ /dev/null @@ -1,77 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsEqualToNumber.h" - -#import "HCIsEqual.h" - - -FOUNDATION_EXPORT id HC_equalToChar(char value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToDouble(double value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToFloat(float value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToInt(int value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToLong(long value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToLongLong(long long value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToShort(short value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedChar(unsigned char value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedInt(unsigned int value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedLong(unsigned long value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedShort(unsigned short value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToInteger(NSInteger value) -{ - return HC_equalTo(@(value)); -} - -FOUNDATION_EXPORT id HC_equalToUnsignedInteger(NSUInteger value) -{ - return HC_equalTo(@(value)); -} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h deleted file mode 100644 index bfdc9ea..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h +++ /dev/null @@ -1,55 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches true values. - */ -@interface HCIsTrue : HCBaseMatcher -@end - -/*! - * @abstract Matches false values. - */ -@interface HCIsFalse : HCBaseMatcher -@end - - -FOUNDATION_EXPORT id HC_isTrue(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is an non-zero NSNumber. - * @discussion - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isTrue instead. - */ -static inline id isTrue(void) -{ - return HC_isTrue(); -} -#endif - - -FOUNDATION_EXPORT id HC_isFalse(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is NSNumber zero. - * @discussion - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isFalse instead. -*/ -static inline id isFalse(void) -{ - return HC_isFalse(); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m deleted file mode 100644 index ee6c866..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m +++ /dev/null @@ -1,55 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsTrueFalse.h" - - -@implementation HCIsTrue - -- (BOOL)matches:(nullable id)item -{ - if (![item isKindOfClass:[NSNumber class]]) - return NO; - - return [item boolValue]; -} - -- (void)describeTo:(id )description -{ - [description appendText:@"true (non-zero)"]; -} - -@end - - -FOUNDATION_EXPORT id HC_isTrue(void) -{ - return [[HCIsTrue alloc] init]; -} - - -#pragma mark - - -@implementation HCIsFalse - -- (BOOL)matches:(nullable id)item -{ - if (![item isKindOfClass:[NSNumber class]]) - return NO; - - return ![item boolValue]; -} - -- (void)describeTo:(id )description -{ - [description appendText:@"false (zero)"]; -} - -@end - - -FOUNDATION_EXPORT id HC_isFalse(void) -{ - return [[HCIsFalse alloc] init]; -} - diff --git a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h deleted file mode 100644 index c6c3f14..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h +++ /dev/null @@ -1,340 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -@protocol HCMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatBool(actual, matcher) \ - HC_assertThatBoolWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatBool(actual, matcher) - - * Asserts that BOOL actual value, converted to an NSNumber, satisfies matcher. - * @param actual The BOOL value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatBool instead. - */ -#define assertThatBool(actual, matcher) HC_assertThatBool(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatChar(actual, matcher) \ - HC_assertThatCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatChar(actual, matcher) - - * Asserts that char actual value, converted to an NSNumber, satisfies matcher. - * @param actual The char value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatChar instead. - */ -#define assertThatChar(actual, matcher) HC_assertThatChar(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatDouble(actual, matcher) \ - HC_assertThatDoubleWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract HC_assertThatDouble(actual, matcher) - - * Asserts that double actual value, converted to an NSNumber, satisfies matcher. - * @param actual The double value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatDouble instead. - */ -#define assertThatDouble(actual, matcher) HC_assertThatDouble(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatFloat(actual, matcher) \ - HC_assertThatFloatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatFloat(actual, matcher) - - * Asserts that float actual value, converted to an NSNumber, satisfies matcher. - * @param actual The float value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatFloat instead. - */ -#define assertThatFloat(actual, matcher) HC_assertThatFloat(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatInt(actual, matcher) \ - HC_assertThatIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatInt(actual, matcher) - - * Asserts that int actual value, converted to an NSNumber, satisfies matcher. - * @param actual The int value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatInt instead. - */ -#define assertThatInt(actual, matcher) HC_assertThatInt(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatLong(actual, matcher) \ - HC_assertThatLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatLong(actual, matcher) - - * Asserts that long actual value, converted to an NSNumber, satisfies matcher. - * @param actual The long value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatLong instead. - */ -#define assertThatLong(actual, matcher) HC_assertThatLong(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatLongLong(actual, matcher) \ - HC_assertThatLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatLongLong(actual, matcher) - - * Asserts that long long actual value, converted to an NSNumber, satisfies matcher. - * @param actual The long long value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatLongLong instead. - */ -#define assertThatLongLong(actual, matcher) HC_assertThatLongLong(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatShort(actual, matcher) \ - HC_assertThatShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatShort(actual, matcher) - - * Asserts that short actual value, converted to an NSNumber, satisfies matcher. - * @param actual The short value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatShort instead. - */ -#define assertThatShort(actual, matcher) HC_assertThatShort(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedChar(actual, matcher) \ - HC_assertThatUnsignedCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedChar(actual, matcher) - - * Asserts that unsigned char actual value, converted to an NSNumber, satisfies matcher. - * @param actual The unsigned char value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedChar instead. - */ -#define assertThatUnsignedChar(actual, matcher) HC_assertThatUnsignedChar(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedInt(actual, matcher) \ - HC_assertThatUnsignedIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedInt(actual, matcher) - - * Asserts that unsigned int actual value, converted to an NSNumber, satisfies matcher. - * @param actual The unsigned int value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedInt instead. - */ -#define assertThatUnsignedInt(actual, matcher) HC_assertThatUnsignedInt(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedLong(actual, matcher) \ - HC_assertThatUnsignedLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedLong(actual, matcher) - - * Asserts that unsigned long actual value, converted to an NSNumber, satisfies matcher. - * @param actual The unsigned long value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedLong instead. - */ -#define assertThatUnsignedLong(actual, matcher) HC_assertThatUnsignedLong(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedLongLong(actual, matcher) \ - HC_assertThatUnsignedLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedLongLong(actual, matcher) - - * Asserts that unsigned long long actual value, converted to an NSNumber, satisfies matcher. - * @param actual The unsigned long long value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedLongLong instead. - */ -#define assertThatUnsignedLongLong(actual, matcher) HC_assertThatUnsignedLongLong(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedShort(actual, matcher) \ - HC_assertThatUnsignedShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedShort(actual, matcher) - - * Asserts that unsigned short actual value, converted to an NSNumber, satisfies matcher. - * @param actual The unsigned short value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedShort instead. - */ -#define assertThatUnsignedShort(actual, matcher) HC_assertThatUnsignedShort(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatInteger(actual, matcher) \ - HC_assertThatIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatInteger(actual, matcher) - - * Asserts that NSInteger actual value, converted to an NSNumber, satisfies matcher. - * @param actual The NSInteger value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatInteger instead. - */ -#define assertThatInteger(actual, matcher) HC_assertThatInteger(actual, matcher) -#endif - - -FOUNDATION_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, - id matcher, char const *fileName, int lineNumber); - -#define HC_assertThatUnsignedInteger(actual, matcher) \ - HC_assertThatUnsignedIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract assertThatUnsignedInteger(actual, matcher) - - * Asserts that NSUInteger actual value, converted to an NSNumber, satisfies matcher. - * @param actual The NSUInteger value to convert to an NSNumber for evaluation. - * @param matcher The matcher to satisfy as the expected condition. - * @discussion Consider using assertThat(\@(actual), matcher) instead. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_assertThatUnsignedInteger instead. - */ -#define assertThatUnsignedInteger(actual, matcher) HC_assertThatUnsignedInteger(actual, matcher) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m deleted file mode 100644 index 1410565..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m +++ /dev/null @@ -1,97 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCNumberAssert.h" - -#import "HCAssertThat.h" - - -FOUNDATION_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} - -FOUNDATION_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, - id matcher, char const * fileName, int lineNumber) -{ - HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); -} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h deleted file mode 100644 index 870b35f..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h +++ /dev/null @@ -1,114 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches values with -compare:. - */ -@interface HCOrderingComparison : HCBaseMatcher - -- (instancetype)initComparing:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)comparisonDescription NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_greaterThan(id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is greater than the specified - * value, as reported by the -compare: method of the examined object. - * @param value The value which, when passed to the -compare: method of the examined - * object, should return NSOrderedAscending. - * @discussion - * Example
- *
assertThat(\@2, greaterThan(\@1))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_greaterThan instead. - */ -static inline id greaterThan(id value) -{ - return HC_greaterThan(value); -} -#endif - - -FOUNDATION_EXPORT id HC_greaterThanOrEqualTo(id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is greater than or equal to the - * specified value, as reported by the -compare: method of the examined object. - * @param value The value which, when passed to the -compare: method of the examined - * object, should return NSOrderedAscending or NSOrderedSame. - * @discussion - * Example
- *
assertThat(\@1, greaterThanOrEqualTo(\@1))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_greaterThanOrEqualTo instead. - */ -static inline id greaterThanOrEqualTo(id value) -{ - return HC_greaterThanOrEqualTo(value); -} -#endif - - -FOUNDATION_EXPORT id HC_lessThan(id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is less than the specified - * value, as reported by the -compare: method of the examined object. - * @param value The value which, when passed to the -compare: method of the examined - * object, should return NSOrderedDescending. - * @discussion - * Example
- *
assertThat(\@1, lessThan(\@2))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_lessThan instead. - */ -static inline id lessThan(id value) -{ - return HC_lessThan(value); -} -#endif - - -FOUNDATION_EXPORT id HC_lessThanOrEqualTo(id value); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is less than or equal to the - * specified value, as reported by the -compare: method of the examined object. - * @param value The value which, when passed to the -compare: method of the examined - * object, should return NSOrderedDescending or NSOrderedSame. - * @discussion - * Example
- *
assertThat(\@1, lessThanOrEqualTo(\@1))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_lessThanOrEqualTo instead. - */ -static inline id lessThanOrEqualTo(id value) -{ - return HC_lessThanOrEqualTo(value); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m deleted file mode 100644 index e04eac5..0000000 --- a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m +++ /dev/null @@ -1,97 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCOrderingComparison.h" - - -@interface HCOrderingComparison () -@property (nonatomic, strong, readonly) id expected; -@property (nonatomic, assign, readonly) NSComparisonResult minCompare; -@property (nonatomic, assign, readonly) NSComparisonResult maxCompare; -@property (nonatomic, copy, readonly) NSString *comparisonDescription; -@end - -@implementation HCOrderingComparison - -- (instancetype)initComparing:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)description -{ - if (![expectedValue respondsToSelector:@selector(compare:)]) - { - @throw [NSException exceptionWithName: @"UncomparableObject" - reason: @"Object must respond to compare:" - userInfo: nil]; - } - - self = [super init]; - if (self) - { - _expected = expectedValue; - _minCompare = min; - _maxCompare = max; - _comparisonDescription = [description copy]; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (item == nil) - return NO; - - NSComparisonResult compare; - @try - { - compare = [self.expected compare:item]; - } - @catch (NSException *e) - { - return NO; - } - return self.minCompare <= compare && compare <= self.maxCompare; -} - -- (void)describeTo:(id )description -{ - [[[[description appendText:@"a value "] - appendText:self.comparisonDescription] - appendText:@" "] - appendDescriptionOf:self.expected]; -} - -@end - - -id HC_greaterThan(id value) -{ - return [[HCOrderingComparison alloc] initComparing:value - minCompare:NSOrderedAscending - maxCompare:NSOrderedAscending - comparisonDescription:@"greater than"]; -} - -id HC_greaterThanOrEqualTo(id value) -{ - return [[HCOrderingComparison alloc] initComparing:value - minCompare:NSOrderedAscending - maxCompare:NSOrderedSame - comparisonDescription:@"greater than or equal to"]; -} - -id HC_lessThan(id value) -{ - return [[HCOrderingComparison alloc] initComparing:value - minCompare:NSOrderedDescending - maxCompare:NSOrderedDescending - comparisonDescription:@"less than"]; -} - -id HC_lessThanOrEqualTo(id value) -{ - return [[HCOrderingComparison alloc] initComparing:value - minCompare:NSOrderedSame - maxCompare:NSOrderedDescending - comparisonDescription:@"less than or equal to"]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h deleted file mode 100644 index 7aca2c8..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches anything, capturing all values. - * @discussion This matcher captures all values it was given to match, and always evaluates to - * YES. Use it to capture argument values for further assertions. - * - * Unlike other matchers, this matcher is not idempotent. It should be created outside of any - * expression so that it can be queried for the items it captured. - */ -@interface HCArgumentCaptor : HCIsAnything - -/*! - * @abstract Returns the captured value. - * @discussion If -matches: was called more than once then this property returns the - * last captured value. - * - * If -matches: was never invoked and so no value was captured, this property returns - * nil. But if nil was captured, this property returns NSNull. - */ -@property (nullable, nonatomic, readonly) id value; - -/*! - * @abstract Returns all captured values. - * @discussion Returns an array containing all captured values, in the order in which they were - * captured. nil values are converted to NSNull. - */ -@property (nonatomic, readonly) NSArray *allValues; - -/*! - * @abstract Determines whether subsequent matched values are captured. - * @discussion YES by default. - */ -@property (nonatomic, assign) BOOL captureEnabled; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m deleted file mode 100644 index 0d17af0..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m +++ /dev/null @@ -1,56 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCArgumentCaptor.h" - - -@interface HCArgumentCaptor () -@property (nonatomic, strong, readonly) NSMutableArray *values; -@end - -@implementation HCArgumentCaptor - -@dynamic allValues; -@dynamic value; - -- (instancetype)init -{ - self = [super initWithDescription:@""]; - if (self) - { - _values = [[NSMutableArray alloc] init]; - _captureEnabled = YES; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - [self capture:item]; - return [super matches:item]; -} - -- (void)capture:(id)item -{ - if (self.captureEnabled) - { - id value = item ?: [NSNull null]; - if ([value conformsToProtocol:@protocol(NSCopying)]) - value = [value copy]; - [self.values addObject:value]; - } -} - -- (id)value -{ - if (!self.values.count) - return nil; - return self.values.lastObject; -} - -- (NSArray *)allValues -{ - return [self.values copy]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h deleted file mode 100644 index acfe479..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCClassMatcher : HCBaseMatcher - -@property (nonatomic, strong, readonly) Class theClass; - -- (instancetype)initWithClass:(Class)aClass NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m deleted file mode 100644 index fd9d146..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m +++ /dev/null @@ -1,43 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCClassMatcher.h" - -#import "HCRequireNonNilObject.h" - - -@interface HCClassMatcher (SubclassResponsibility) -- (NSString *)expectation; -@end - - -@implementation HCClassMatcher - -- (instancetype)initWithClass:(Class)aClass -{ - HCRequireNonNilObject(aClass); - - self = [super init]; - if (self) - _theClass = aClass; - return self; -} - -- (void)describeTo:(id )description -{ - [[description appendText:[self expectation]] - appendText:NSStringFromClass(self.theClass)]; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [mismatchDescription appendText:@"was "]; - if (item) - { - [[mismatchDescription appendText:NSStringFromClass([item class])] - appendText:@" instance "]; - } - [mismatchDescription appendDescriptionOf:item]; -} - -@end diff --git a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h deleted file mode 100644 index 39b2b41..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h +++ /dev/null @@ -1,42 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt -// Contribution by Todd Farrell - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches objects that conform to specified protocol. - */ -@interface HCConformsToProtocol : HCBaseMatcher - -- (instancetype)initWithProtocol:(Protocol *)protocol NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_conformsTo(Protocol *aProtocol); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object conforms to the specified - * protocol. - * @param aProtocol The protocol to compare against as the expected protocol. - * @discussion - * Example
- *
assertThat(myObject, conformsTo(\@protocol(NSCoding))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_conformsTo instead. - */ -static inline id conformsTo(Protocol *aProtocol) -{ - return HC_conformsTo(aProtocol); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m deleted file mode 100644 index 06c65c3..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m +++ /dev/null @@ -1,44 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt -// Contribution by Todd Farrell -// - -#import "HCConformsToProtocol.h" - -#import "HCRequireNonNilObject.h" - - -@interface HCConformsToProtocol () -@property (nonatomic, strong, readonly) Protocol *protocol; -@end - -@implementation HCConformsToProtocol - -- (instancetype)initWithProtocol:(Protocol *)protocol -{ - HCRequireNonNilObject(protocol); - - self = [super init]; - if (self) - _protocol = protocol; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return [item conformsToProtocol:self.protocol]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"an object that conforms to "] - appendText:NSStringFromProtocol(self.protocol)]; -} - -@end - - -id HC_conformsTo(Protocol *aProtocol) -{ - return [[HCConformsToProtocol alloc] initWithProtocol:aProtocol]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h deleted file mode 100644 index 3e54309..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches objects whose description satisfies a nested matcher. - */ -@interface HCHasDescription : HCInvocationMatcher - -- (instancetype)initWithDescription:(id )descriptionMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasDescription(id descriptionMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object's -description - * satisfies the specified matcher. - * @param descriptionMatcher The matcher used to verify the description result, or an expected value - * for equalTo matching. - * @discussion If descriptionMatcher is not a matcher, it is implicitly wrapped in - * an equalTo matcher to check for equality. - * - * Examples
- *
assertThat(myObject, hasDescription(equalTo(\@"foo"))
- *
assertThat(myObject, hasDescription(\@"foo"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasDescription instead. - */ -static inline id hasDescription(id descriptionMatcher) -{ - return HC_hasDescription(descriptionMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m deleted file mode 100644 index b44bfab..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m +++ /dev/null @@ -1,28 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCHasDescription.h" - -#import "HCWrapInMatcher.h" -#import "NSInvocation+OCHamcrest.h" - - -@implementation HCHasDescription - -- (instancetype)initWithDescription:(id )descriptionMatcher -{ - NSInvocation *anInvocation = [NSInvocation och_invocationOnObjectOfType:[NSObject class] - selector:@selector(description)]; - self = [super initWithInvocation:anInvocation matching:descriptionMatcher]; - if (self) - self.shortMismatchDescription = YES; - return self; -} - -@end - - -id HC_hasDescription(id descriptionMatcher) -{ - return [[HCHasDescription alloc] initWithDescription:HCWrapInMatcher(descriptionMatcher)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h deleted file mode 100644 index 51b66b7..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h +++ /dev/null @@ -1,47 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt -// Contribution by Justin Shacklette - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches objects whose "property" (or simple method) satisfies a nested matcher. - */ -@interface HCHasProperty : HCDiagnosingMatcher - -- (instancetype)initWithProperty:(NSString *)propertyName value:(id )valueMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_hasProperty(NSString *propertyName, _Nullable id valueMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object has an instance method with the - * specified name whose return value satisfies the specified matcher. - * @param propertyName The name of an instance method without arguments that returns an object. - * @param valueMatcher The matcher to satisfy for the return value, or an expected value for - * equalTo matching. - * @discussion Note: While this matcher factory is called "hasProperty", it applies to the return - * values of any instance methods without arguments, not just properties. - * - * Examples
- *
assertThat(person, hasProperty(\@"firstName", equalTo(\@"Joe")))
- *
assertThat(person, hasProperty(\@"firstName", \@"Joe"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_hasProperty instead. - */ -static inline id hasProperty(NSString *propertyName, _Nullable id valueMatcher) -{ - return HC_hasProperty(propertyName, valueMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m deleted file mode 100644 index 8bd7451..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m +++ /dev/null @@ -1,71 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt -// Contribution by Justin Shacklette - -#import "HCHasProperty.h" - -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" -#import "NSInvocation+OCHamcrest.h" - - -@interface HCHasProperty () -@property (nonatomic, copy, readonly) NSString *propertyName; -@property (nonatomic, strong, readonly) id valueMatcher; -@end - -@implementation HCHasProperty - -- (instancetype)initWithProperty:(NSString *)propertyName value:(id )valueMatcher -{ - HCRequireNonNilObject(propertyName); - - self = [super init]; - if (self != nil) - { - _propertyName = [propertyName copy]; - _valueMatcher = valueMatcher; - } - return self; -} - -- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription -{ - SEL propertyGetter = NSSelectorFromString(self.propertyName); - if (![item respondsToSelector:propertyGetter]) - { - [[[[mismatchDescription appendText:@"no "] - appendText:self.propertyName] - appendText:@" on "] - appendDescriptionOf:item]; - return NO; - } - - NSInvocation *getterInvocation = [NSInvocation och_invocationWithTarget:item selector:propertyGetter]; - id propertyValue = [getterInvocation och_invoke]; - BOOL match = [self.valueMatcher matches:propertyValue]; - if (!match) - { - [[[[[mismatchDescription appendText:self.propertyName] - appendText:@" was "] - appendDescriptionOf:propertyValue] - appendText:@" on "] - appendDescriptionOf:item]; - } - return match; -} - -- (void)describeTo:(id )description -{ - [[[[description appendText:@"an object with "] - appendText:self.propertyName] - appendText:@" "] - appendDescriptionOf:self.valueMatcher]; -} -@end - - -id HC_hasProperty(NSString *propertyName, _Nullable id valueMatcher) -{ - return [[HCHasProperty alloc] initWithProperty:propertyName value:HCWrapInMatcher(valueMatcher)]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h deleted file mode 100644 index 734ee52..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Is the value equal to another value, as tested by the -isEqual: method? - */ -@interface HCIsEqual : HCBaseMatcher - -- (instancetype)initEqualTo:(nullable id)expectedValue NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_equalTo(_Nullable id operand); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is equal to the specified - * object, as determined by calling the -isEqual: method on the examined object. - * @param operand The object to compare against as the expected value. - * @discussion If the specified operand is nil, then the created matcher will match if - * the examined object itself is nil, or if the examined object's -isEqual: - * method returns YES when passed a nil. - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalTo instead. - */ -static inline id equalTo(_Nullable id operand) -{ - return HC_equalTo(operand); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m deleted file mode 100644 index a422b0a..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsEqual.h" - - -@interface HCIsEqual () -@property (nullable, nonatomic, strong, readonly) id expectedValue; -@end - -@implementation HCIsEqual - -- (instancetype)initEqualTo:(nullable id)expectedValue -{ - self = [super init]; - if (self) - _expectedValue = expectedValue; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (item == nil) - return self.expectedValue == nil; - return [item isEqual:self.expectedValue]; -} - -- (void)describeTo:(id )description -{ - if ([self.expectedValue conformsToProtocol:@protocol(HCMatcher)]) - { - [[[description appendText:@"<"] - appendDescriptionOf:self.expectedValue] - appendText:@">"]; - } - else - [description appendDescriptionOf:self.expectedValue]; -} - -@end - - -id HC_equalTo(_Nullable id operand) -{ - return [[HCIsEqual alloc] initEqualTo:operand]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h deleted file mode 100644 index 1dc0b28..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h +++ /dev/null @@ -1,37 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches objects that are of a given class or any subclass. - */ -@interface HCIsInstanceOf : HCClassMatcher -@end - - -FOUNDATION_EXPORT id HC_instanceOf(Class expectedClass); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is an instance of, or inherits - * from, the specified class. - * @param expectedClass The class to compare against as the expected class. - * @discussion - * Example
- *
assertThat(canoe, instanceOf([Canoe class]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_instanceOf instead. - */ -static inline id instanceOf(Class expectedClass) -{ - return HC_instanceOf(expectedClass); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m deleted file mode 100644 index 3f2f34e..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsInstanceOf.h" - - -@implementation HCIsInstanceOf - -- (BOOL)matches:(nullable id)item -{ - return [item isKindOfClass:self.theClass]; -} - -- (NSString *)expectation -{ - return @"an instance of "; -} - -@end - - -id HC_instanceOf(Class expectedClass) -{ - return [[HCIsInstanceOf alloc] initWithClass:expectedClass]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h deleted file mode 100644 index feef766..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h +++ /dev/null @@ -1,55 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Is the value nil? - */ -@interface HCIsNil : HCBaseMatcher -@end - - -FOUNDATION_EXPORT id HC_nilValue(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is nil. - * @discussion - * Example
- *
assertThat(myObject, nilValue())
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_nilValue instead. - */ -static inline id nilValue(void) -{ - return HC_nilValue(); -} -#endif - - -FOUNDATION_EXPORT id HC_notNilValue(void); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is not nil. - * @discussion - * Example
- *
assertThat(myObject, notNilValue())
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_notNilValue instead. - */ -static inline id notNilValue(void) -{ - return HC_notNilValue(); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m deleted file mode 100644 index cfbc879..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m +++ /dev/null @@ -1,32 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsNil.h" - -#import "HCIsNot.h" - - -@implementation HCIsNil - -- (BOOL)matches:(nullable id)item -{ - return item == nil; -} - -- (void)describeTo:(id )description -{ - [description appendText:@"nil"]; -} - -@end - - -id HC_nilValue() -{ - return [[HCIsNil alloc] init]; -} - -id HC_notNilValue() -{ - return HC_isNot([[HCIsNil alloc] init]); -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h deleted file mode 100644 index 556f077..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Is the value the same object as another value? - */ -@interface HCIsSame : HCBaseMatcher - -- (instancetype)initSameAs:(nullable id)object NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_sameInstance(_Nullable id expectedInstance); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches only when the examined object is the same instance as - * the specified target object. - * @param expectedInstance The expected instance. - * @discussion - * Example
- *
assertThat(delegate, sameInstance(expectedDelegate))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_sameInstance instead. - */ -static inline id sameInstance(_Nullable id expectedInstance) -{ - return HC_sameInstance(expectedInstance); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m deleted file mode 100644 index e584b2e..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsSame.h" - - -@interface HCIsSame () -@property (nonatomic, strong, readonly) id object; -@end - -@implementation HCIsSame - -- (instancetype)initSameAs:(nullable id)object -{ - self = [super init]; - if (self) - _object = object; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - return item == self.object; -} - -- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription -{ - [mismatchDescription appendText:@"was "]; - if (item) - [mismatchDescription appendText:[NSString stringWithFormat:@"%p ", (__bridge void *)item]]; - [mismatchDescription appendDescriptionOf:item]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:[NSString stringWithFormat:@"same instance as %p ", (__bridge void *)self.object]] - appendDescriptionOf:self.object]; -} - -@end - - -id HC_sameInstance(_Nullable id expectedInstance) -{ - return [[HCIsSame alloc] initSameAs:expectedInstance]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h deleted file mode 100644 index f9e1959..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h +++ /dev/null @@ -1,37 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Matches objects that are of a given class. - */ -@interface HCIsTypeOf : HCClassMatcher -@end - - -FOUNDATION_EXPORT id HC_isA(Class expectedClass); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is an instance of the specified - * class, but not of any subclass. - * @param expectedClass The class to compare against as the expected class. - * @discussion - * Example
- *
assertThat(canoe, isA([Canoe class]))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_isA instead. - */ -static inline id isA(Class expectedClass) -{ - return HC_isA(expectedClass); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m deleted file mode 100644 index 7447a10..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m +++ /dev/null @@ -1,25 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsTypeOf.h" - - -@implementation HCIsTypeOf - -- (BOOL)matches:(nullable id)item -{ - return [item isMemberOfClass:self.theClass]; -} - -- (NSString *)expectation -{ - return @"an exact instance of "; -} - -@end - - -id HC_isA(Class expectedClass) -{ - return [[HCIsTypeOf alloc] initWithClass:expectedClass]; -} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h deleted file mode 100644 index f9b39c5..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Does executing a block throw an exception which satisfies a nested matcher? - */ -@interface HCThrowsException : HCDiagnosingMatcher - -- (id)initWithExceptionMatcher:(id)exceptionMatcher NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_throwsException(id exceptionMatcher); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is a block which, when - * executed, throws an exception satisfying the specified matcher. - * @param exceptionMatcher The matcher to satisfy when passed the exception. - * @discussion - * Example
- *
assertThat(^{ [obj somethingBad]; }, throwsException(hasProperty(@"reason", @"EXPECTED REASON")))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_throwsException instead. - */ -static inline id throwsException(id exceptionMatcher) -{ - return HC_throwsException(exceptionMatcher); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m deleted file mode 100644 index 78f5ad0..0000000 --- a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m +++ /dev/null @@ -1,84 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCThrowsException.h" - - -static void HCRequireMatcher(id obj) -{ - if (![obj conformsToProtocol:@protocol(HCMatcher)]) - { - @throw [NSException exceptionWithName:@"NonMatcher" - reason:@"Must be matcher" - userInfo:nil]; - } -} - - -@interface HCThrowsException() -@property (nonatomic, strong, readonly) id exceptionMatcher; -@end - -@implementation HCThrowsException - -- (id)initWithExceptionMatcher:(id)exceptionMatcher -{ - HCRequireMatcher(exceptionMatcher); - - self = [super init]; - if (self) - _exceptionMatcher = exceptionMatcher; - return self; -} - -- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription -{ - if (![self isBlock:item]) - { - [[mismatchDescription appendText:@"was non-block "] appendDescriptionOf:item]; - return NO; - } - - typedef void (^HCThrowsExceptionBlock)(void); - HCThrowsExceptionBlock block = item; - @try - { - block(); - } - @catch (id exception) - { - BOOL match = [self.exceptionMatcher matches:exception]; - if (!match) - { - [mismatchDescription appendText:@"exception thrown but "]; - [self.exceptionMatcher describeMismatchOf:exception to:mismatchDescription]; - } - return match; - } - - [mismatchDescription appendText:@"no exception thrown"]; - return NO; -} - -- (BOOL)isBlock:(id)item -{ - id block = ^{}; - Class blockClass = [block class]; - while ([blockClass superclass] != [NSObject class]) - blockClass = [blockClass superclass]; - return [item isKindOfClass:blockClass]; -} - -- (void)describeTo:(id )description -{ - [[description appendText:@"a block with no arguments, throwing an exception which is "] - appendDescriptionOf:self.exceptionMatcher]; -} - -@end - - -id HC_throwsException(id exceptionMatcher) -{ - return [[HCThrowsException alloc] initWithExceptionMatcher:exceptionMatcher]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h deleted file mode 100644 index 65a3168..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h +++ /dev/null @@ -1,46 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests if a string is equal to another string, when whitespace differences are (mostly) ignored. - */ -@interface HCIsEqualCompressingWhiteSpace : HCBaseMatcher - -- (instancetype)initWithString:(NSString *)string NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_equalToCompressingWhiteSpace(NSString *expectedString); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSStrings that matches when the examined string is equal to the - * specified expected string, when whitespace differences are (mostly) ignored. - * @param expectedString The expected value of matched strings. (Must not be nil.) - * @discussion To be exact, the following whitespace rules are applied: - *
    - *
  • all leading and trailing whitespace of both the expectedString and the examined string are ignored
  • - *
  • any remaining whitespace, appearing within either string, is collapsed to a single space before comparison
  • - *
- * - * Example
- *
assertThat(\@"   my\tfoo  bar ", equalToCompressingWhiteSpace(\@" my  foo bar"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToCompressingWhiteSpace instead. - */ -static inline id equalToCompressingWhiteSpace(NSString *expectedString) -{ - return HC_equalToCompressingWhiteSpace(expectedString); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m deleted file mode 100644 index a1b52e0..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m +++ /dev/null @@ -1,62 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsEqualCompressingWhiteSpace.h" - -#import "HCRequireNonNilObject.h" - - -static NSString *stripSpaces(NSString *string) -{ - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\s+" - options:0 - error:NULL]; - NSString *modifiedString = [regex stringByReplacingMatchesInString:string - options:0 - range:NSMakeRange(0, string.length) - withTemplate:@" "]; - return [modifiedString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; -} - - -@interface HCIsEqualCompressingWhiteSpace () -@property (nonatomic, copy, readonly) NSString *originalString; -@property (nonatomic, copy, readonly) NSString *strippedString; -@end - -@implementation HCIsEqualCompressingWhiteSpace - -- (instancetype)initWithString:(NSString *)string -{ - HCRequireNonNilObject(string); - - self = [super init]; - if (self) - { - _originalString = [string copy]; - _strippedString = [stripSpaces(string) copy]; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (![item isKindOfClass:[NSString class]]) - return NO; - - return [self.strippedString isEqualToString:stripSpaces(item)]; -} - -- (void)describeTo:(id )description -{ - [[description appendDescriptionOf:self.originalString] - appendText:@" ignoring whitespace"]; -} - -@end - - -id HC_equalToCompressingWhiteSpace(NSString *expectedString) -{ - return [[HCIsEqualCompressingWhiteSpace alloc] initWithString:expectedString]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h deleted file mode 100644 index 59ff2e8..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h +++ /dev/null @@ -1,41 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests if a string is equal to another string, regardless of the case. - */ -@interface HCIsEqualIgnoringCase : HCBaseMatcher - -- (instancetype)initWithString:(NSString *)string NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_equalToIgnoringCase(NSString *expectedString); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher for NSStrings that matches when the examined string is equal to the - * specified expected string, ignoring case differences. - * @param expectedString The expected value of matched strings. (Must not be nil.) - * @discussion - * Example
- *
assertThat(\@"Foo", equalToIgnoringCase(\@"FOO"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToIgnoringCase instead. - */ -static inline id equalToIgnoringCase(NSString *expectedString) -{ - return HC_equalToIgnoringCase(expectedString); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m deleted file mode 100644 index 2bc380d..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m +++ /dev/null @@ -1,45 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCIsEqualIgnoringCase.h" - -#import "HCRequireNonNilObject.h" - - -@interface HCIsEqualIgnoringCase () -@property (nonatomic, copy, readonly) NSString *string; -@end - -@implementation HCIsEqualIgnoringCase - -- (instancetype)initWithString:(NSString *)string -{ - HCRequireNonNilObject(string); - - self = [super init]; - if (self) - _string = [string copy]; - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (![item isKindOfClass:[NSString class]]) - return NO; - - return [self.string caseInsensitiveCompare:item] == NSOrderedSame; -} - -- (void)describeTo:(id )description -{ - [[description appendDescriptionOf:self.string] - appendText:@" ignoring case"]; -} - -@end - - -id HC_equalToIgnoringCase(NSString *expectedString) -{ - return [[HCIsEqualIgnoringCase alloc] initWithString:expectedString]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h deleted file mode 100644 index a34f0ba..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h +++ /dev/null @@ -1,39 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests if string that contains a substring. - */ -@interface HCStringContains : HCSubstringMatcher -@end - - -FOUNDATION_EXPORT id HC_containsSubstring(NSString *substring); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is a string containing the - * specified substring anywhere. - * @param substring The string to search for. (Must not be nil.) - * @discussion The matcher invokes -rangeOfString: on the examined object, passing the - * specified substring and matching if it is found. - * - * Example
- *
assertThat(\@"myStringOfNote", containsSubstring(\@"ring"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_containsSubstring instead. - */ -static inline id containsSubstring(NSString *substring) -{ - return HC_containsSubstring(substring); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m deleted file mode 100644 index 8bc861b..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m +++ /dev/null @@ -1,28 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCStringContains.h" - - -@implementation HCStringContains - -- (BOOL)matches:(nullable id)item -{ - if (![item respondsToSelector:@selector(rangeOfString:)]) - return NO; - - return [item rangeOfString:self.substring].location != NSNotFound; -} - -- (NSString *)relationship -{ - return @"containing"; -} - -@end - - -id HC_containsSubstring(NSString *substring) -{ - return [[HCStringContains alloc] initWithSubstring:substring]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h deleted file mode 100644 index b8c8000..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h +++ /dev/null @@ -1,62 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests if string that contains a list of substrings in relative order. - */ -@interface HCStringContainsInOrder : HCBaseMatcher - -- (instancetype)initWithSubstrings:(NSArray *)substrings NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - - -FOUNDATION_EXPORT id HC_stringContainsInOrderIn(NSArray *substrings); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates matcher for NSStrings that matches when the examined string contains all of the - * specified substrings, considering the order of their appearance. - * @param substrings An array of strings. - * @discussion - * Example
- *
assertThat(\@"myfoobarbaz", stringContainsInOrderIn(\@[\@"bar", \@"foo"]))
- * fails as "foo" occurs before "bar" in the string "myfoobarbaz" - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_stringContainsInOrderIn instead. - */ -static inline id stringContainsInOrderIn(NSArray *substrings) -{ - return HC_stringContainsInOrderIn(substrings); -} -#endif - - -FOUNDATION_EXPORT id HC_stringContainsInOrder(NSString *substrings, ...) NS_REQUIRES_NIL_TERMINATION; - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates matcher for NSStrings that matches when the examined string contains all of the - * specified substrings, considering the order of their appearance. - * @param substrings... A comma-separated list of strings, ending with nil. - * @discussion - * Example
- *
assertThat(\@"myfoobarbaz", stringContainsInOrder(\@"bar", \@"foo", nil))
- * fails as "foo" occurs before "bar" in the string "myfoobarbaz" - * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_stringContainsInOrder instead. - */ -#define stringContainsInOrder(substrings...) HC_stringContainsInOrder(substrings) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m deleted file mode 100644 index 031adbe..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m +++ /dev/null @@ -1,78 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCStringContainsInOrder.h" - -#import "HCCollect.h" - - -static void requireElementsToBeStrings(NSArray *array) -{ - for (id element in array) - { - if (![element isKindOfClass:[NSString class]]) - { - @throw [NSException exceptionWithName:@"NotAString" - reason:@"Arguments must be strings" - userInfo:nil]; - } - } -} - - -@interface HCStringContainsInOrder () -@property (nonatomic, copy, readonly) NSArray *substrings; -@end - -@implementation HCStringContainsInOrder - -- (instancetype)initWithSubstrings:(NSArray *)substrings -{ - self = [super init]; - if (self) - { - requireElementsToBeStrings(substrings); - _substrings = [substrings copy]; - } - return self; -} - -- (BOOL)matches:(nullable id)item -{ - if (![item isKindOfClass:[NSString class]]) - return NO; - - NSRange searchRange = NSMakeRange(0, [item length]); - for (NSString *substring in self.substrings) - { - NSRange substringRange = [item rangeOfString:substring options:0 range:searchRange]; - if (substringRange.location == NSNotFound) - return NO; - searchRange.location = substringRange.location + substringRange.length; - searchRange.length = [item length] - searchRange.location; - } - return YES; -} - -- (void)describeTo:(id )description -{ - [description appendList:self.substrings start:@"a string containing " separator:@", " end:@" in order"]; -} - -@end - - -id HC_stringContainsInOrderIn(NSArray *substrings) -{ - return [[HCStringContainsInOrder alloc] initWithSubstrings:substrings]; -} - -id HC_stringContainsInOrder(NSString *substrings, ...) -{ - va_list args; - va_start(args, substrings); - NSArray *array = HCCollectItems(substrings, args); - va_end(args); - - return HC_stringContainsInOrderIn(array); -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h deleted file mode 100644 index 1e28aaf..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h +++ /dev/null @@ -1,40 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests if string ends with a substring. - */ -@interface HCStringEndsWith : HCSubstringMatcher -@end - - -FOUNDATION_EXPORT id HC_endsWith(NSString *suffix); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is a string that ends with the - * specified string. - * @param suffix The substring that the returned matcher will expect at the end of any examined - * string. (Must not be nil.) - * @discussion The matcher invokes -hasSuffix: on the examined object, passing the - * specified suffix. - * - * Example
- *
assertThat(\@"myStringOfNote", endsWith(\@"Note"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_endsWith instead. - */ -static inline id endsWith(NSString *suffix) -{ - return HC_endsWith(suffix); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m deleted file mode 100644 index aa5acfb..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m +++ /dev/null @@ -1,28 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCStringEndsWith.h" - - -@implementation HCStringEndsWith - -- (BOOL)matches:(nullable id)item -{ - if (![item respondsToSelector:@selector(hasSuffix:)]) - return NO; - - return [item hasSuffix:self.substring]; -} - -- (NSString *)relationship -{ - return @"ending with"; -} - -@end - - -id HC_endsWith(NSString *suffix) -{ - return [[HCStringEndsWith alloc] initWithSubstring:suffix]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h deleted file mode 100644 index 29a6914..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h +++ /dev/null @@ -1,40 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Tests string starts with a substring. - */ -@interface HCStringStartsWith : HCSubstringMatcher -@end - - -FOUNDATION_EXPORT id HC_startsWith(NSString *prefix); - -#ifndef HC_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates a matcher that matches when the examined object is a string that starts with - * the specified string. - * @param prefix The substring that the returned matcher will expect at the start of any examined - * string. (Must not be nil.) - * @discussion The matcher invokes -hasPrefix: on the examined object, passing the - * specified prefix. - * - * Example
- *
assertThat(\@"myStringOfNote", startsWith(\@"my"))
- * - * Name Clash
- * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_startsWith instead. - */ -static inline id startsWith(NSString *prefix) -{ - return HC_startsWith(prefix); -} -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m deleted file mode 100644 index 98e001e..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m +++ /dev/null @@ -1,28 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCStringStartsWith.h" - - -@implementation HCStringStartsWith - -- (BOOL)matches:(nullable id)item -{ - if (![item respondsToSelector:@selector(hasPrefix:)]) - return NO; - - return [item hasPrefix:self.substring]; -} - -- (NSString *)relationship -{ - return @"starting with"; -} - -@end - - -id HC_startsWith(NSString *prefix) -{ - return [[HCStringStartsWith alloc] initWithSubstring:prefix]; -} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h deleted file mode 100644 index d8abc70..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface HCSubstringMatcher : HCBaseMatcher - -@property (nonatomic, copy, readonly) NSString *substring; - -- (instancetype)initWithSubstring:(NSString *)substring NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m deleted file mode 100644 index 34653f4..0000000 --- a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m +++ /dev/null @@ -1,34 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import "HCSubstringMatcher.h" - -#import "HCRequireNonNilObject.h" - - -@interface HCSubstringMatcher (SubclassResponsibility) -- (NSString *)relationship; -@end - - -@implementation HCSubstringMatcher - -- (instancetype)initWithSubstring:(NSString *)substring -{ - HCRequireNonNilObject(substring); - - self = [super init]; - if (self) - _substring = [substring copy]; - return self; -} - -- (void)describeTo:(id )description -{ - [[[[description appendText:@"a string "] - appendText:[self relationship]] - appendText:@" "] - appendDescriptionOf:self.substring]; -} - -@end diff --git a/Pods/OCHamcrest/Source/OCHamcrest.h b/Pods/OCHamcrest/Source/OCHamcrest.h deleted file mode 100644 index 91bed59..0000000 --- a/Pods/OCHamcrest/Source/OCHamcrest.h +++ /dev/null @@ -1,59 +0,0 @@ -// OCHamcrest by Jon Reid, https://qualitycoding.org/ -// Copyright 2019 hamcrest.org. See LICENSE.txt - -#import - -FOUNDATION_EXPORT double OCHamcrestVersionNumber; -FOUNDATION_EXPORT const unsigned char OCHamcrestVersionString[]; - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -// Carthage workaround: Include transitive public headers -#import -#import -#import -#import -#import diff --git a/Pods/OCMockito/LICENSE.txt b/Pods/OCMockito/LICENSE.txt deleted file mode 100644 index bac00e2..0000000 --- a/Pods/OCMockito/LICENSE.txt +++ /dev/null @@ -1,35 +0,0 @@ -OCMockito by Jon Reid, https://qualitycoding.org/ -Copyright 2020 Quality Coding, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(MIT License) - ------ - -TPDWeakProxy: - -The MIT License (MIT) - -Copyright © 2013 Tetherpad - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/OCMockito/README.md b/Pods/OCMockito/README.md deleted file mode 100644 index 797dce4..0000000 --- a/Pods/OCMockito/README.md +++ /dev/null @@ -1,415 +0,0 @@ -![mockito](https://raw.githubusercontent.com/mockito/mockito.github.io/master/img/logo.png) - -[![Build Status](https://travis-ci.org/jonreid/OCMockito.svg?branch=master)](https://travis-ci.org/jonreid/OCMockito) -[![Coverage Status](https://coveralls.io/repos/jonreid/OCMockito/badge.svg?branch=master)](https://coveralls.io/r/jonreid/OCMockito?branch=master) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Cocoapods Version](https://cocoapod-badges.herokuapp.com/v/OCMockito/badge.png)](http://cocoapods.org/pods/OCMockito) -[![Twitter Follow](https://img.shields.io/twitter/follow/qcoding.svg?style=social)](https://twitter.com/qcoding) - - -OCMockito is an Objective-C implementation of Mockito, supporting creation, -verification and stubbing of mock objects. - -Key differences from other mocking frameworks: - -* Mock objects are always "nice," recording their calls instead of throwing - exceptions about unspecified invocations. This makes tests less fragile. - -* No expect-run-verify, making tests more readable. Mock objects record their - calls, then you verify the methods you want. - -* Verification failures are reported as unit test failures, identifying specific - lines instead of throwing exceptions. This makes it easier to identify - failures. - - -Let's verify some behavior! ---------------------------- - -```obj-c -// mock creation -NSMutableArray *mockArray = mock([NSMutableArray class]); - -// using mock object -[mockArray addObject:@"one"]; -[mockArray removeAllObjects]; - -// verification -[verify(mockArray) addObject:@"one"]; -[verify(mockArray) removeAllObjects]; -``` - -Once created, the mock will remember all interactions. Then you can selectively -verify whatever interactions you are interested in. - -(If Xcode complains about multiple methods with the same name, cast `verify` -to the mocked class.) - - -How about some stubbing? ------------------------- - -```obj-c -// mock creation -NSArray *mockArray = mock([NSArray class]); - -// stubbing -[given([mockArray objectAtIndex:0]) willReturn:@"first"]; -[given([mockArray objectAtIndex:1]) willThrow:[NSException exceptionWithName:@"name" - reason:@"reason" - userInfo:nil]]; - -// following prints "first" -NSLog(@"%@", [mockArray objectAtIndex:0]); - -// follows throws exception -NSLog(@"%@", [mockArray objectAtIndex:1]); - -// following prints "(null)" because objectAtIndex:999 was not stubbed -NSLog(@"%@", [mockArray objectAtIndex:999]); -``` - - -How do you mock a class object? -------------------------------- - -```obj-c -__strong Class mockStringClass = mockClass([NSString class]); -``` - -(In the iOS 64-bit runtime, Class objects aren't strong by default. Either make -it explicitly strong as shown above, or use `id` instead.) - - -How do you mock a protocol? ---------------------------- - -```obj-c -id delegate = mockProtocol(@protocol(MyDelegate)); -``` - -Or, if you don't want it to contain any optional methods: - -```obj-c -id delegate = mockProtocolWithoutOptionals(@protocol(MyDelegate)); -``` - - -How do you mock an object that also implements a protocol? ----------------------------------------------------------- - -```obj-c -UIViewController *controller = - mockObjectAndProtocol([UIViewController class], @protocol(CustomProtocol)); -``` - - -How do you stub methods that return primitives? ------------------------------------------------ - -To stub methods that return primitive scalars, box the scalars into NSValues: - -```obj-c -[given([mockArray count]) willReturn:@3]; -``` - - -How do you stub methods that return structs? --------------------------------------------- - -Use `willReturnStruct:objCType:` passing a pointer to your structure and its -type from the Objective-C `@encode()` compiler directive: - -```obj-c -SomeStruct aStruct = {...}; -[given([mockObject methodReturningStruct]) willReturnStruct:&aStruct - objCType:@encode(SomeStruct)]; -``` - - -How do you stub a property so that KVO works? ---------------------------------------------- - -Use `stubProperty(mock, property, stubbedValue)`. For example, say you have a -mock object named `mockEmployee`. It has a property `firstName`. You want to -stub it to return the value "FIRST-NAME": - -```obj-c -stubProperty(mockEmployee, firstName, @"FIRST-NAME"); -``` - -This stubs the `firstName` property, `valueForKey:` and `valueForKeyPath:`. - - -Argument matchers ------------------ - -OCMockito verifies argument values by testing for equality. But when extra -flexibility is required, you can specify - [OCHamcrest](https://github.com/hamcrest/OCHamcrest) matchers. - -```obj-c -// mock creation -NSMutableArray *mockArray = mock([NSMutableArray class]); - -// using mock object -[mockArray removeObject:@"This is a test"]; - -// verification -[verify(mockArray) removeObject:startsWith(@"This is")]; -``` - -OCHamcrest matchers can be specified as arguments for both verification and -stubbing. - -Typed arguments will issue a warning that the matcher is the wrong type. Just -cast the matcher to `id`. - - -How do you specify matchers for non-object arguments? ------------------------------------------------------ - -To stub a method that takes a non-object argument but specify a matcher, invoke -the method with a dummy argument, then call `-withMatcher:forArgument:` - -```obj-c -[[given([mockArray objectAtIndex:0]) withMatcher:anything() forArgument:0] - willReturn:@"foo"]; -``` - -This is particularly useful for ignoring `NSError **` parameters: pass in `NULL`, but override it with an `anything()` matcher. - -Use the shortcut `-withMatcher:` to specify a matcher for a single argument: - -```obj-c -[[given([mockArray objectAtIndex:0]) withMatcher:anything()] - willReturn:@"foo"]; -``` - -These methods are also available to specify matchers for verification. Just call -them after `verify(…)` but before the invocation you want to verify: - -```obj-c -[[verify(mockArray) withMatcher:greaterThan(@5])] removeObjectAtIndex:0]; -``` - - -Verifying exact number of invocations / at least x / never ----------------------------------------------------------- - -```obj-c -// using mock -[mockArray addObject:@"once"]; - -[mockArray addObject:@"twice"]; -[mockArray addObject:@"twice"]; - -// the following two verifications work exactly the same -[verify(mockArray) addObject:@"once"]; -[verifyCount(mockArray, times(1)) addObject:@"once"]; - -// verify exact number of invocations -[verifyCount(mockArray, times(2)) addObject:@"twice"]; -[verifyCount(mockArray, times(3)) addObject:@"three times"]; - -// verify using never(), which is an alias for times(0) -[verifyCount(mockArray, never()) addObject:@"never happened"]; - -// verify using atLeast()/atMost() -[verifyCount(mockArray, atLeastOnce()) addObject:@"at least once"]; -[verifyCount(mockArray, atLeast(2)) addObject:@"at least twice"]; -[verifyCount(mockArray, atMost(5)) addObject:@"at most five times"]; -``` - - -Capturing arguments for further assertions ------------------------------------------- - -OCMockito verifies argument values using OCHamcrest matchers; non-matcher -arguments are implicitly wrapped in the `equalTo` matcher to test for equality. -In some situations though, it's helpful to capture an argument so you can send -it another message. - -OCHamcrest provides a special matcher for this purpose: HCArgumentCaptor. -Specify it as an argument, then query it with either the `value` or `allValues` -properties. - -For example, you may want to send the captured argument a message to query its -state: - -```obj-c -HCArgumentCaptor *argument = [[HCArgumentCaptor alloc] init]; -[verify(mockObject) doSomething:(id)argument]; -assertThat([argument.value nameAtIndex:0], is(@"Jon")); -``` - -Capturing arguments is especially handy for block arguments. Capture the -argument, cast it to the block type, then invoke the block directly to simulate -the ways it will be called by production code: - -```obj-c -HCArgumentCaptor *argument = [[HCArgumentCaptor alloc] init]; -[verify(mockArray) sortUsingComparator:(id)argument]; -NSComparator block = argument.value; -assertThat(@(block(@"a", @"z")), is(@(NSOrderedAscending))); -``` - - -Stubbing consecutive calls --------------------------- - -```obj-c -[[given([mockObject someMethod:@"some arg"]) - willThrow:[NSException exceptionWithName:@"name" reason:@"reason" userInfo:nil]] - willReturn:@"foo"]; - -// First call: throws exception -[mockObject someMethod:@"some arg"]; - -// Second call: prints "foo" -NSLog(@"%@", [mockObject someMethod:@"some arg"]); - -// Any consecutive call: prints "foo" as well. (Last stubbing wins.) -NSLog(@"%@", [mockObject someMethod:@"some arg"]); -``` - - -Stubbing with blocks --------------------- - -We recommend using simple stubbing with `willReturn:` or `willThrow:` only. But -`willDo:` using a block can sometimes be helpful. The block can easily access -invocation arguments by calling `mkt_arguments` from NSInvocation+OCMockito.h. -Whatever the block returns will be used as the stubbed return value. - -```obj-c -[given([mockObject someMethod:anything()]) willDo:^id (NSInvocation *invocation){ - NSArray *args = [invocation mkt_arguments]; - return @([args[0] intValue] * 2); -}]; - -// Following prints 4 -NSLog(@"%@", [mockObject someMethod:@2]); -``` - -You can stub a void method with a block by using `givenVoid` instead of `given`. - - -Problems with dealloc ---------------------- - -Use `stopMocking(…)` if a `-dealloc` of your System Under Test is trying to -message an object that is mocked. It disables message handling on the mock and -frees its retained arguments. This prevents retain cycles and crashes during -test clean-up. See StopMockingTests.m for an example. - - -How do you mock a singleton? ----------------------------- - -The short answer is: Don't. Instead of your class deciding who it's going to -talk to, inject those dependencies. - -The longer answer is: Well. Legacy code. Call `stubSingleton` on a mock class -object, specifying the name of the factory method. - -```obj-c -__strong Class mockUserDefaultsClass = mockClass([NSUserDefaults class]); -NSUserDefaults* mockDefaults = mock([NSUserDefaults class]); - -stubSingleton(mockUserDefaultsClass, standardUserDefaults); -[given([NSUserDefaults standardUserDefaults]) willReturn:mockDefaults]; -``` - -Beware! This uses swizzling. You need to make sure the mock class object gets -deallocated so that the swizzling is undone. - -In the example above, `mockUserDefaultsClass` will go out scope and be -destroyed. But what if you kept it in the test fixture, as an ivar or a -property? According to XCTest's design, it won't be implicitly destroyed. -You need to explicitly set it to nil in `-tearDown`, or the swizzling will -bleed over to your other tests, compromising their integrity. - -If you need more control over when the swizzling is undone, call -`stopMocking(…)` on the mock class. - - -How do I add OCMockito to my project? -------------------------------------- - -The Examples folder shows projects using OCMockito either through CocoaPods or -through the prebuilt frameworks, for iOS and macOS development. - -### CocoaPods - -If you want to add OCMockito using Cocoapods then add the following dependency -to your Podfile. Most people will want OCMockito in their test targets, and not -include any pods from their main targets: - -```ruby -target 'MyTests' do - inherit! :search_paths - use_frameworks! - pod 'OCMockito', '~> 5.0' -end -``` - -Use the following imports: - - @import OCHamcrest; - @import OCMockito; - -### Carthage - -Add the following to your Cartfile: - -``` -github "jonreid/OCMockito" ~> 5.0 -``` - -Then drag the the built frameworks (both OCHamcrest and OCMockito) from the -appropriate Carthage/Build directory into your project, but with "Copy items -into destination group's folder" disabled. - -### Prebuilt Frameworks - -Prebuilt binaries are available on GitHub for -[OCMockito](https://github.com/jonreid/OCMockito/releases/). You will also need -[OCHamcrest](https://github.com/hamcrest/OCHamcrest/releases/). -The binaries are packaged as frameworks: - -* __OCMockitoIOS.framework__ for iOS development -* __OCMockito.framework__ for macOS development - -OCHamcrest comes in a similar scheme. Drag the appropriate frameworks for both -both OCMockito and OCHamcrest into your project, specifying "Copy items into -destination group's folder". Then specify `-ObjC` in your "Other Linker Flags". - -#### iOS Development: - -Use the following imports: - - @import OCHamcrestIOS; - @import OCMockitoIOS; - - -#### macOS Development: - -Add a "Copy Files" build phase to copy OCMockito.framework and -OCHamcrest.framework to your Products Directory. - -Use the following imports: - - @import OCHamcrest; - @import OCMockito; - - -### Build Your Own - -If you want to build OCMockito yourself, clone the repo, then - -```sh -$ Frameworks/gethamcrest -$ cd Source -$ ./MakeDistribution.sh -``` diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.h b/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.h deleted file mode 100644 index 281e764..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.h +++ /dev/null @@ -1,35 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -#import "MKTTestLocation.h" - -@class MKTInvocationMatcher; -@class MKTOngoingStubbing; -@protocol HCMatcher; -@protocol MKTVerificationMode; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTMockingProgress : NSObject - -@property (nonatomic, assign, readonly) MKTTestLocation testLocation; - -+ (instancetype)sharedProgress; -- (void)reset; - -- (void)stubbingStartedAtLocation:(MKTTestLocation)location; -- (void)reportOngoingStubbing:(MKTOngoingStubbing *)ongoingStubbing; -- (MKTOngoingStubbing *)pullOngoingStubbing; - -- (void)verificationStarted:(id )mode atLocation:(MKTTestLocation)location; -- (id )pullVerificationMode; - -- (void)setMatcher:(id )matcher forArgument:(NSUInteger)index; -- (MKTInvocationMatcher *)pullInvocationMatcher; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.m b/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.m deleted file mode 100644 index f7edc48..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTMockingProgress.m +++ /dev/null @@ -1,87 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTMockingProgress.h" - -#import "MKTInvocationMatcher.h" -#import "MKTOngoingStubbing.h" -#import "MKTVerificationMode.h" - - -@interface MKTMockingProgress () -@property (nonatomic, assign, readwrite) MKTTestLocation testLocation; -@property (nonatomic, strong) MKTInvocationMatcher *invocationMatcher; -@property (nonatomic, strong) id verificationMode; -@property (nonatomic, strong) MKTOngoingStubbing *ongoingStubbing; -@end - -@implementation MKTMockingProgress - -+ (instancetype)sharedProgress -{ - static id sharedProgress = nil; - if (!sharedProgress) - sharedProgress = [[self alloc] init]; - return sharedProgress; -} - -- (void)reset -{ - self.invocationMatcher = nil; - self.verificationMode = nil; - self.ongoingStubbing = nil; -} - -- (void)stubbingStartedAtLocation:(MKTTestLocation)location -{ - [self setTestLocation:location]; -} - -- (void)reportOngoingStubbing:(MKTOngoingStubbing *)ongoingStubbing -{ - self.ongoingStubbing = ongoingStubbing; -} - -- (MKTOngoingStubbing *)pullOngoingStubbing -{ - MKTOngoingStubbing *result = self.ongoingStubbing; - self.ongoingStubbing = nil; - return result; -} - -- (void)verificationStarted:(id )mode atLocation:(MKTTestLocation)location -{ - self.verificationMode = mode; - [self setTestLocation:location]; -} - -- (id )pullVerificationMode -{ - id result = self.verificationMode; - self.verificationMode = nil; - return result; -} - -- (void)setMatcher:(id )matcher forArgument:(NSUInteger)index -{ - if (!self.invocationMatcher) - self.invocationMatcher = [[MKTInvocationMatcher alloc] init]; - [self.invocationMatcher setMatcher:matcher atIndex:index]; -} - -- (MKTInvocationMatcher *)pullInvocationMatcher -{ - MKTInvocationMatcher *result = self.invocationMatcher; - self.invocationMatcher = nil; - return result; -} - -- (void)setOngoingStubbing:(MKTOngoingStubbing *)ongoingStubbing -{ - @synchronized (self) - { - _ongoingStubbing = ongoingStubbing; - } -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.h b/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.h deleted file mode 100644 index 8af043e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.h +++ /dev/null @@ -1,27 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -#import "MKTTestLocation.h" - -@class MKTObjectMock; -@class MKTOngoingStubbing; -@protocol MKTVerificationMode; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTMockitoCore : NSObject - -+ (instancetype)sharedCore; - -- (MKTOngoingStubbing *)stubAtLocation:(MKTTestLocation)location; - -- (id)verifyMock:(MKTObjectMock *)mock - withMode:(id )mode - atLocation:(MKTTestLocation)location; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.m b/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.m deleted file mode 100644 index 1491402..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTMockitoCore.m +++ /dev/null @@ -1,51 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTMockitoCore.h" - -#import "MKTMockingProgress.h" -#import "MKTVerificationMode.h" - - -@interface MKTMockitoCore () -@property (nonatomic, strong, readonly) MKTMockingProgress *mockingProgress; -@end - -@implementation MKTMockitoCore - -+ (instancetype)sharedCore -{ - static id sharedCore = nil; - if (!sharedCore) - sharedCore = [[self alloc] init]; - return sharedCore; -} - -- (instancetype)init -{ - self = [super init]; - if (self) - _mockingProgress = [MKTMockingProgress sharedProgress]; - return self; -} - -- (MKTOngoingStubbing *)stubAtLocation:(MKTTestLocation)location -{ - [self.mockingProgress stubbingStartedAtLocation:location]; - return [self stub]; -} - -- (MKTOngoingStubbing *)stub -{ - return [self.mockingProgress pullOngoingStubbing]; -} - -- (id)verifyMock:(MKTObjectMock *)mock - withMode:(id )mode - atLocation:(MKTTestLocation)location -{ - [self.mockingProgress verificationStarted:mode atLocation:location]; - return mock; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTNonObjectArgumentMatching.h b/Pods/OCMockito/Source/OCMockito/Core/MKTNonObjectArgumentMatching.h deleted file mode 100644 index 8f515cf..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTNonObjectArgumentMatching.h +++ /dev/null @@ -1,44 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -@protocol HCMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Ability to specify OCHamcrest matchers for non-object arguments. - */ -@protocol MKTNonObjectArgumentMatching - -/*! - * @abstract Specifies OCHamcrest matcher for a specific argument of a method. - * @discussion For methods arguments that take objects, just pass the matcher directly as a method - * call. But for arguments that take non-objects, pass in a dummy value to satisfy the compiler, but - * call this to override it with the given matcher. Upon verification, the actual argument received - * will be converted to an object before being checked by the matcher. - * - * The argument index is 0-based, so the first argument of a method has index 0. - * - * Examples: - *
[[given([mockFetchedResultsController performFetch:NULL]) withMatcher:anything()] willReturn:\@YES];
- * This stubs performFetch: to return YES for any NSError ** argument. - * - *
[[verify(mockArray) withMatcher:greaterThan(@5]) forArgument:0] removeObjectAtIndex:0];
- * This verifies that removeObjectAtIndex: was called with an index greater than 5. - */ -- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index; - -/*! - * @abstract Specifies OCHamcrest matcher for the first argument of a method. - * @discussion Equivalent to withMatcher:matcher forArgument:0. - * - * Example: - *
[[verify(mockArray) withMatcher:greaterThan(\@5)] removeObjectAtIndex:0];
- * This verifies that removeObjectAtIndex: was called with an index greater than 5. -*/ -- (id)withMatcher:(id )matcher; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.h b/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.h deleted file mode 100644 index 57195e3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.h +++ /dev/null @@ -1,29 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -typedef struct -{ - __unsafe_unretained id testCase; - const char *fileName; - int lineNumber; -} MKTTestLocation; - - -static inline MKTTestLocation MKTTestLocationMake(id test, const char *file, int line) -{ - MKTTestLocation location; - location.testCase = test; - location.fileName = file; - location.lineNumber = line; - return location; -} - -void MKTFailTest(id testCase, const char *fileName, int lineNumber, NSString *description); -void MKTFailTestLocation(MKTTestLocation testLocation, NSString *description); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.m b/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.m deleted file mode 100644 index 4c0b8c5..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/MKTTestLocation.m +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTTestLocation.h" - -#import -#import -#import - -void MKTFailTest(id testCase, const char *fileName, int lineNumber, NSString *description) -{ - HCTestFailure *failure = [[HCTestFailure alloc] initWithTestCase:testCase - fileName:[NSString stringWithUTF8String:fileName] - lineNumber:(NSUInteger)lineNumber - reason:description]; - HCTestFailureReporter *failureReporter = [HCTestFailureReporterChain reporterChain]; - [failureReporter handleFailure:failure]; -} - -void MKTFailTestLocation(MKTTestLocation testLocation, NSString *description) -{ - MKTFailTest(testLocation.testCase, testLocation.fileName, testLocation.lineNumber, description); -} diff --git a/Pods/OCMockito/Source/OCMockito/Core/OCMockito.h b/Pods/OCMockito/Source/OCMockito/Core/OCMockito.h deleted file mode 100644 index e9bea65..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/OCMockito.h +++ /dev/null @@ -1,402 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -FOUNDATION_EXPORT double OCMockitoVersionNumber; -FOUNDATION_EXPORT const unsigned char OCMockitoVersionString[]; - -#import -#import - -// Explicitly import transitive headers for complete "umbrella header" -#import -#import -#import -#import -#import - -@protocol MKTVerificationMode; - - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXPORT id MKTMock(Class classToMock); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates mock object of given class. - * @param classToMock The class for which to mock instance methods. - * @discussion The mock object will handle all instance methods of classToMock. Methods - * return 0 by default.
- * Use given to stub different return values or behaviors.
- * Use givenVoid to stub behaviors of void methods. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTMock instead. - */ -static inline id mock(Class classToMock) -{ - return MKTMock(classToMock); -} -#endif - - -FOUNDATION_EXPORT id MKTMockClass(Class classToMock); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates mock class object of given class. - * @param classToMock The class for which to mock class methods. - * @discussion The mock object will handle all class methods of classToMock. Methods - * return 0 by default.
- * Use given to stub different return values or behaviors.
- * Use givenVoid to stub behaviors of void methods. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTMockClass instead. - */ -static inline id mockClass(Class classToMock) -{ - return MKTMockClass(classToMock); -} -#endif - - -FOUNDATION_EXPORT id MKTMockProtocol(Protocol *protocolToMock); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates mock object of given protocol. - * @param protocolToMock The protocol to mock. - * @discussion The mock object will handle all methods of protocolToMock. Methods - * return 0 by default.
- * Use given to stub different return values or behaviors.
- * Use givenVoid to stub behaviors of void methods. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTMockProtocol instead. - */ -static inline id mockProtocol(Protocol *protocolToMock) -{ - return MKTMockProtocol(protocolToMock); -} -#endif - - -FOUNDATION_EXPORT id MKTMockProtocolWithoutOptionals(Protocol *protocolToMock); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates mock object of given protocol, but without optional methods. - * @param protocolToMock The protocol to mock. - * @discussion The mock object will handle only required methods of protocolToMock. It - * will not respond to the protocol's optional methods. Methods return 0 by default.
- * Use given to stub different return values or behaviors.
- * Use givenVoid to stub behaviors of void methods. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTMockProtocolWithoutOptionals instead. -*/ -static inline id mockProtocolWithoutOptionals(Protocol *protocolToMock) -{ - return MKTMockProtocolWithoutOptionals(protocolToMock); -} -#endif - - -FOUNDATION_EXPORT id MKTMockObjectAndProtocol(Class classToMock, Protocol *protocolToMock); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates mock object of given class that also implements given protocol. - * @param classToMock The class to mock. - * @param protocolToMock The protocol to mock. - * @discussion The mock object will handle all instance methods of classToMock, along - * with all methods of protocolToMock. Methods return 0 by default.
- * Use given to stub different return values or behaviors.
- * Use givenVoid to stub behaviors of void methods. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTMockObjectAndProtocol instead. - */ -static inline id mockObjectAndProtocol(Class classToMock, Protocol *protocolToMock) -{ - return MKTMockObjectAndProtocol(classToMock, protocolToMock); -} -#endif - - -FOUNDATION_EXPORT MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...); -#define MKTGiven(methodCall) MKTGivenWithLocation(self, __FILE__, __LINE__, methodCall) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Stubs a method call. - * @discussion Creates an MKTOngoingStubbing used for any matching method calls. Call - * MKTOngoingStubbing methods to define the stub's return value or behavior. - * - * Method arguments are matched with specified OCHamcrest matchers. Any argument that is not a - * matcher is implicitly wrapped in equalTo to match for equality. - * - * Example: - *
[given([mockObject transform:\@"FOO"]) willReturn:\@"BAR"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTGiven instead. - */ -#define given(methodCall) MKTGiven(methodCall) -#endif - - -FOUNDATION_EXPORT MKTOngoingStubbing *MKTGivenVoidWithLocation(id testCase, const char *fileName, int lineNumber, void(^methodCallWrapper)(void)); -#define MKTGivenVoid(methodCall) MKTGivenVoidWithLocation(self, __FILE__, __LINE__, ^{ methodCall; }) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Stubs a call to a void method. - * @discussion Creates an MKTOngoingStubbing used for any matching method calls. Call - * MKTOngoingStubbing methods to define the stub's behavior. - * - * Method arguments are matched with specified OCHamcrest matchers. Any argument that is not a - * matcher is implicitly wrapped in equalTo to match for equality. - * - * Example: - *
[givenVoid([mockObject methodReturningVoid]) willDo:^id(NSInvocation *invocation) { magic(); return nil; }];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTGiven instead. - */ -#define givenVoid(methodCall) MKTGivenVoid(methodCall) -#endif - - -#define MKTStubProperty(mock, propertyName, stubbedValue) \ - do { \ - [MKTGiven([mock propertyName]) willReturn:stubbedValue]; \ - [MKTGiven([mock valueForKey:@#propertyName]) willReturn:stubbedValue]; \ - [MKTGiven([mock valueForKeyPath:@#propertyName]) willReturn:stubbedValue]; \ - } while(0) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Stubs a property and its related KVO methods to return a given value. - * @discussion - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTStubProperty instead. - */ -#define stubProperty(mock, propertyName, stubbedValue) MKTStubProperty(mock, propertyName, stubbedValue) -#endif - - -FOUNDATION_EXPORT void MKTStubSingletonWithLocation(id mockClass, SEL aSelector, id testCase, const char *fileName, int lineNumber); -#define MKTStubSingleton(mockClass, methodName) MKTStubSingletonWithLocation(mockClass, @selector(methodName), self, __FILE__, __LINE__) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Stubs a singleton to the mock class object. - * @discussion - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTStubSingleton instead. - */ -#define stubSingleton(mockClass, methodName) MKTStubSingleton(mockClass, methodName) -#endif - - -FOUNDATION_EXPORT _Nullable id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber); -#define MKTVerify(mock) MKTVerifyWithLocation(mock, self, __FILE__, __LINE__) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -#undef verify -/*! - * @abstract Verifies certain behavior happened once. - * @discussion Equivalent to verifyCount(mock, times(1)). - * - * Method arguments are matched with specified OCHamcrest matchers. Any argument that is - * not a matcher is implicitly wrapped in equalTo to match for equality. - * - * Examples: - *
[verify(mockObject) someMethod:startsWith(\@"foo")];
- *
[verify(mockObject) someMethod:\@"bar"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTVerify instead. - */ -#define verify(mock) MKTVerify(mock) -#endif - - -FOUNDATION_EXPORT id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber); -#define MKTVerifyCount(mock, mode) MKTVerifyCountWithLocation(mock, mode, self, __FILE__, __LINE__) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Verifies certain behavior happened a given number of times. - * @discussion Method arguments are matched with specified OCHamcrest matchers. Any argument that is - * not a matcher is implicitly wrapped in equalTo to match for equality. - * Examples: - *
[verifyCount(mockObject, times(5)) someMethod:\@"was called five times"];
- *
[verifyCount(mockObject, never()) someMethod:\@"was never called"];
- * verifyCount checks that a method was invoked the given number of times, with arguments that - * match given OCHamcrest matchers. If an argument is not a matcher, it is implicitly wrapped in an - * equalTo matcher to check for equality. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTVerifyCount instead. - */ -#define verifyCount(mock, mode) MKTVerifyCount(mock, mode) -#endif - - -FOUNDATION_EXPORT id MKTTimes(NSUInteger wantedNumberOfInvocations); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates verifyCount mode verifying an exact number of invocations. - * @discussion Example: - *
[verifyCount(mockObject, times(2)) someMethod:\@"some arg"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTTimes instead. - */ -static inline id times(NSUInteger wantedNumberOfInvocations) -{ - return MKTTimes(wantedNumberOfInvocations); -} -#endif - - -FOUNDATION_EXPORT id MKTNever(void); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates verifyCount mode verifying that an interaction did not happen. - * @discussion Example: - *
[verifyCount(mockObject, never()) someMethod:\@"some arg"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTNever instead. - */ -static inline id never(void) -{ - return MKTNever(); -} -#endif - - -FOUNDATION_EXPORT id MKTAtLeast(NSUInteger minNumberOfInvocations); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates verifyCount mode verifying that an interaction happened at least - * the given number of times. - * @discussion - * Example: - *
[verifyCount(mockObject, atLeast(2)) someMethod:\@"some arg"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTAtLeast instead. - */ -static inline id atLeast(NSUInteger minNumberOfInvocations) -{ - return MKTAtLeast(minNumberOfInvocations); -} -#endif - - -FOUNDATION_EXPORT id MKTAtLeastOnce(void); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates verifyCount mode verifying that an interaction happened at least - * once. - * @discussion Same as atLeast(1). - * - * Example: - *
[verifyCount(mockObject, atLeastOnce()) someMethod:\@"some arg"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTAtLeastOnce instead. - */ -static inline id atLeastOnce(void) -{ - return MKTAtLeastOnce(); -} -#endif - - -FOUNDATION_EXPORT id MKTAtMost(NSUInteger maxNumberOfInvocations); - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Creates verifyCount mode verifying that an interaction happened at most - * the given number of times. - * @discussion - * Example: - *
[verifyCount(mockObject, atMost(2)) someMethod:\@"some arg"];
- * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTAtLeast instead. - */ -static inline id atMost(NSUInteger maxNumberOfInvocations) -{ - return MKTAtMost(maxNumberOfInvocations); -} -#endif - - -FOUNDATION_EXPORT void MKTDisableMockingWithLocation(id mock, id testCase, const char *fileName, int lineNumber); -#define MKTDisableMocking(mock) MKTDisableMockingWithLocation(mock, self, __FILE__, __LINE__) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Disables mocking, preventing any more invocations from being handled. - * @discussion There are cases where calling stopMocking() on a mock can release code under test - * that was being retained. If that code under test's dealloc method then references another mock - * that has not yet been stopped, it will create a strong reference to an object that is in the - * process of being deallocated, resulting in an over-release at a later date. A solution to this is - * to call disableMocking() on all mocks before calling stopMocking(). This allows a test to call - * stopMocking on all of its mocks without having to worry about which order to call them. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTDisableMocking instead. - */ -#define disableMocking(mock) MKTDisableMocking(mock) -#endif - - -FOUNDATION_EXPORT void MKTStopMockingWithLocation(id mock, id testCase, const char *fileName, int lineNumber); -#define MKTStopMocking(mock) MKTStopMockingWithLocation(mock, self, __FILE__, __LINE__) - -#ifndef MKT_DISABLE_SHORT_SYNTAX -/*! - * @abstract Stops mocking and releases arguments. - * @discussion Mock objects normally retain all message arguments. This is not a problem for most - * tests, but can sometimes cause retain cycles. In such cases, call stopMocking to tell the mock - * to release its arguments, and to stop accepting messages. See StopMockingTests.m for an example. - * - * Name Clash
- * In the event of a name clash, #define MKT_DISABLE_SHORT_SYNTAX and use the synonym - * MKTStopMocking instead. - */ -#define stopMocking(mock) MKTStopMocking(mock) -#endif - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Core/OCMockito.m b/Pods/OCMockito/Source/OCMockito/Core/OCMockito.m deleted file mode 100644 index d662fb0..0000000 --- a/Pods/OCMockito/Source/OCMockito/Core/OCMockito.m +++ /dev/null @@ -1,148 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "OCMockito.h" - -#import "MKTAtLeastTimes.h" -#import "MKTAtMostTimes.h" -#import "MKTExactTimes.h" -#import "MKTMockitoCore.h" - - -static NSString *actualTypeName(id mock) -{ - NSString *className = NSStringFromClass([mock class]); - if (!className) - return @"nil"; - return [@"type " stringByAppendingString:className]; -} - -static BOOL reportedInvalidMock(id mock, id testCase, const char *fileName, int lineNumber, NSString *functionName) -{ - if ([MKTBaseMockObject isMockObject:mock]) - return NO; - NSString *description = [NSString stringWithFormat: - @"Argument passed to %@ should be a mock, but was %@", - functionName, actualTypeName(mock)]; - MKTFailTest(testCase, fileName, lineNumber, description); - return YES; -} - -static BOOL reportedInvalidClassMock(id classMock, id testCase, const char *fileName, int lineNumber, NSString *functionName) -{ - NSString *className = NSStringFromClass([classMock class]); - if ([className isEqualToString:@"MKTClassObjectMock"]) - return NO; - NSString *description = [NSString stringWithFormat: - @"Argument passed to %@ should be a class mock, but was %@", - functionName, actualTypeName(classMock)]; - MKTFailTest(testCase, fileName, lineNumber, description); - return YES; -} - -static BOOL reportedInvalidClassMethod(MKTClassObjectMock *theMock, SEL aSelector, id testCase, const char *fileName, int lineNumber, NSString *functionName) -{ - if ([theMock respondsToSelector:aSelector]) - return NO; - NSString *description = [NSString stringWithFormat: - @"Method name passed to %@ should be a class method of %@, but was %@", - functionName, theMock.mockedClass, NSStringFromSelector(aSelector)]; - MKTFailTest(testCase, fileName, lineNumber, description); - return YES; -} - -id MKTMock(Class classToMock) -{ - return [[MKTObjectMock alloc] initWithClass:classToMock]; -} - -id MKTMockClass(Class classToMock) -{ - return [[MKTClassObjectMock alloc] initWithClass:classToMock]; -} - -id MKTMockProtocol(Protocol *protocolToMock) -{ - return [[MKTProtocolMock alloc] initWithProtocol:protocolToMock includeOptionalMethods:YES]; -} - -id MKTMockProtocolWithoutOptionals(Protocol *protocolToMock) -{ - return [[MKTProtocolMock alloc] initWithProtocol:protocolToMock includeOptionalMethods:NO]; -} - -id MKTMockObjectAndProtocol(Class classToMock, Protocol *protocolToMock) -{ - return [[MKTObjectAndProtocolMock alloc] initWithClass:classToMock protocol:protocolToMock]; -} - -MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...) -{ - return [[MKTMockitoCore sharedCore] stubAtLocation:MKTTestLocationMake(testCase, fileName, lineNumber)]; -} - -MKTOngoingStubbing *MKTGivenVoidWithLocation(id testCase, const char *fileName, int lineNumber, void(^methodCallWrapper)(void)) -{ - methodCallWrapper(); - return [[MKTMockitoCore sharedCore] stubAtLocation:MKTTestLocationMake(testCase, fileName, lineNumber)]; -} - -void MKTStubSingletonWithLocation(id mockClass, SEL aSelector, id testCase, const char *fileName, int lineNumber) -{ - if (reportedInvalidClassMock(mockClass, testCase, fileName, lineNumber, @"stubSingleton()")) - return; - MKTClassObjectMock *theMock = (MKTClassObjectMock *)mockClass; - if (reportedInvalidClassMethod(theMock, aSelector, testCase, fileName, lineNumber, @"stubSingleton()")) - return; - [theMock swizzleSingletonAtSelector:aSelector]; -} - -_Nullable id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber) -{ - if (reportedInvalidMock(mock, testCase, fileName, lineNumber, @"verify()")) - return nil; - - return MKTVerifyCountWithLocation(mock, MKTTimes(1), testCase, fileName, lineNumber); -} - -id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber) -{ - if (reportedInvalidMock(mock, testCase, fileName, lineNumber, @"verifyCount()")) - return nil; - - return [[MKTMockitoCore sharedCore] verifyMock:mock - withMode:mode - atLocation:MKTTestLocationMake(testCase, fileName, lineNumber)]; -} - -id MKTTimes(NSUInteger wantedNumberOfInvocations) -{ - return [[MKTExactTimes alloc] initWithCount:wantedNumberOfInvocations]; -} - -id MKTNever() -{ - return MKTTimes(0); -} - -id MKTAtLeast(NSUInteger minNumberOfInvocations) -{ - return [[MKTAtLeastTimes alloc] initWithMinimumCount:minNumberOfInvocations]; -} - -id MKTAtLeastOnce() -{ - return MKTAtLeast(1); -} - -id MKTAtMost(NSUInteger maxNumberOfInvocations) -{ - return [[MKTAtMostTimes alloc] initWithMaximumCount:maxNumberOfInvocations]; -} - -void MKTStopMockingWithLocation(id mock, id testCase, const char *fileName, int lineNumber) -{ - if (reportedInvalidMock(mock, testCase, fileName, lineNumber, @"stopMocking()")) - return; - [mock stopMocking]; -} diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.h deleted file mode 100644 index f57dff6..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.h +++ /dev/null @@ -1,29 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Chain-of-responsibility for converting NSInvocation argument to object. - */ -@interface MKTArgumentGetter : NSObject - -/*! - * @abstract Initializes a newly allocated argument getter. - * @param handlerType Argument type managed by this getter. Assign with \@encode compiler directive. - * @param successor Successor in chain to handle argument type. - */ -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -/*! - * @abstract Retrieve designated argument of specified type from NSInvocation, or pass to successor. - */ -- (nullable id)retrieveArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.m deleted file mode 100644 index a602dc8..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.m +++ /dev/null @@ -1,42 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -@interface MKTArgumentGetter (SubclassResponsibility) -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation; -@end - -@interface MKTArgumentGetter () -@property (nonatomic, assign, readonly) char const *handlerType; -@property (nullable, nonatomic, strong, readonly) MKTArgumentGetter *successor; -@end - -@implementation MKTArgumentGetter - -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor -{ - self = [super init]; - if (self) - { - _handlerType = handlerType; - _successor = successor; - } - return self; -} - -- (BOOL)handlesArgumentType:(char const *)argType -{ - return argType[0] == self.handlerType[0]; -} - -- (nullable id)retrieveArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - if ([self handlesArgumentType:type]) - return [self getArgumentAtIndex:idx ofType:type onInvocation:invocation]; - - return [self.successor retrieveArgumentAtIndex:idx ofType:type onInvocation:invocation]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.h deleted file mode 100644 index 1ddc7a1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTArgumentGetter; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Returns chain of argument getters. - */ -FOUNDATION_EXPORT MKTArgumentGetter *MKTArgumentGetterChain(void); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.m deleted file mode 100644 index 7253d86..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.m +++ /dev/null @@ -1,52 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetterChain.h" - -#import "MKTObjectArgumentGetter.h" -#import "MKTSelectorArgumentGetter.h" -#import "MKTClassArgumentGetter.h" -#import "MKTCharArgumentGetter.h" -#import "MKTBoolArgumentGetter.h" -#import "MKTIntArgumentGetter.h" -#import "MKTShortArgumentGetter.h" -#import "MKTLongArgumentGetter.h" -#import "MKTLongLongArgumentGetter.h" -#import "MKTUnsignedCharArgumentGetter.h" -#import "MKTUnsignedIntArgumentGetter.h" -#import "MKTUnsignedShortArgumentGetter.h" -#import "MKTUnsignedLongArgumentGetter.h" -#import "MKTUnsignedLongLongArgumentGetter.h" -#import "MKTFloatArgumentGetter.h" -#import "MKTDoubleArgumentGetter.h" -#import "MKTPointerArgumentGetter.h" -#import "MKTStructArgumentGetter.h" - - -MKTArgumentGetter *MKTArgumentGetterChain(void) -{ - static MKTArgumentGetter *chain = nil; - if (!chain) - { - MKTArgumentGetter *structGetter = [[MKTStructArgumentGetter alloc] initWithSuccessor:nil]; - MKTArgumentGetter *pointerGetter = [[MKTPointerArgumentGetter alloc] initWithSuccessor:structGetter]; - MKTArgumentGetter *doubleGetter = [[MKTDoubleArgumentGetter alloc] initWithSuccessor:pointerGetter]; - MKTArgumentGetter *floatGetter = [[MKTFloatArgumentGetter alloc] initWithSuccessor:doubleGetter]; - MKTArgumentGetter *uLongLongGetter = [[MKTUnsignedLongLongArgumentGetter alloc] initWithSuccessor:floatGetter]; - MKTArgumentGetter *uLongGetter = [[MKTUnsignedLongArgumentGetter alloc] initWithSuccessor:uLongLongGetter]; - MKTArgumentGetter *uShortGetter = [[MKTUnsignedShortArgumentGetter alloc] initWithSuccessor:uLongGetter]; - MKTArgumentGetter *uIntGetter = [[MKTUnsignedIntArgumentGetter alloc] initWithSuccessor:uShortGetter]; - MKTArgumentGetter *uCharGetter = [[MKTUnsignedCharArgumentGetter alloc] initWithSuccessor:uIntGetter]; - MKTArgumentGetter *longLongGetter = [[MKTLongLongArgumentGetter alloc] initWithSuccessor:uCharGetter]; - MKTArgumentGetter *longGetter = [[MKTLongArgumentGetter alloc] initWithSuccessor:longLongGetter]; - MKTArgumentGetter *shortGetter = [[MKTShortArgumentGetter alloc] initWithSuccessor:longGetter]; - MKTArgumentGetter *intGetter = [[MKTIntArgumentGetter alloc] initWithSuccessor:shortGetter]; - MKTArgumentGetter *boolGetter = [[MKTBoolArgumentGetter alloc] initWithSuccessor:intGetter]; - MKTArgumentGetter *charGetter = [[MKTCharArgumentGetter alloc] initWithSuccessor:boolGetter]; - MKTArgumentGetter *classGetter = [[MKTClassArgumentGetter alloc] initWithSuccessor:charGetter]; - MKTArgumentGetter *selectorGetter = [[MKTSelectorArgumentGetter alloc] initWithSuccessor:classGetter]; - MKTArgumentGetter *objectGetter = [[MKTObjectArgumentGetter alloc] initWithSuccessor:selectorGetter]; - chain = objectGetter; - } - return chain; -} diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.h deleted file mode 100644 index 187835e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTBoolArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.m deleted file mode 100644 index 7507cfa..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTBoolArgumentGetter.h" - -@implementation MKTBoolArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(BOOL) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - BOOL arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.h deleted file mode 100644 index c969ff8..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTCharArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.m deleted file mode 100644 index ae6ae48..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTCharArgumentGetter.h" - -@implementation MKTCharArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(char) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - char arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.h deleted file mode 100644 index b7613af..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTClassArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.m deleted file mode 100644 index d4ac445..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTClassArgumentGetter.h" - -@implementation MKTClassArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(Class) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - __unsafe_unretained Class arg = nil; - [invocation getArgument:&arg atIndex:idx]; - return arg; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.h deleted file mode 100644 index 2476fa0..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTDoubleArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.m deleted file mode 100644 index 4e2aa65..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTDoubleArgumentGetter.h" - -@implementation MKTDoubleArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(double) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - double arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.h deleted file mode 100644 index 0c7c9cf..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTFloatArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.m deleted file mode 100644 index 724a6f9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTFloatArgumentGetter.h" - -@implementation MKTFloatArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(float) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - float arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.h deleted file mode 100644 index 7b2b241..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTIntArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.m deleted file mode 100644 index 70d52ea..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTIntArgumentGetter.h" - -@implementation MKTIntArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(int) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - int arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.h deleted file mode 100644 index a76ec7e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTLongArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.m deleted file mode 100644 index 93a8028..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTLongArgumentGetter.h" - -@implementation MKTLongArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(long) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - long arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.h deleted file mode 100644 index b0e2935..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.h +++ /dev/null @@ -1,15 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTLongLongArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.m deleted file mode 100644 index a2e7c70..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTLongLongArgumentGetter.h" - -@implementation MKTLongLongArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(long long) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - long long arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.h deleted file mode 100644 index d396080..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTObjectArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.m deleted file mode 100644 index 0920e49..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTObjectArgumentGetter.h" - -@implementation MKTObjectArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(id) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - __unsafe_unretained id arg = nil; - [invocation getArgument:&arg atIndex:idx]; - return arg ? arg : [NSNull null]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.h deleted file mode 100644 index b73d651..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTPointerArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.m deleted file mode 100644 index 23aea33..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.m +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTPointerArgumentGetter.h" - - -@implementation MKTPointerArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(void *) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - void *arg; - [invocation getArgument:&arg atIndex:idx]; - return [NSValue valueWithPointer:arg]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.h deleted file mode 100644 index 2d46af3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTSelectorArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.m deleted file mode 100644 index b0d778f..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTSelectorArgumentGetter.h" - -@implementation MKTSelectorArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(SEL) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - SEL arg = nil; - [invocation getArgument:&arg atIndex:idx]; - return arg ? NSStringFromSelector(arg) : [NSNull null]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.h deleted file mode 100644 index 3be2671..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTShortArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.m deleted file mode 100644 index c97aae2..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTShortArgumentGetter.h" - -@implementation MKTShortArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(short) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - short arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.h deleted file mode 100644 index 5346e21..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTStructArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.m deleted file mode 100644 index b43a057..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.m +++ /dev/null @@ -1,28 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTStructArgumentGetter.h" - -typedef struct {} MKTDummyStructure; - - -@implementation MKTStructArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(MKTDummyStructure) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - NSUInteger structSize = 0; - NSGetSizeAndAlignment(type, &structSize, NULL); - void *structMem = calloc(1, structSize); - [invocation getArgument:structMem atIndex:idx]; - id arg = [NSData dataWithBytes:structMem length:structSize]; - free(structMem); - return arg; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.h deleted file mode 100644 index f129972..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedCharArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.m deleted file mode 100644 index 2a4be3b..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedCharArgumentGetter.h" - -@implementation MKTUnsignedCharArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(unsigned char) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - unsigned char arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.h deleted file mode 100644 index fb4a2cf..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedIntArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.m deleted file mode 100644 index 8e9ff06..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedIntArgumentGetter.h" - -@implementation MKTUnsignedIntArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(unsigned int) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - unsigned int arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.h deleted file mode 100644 index 04ac2b2..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedLongArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.m deleted file mode 100644 index 1c0ff0c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedLongArgumentGetter.h" - -@implementation MKTUnsignedLongArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(unsigned long) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - unsigned long arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.h deleted file mode 100644 index 0078651..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedLongLongArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.m deleted file mode 100644 index 7ac32d9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedLongLongArgumentGetter.h" - -@implementation MKTUnsignedLongLongArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(unsigned long long) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - unsigned long long arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.h deleted file mode 100644 index f2bfb53..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTArgumentGetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedShortArgumentGetter : MKTArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTArgumentGetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.m deleted file mode 100644 index 760aaee..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedShortArgumentGetter.h" - -@implementation MKTUnsignedShortArgumentGetter - -- (instancetype)initWithSuccessor:(nullable MKTArgumentGetter *)successor -{ - self = [super initWithType:@encode(unsigned short) successor:successor]; - return self; -} - -- (id)getArgumentAtIndex:(NSInteger)idx ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - unsigned short arg; - [invocation getArgument:&arg atIndex:idx]; - return @(arg); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.h deleted file mode 100644 index 38bcf0c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTBoolReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.m deleted file mode 100644 index 15335a9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTBoolReturnSetter.h" - - -@implementation MKTBoolReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(BOOL) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - BOOL value = [returnValue boolValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.h deleted file mode 100644 index f96c217..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTCharReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.m deleted file mode 100644 index 051ef87..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTCharReturnSetter.h" - - -@implementation MKTCharReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(char) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - char value = [returnValue charValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.h deleted file mode 100644 index 901da09..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTClassReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.m deleted file mode 100644 index 30573ab..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTClassReturnSetter.h" - - -@implementation MKTClassReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(Class) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - __unsafe_unretained Class value = returnValue; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.h deleted file mode 100644 index a99e29b..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTDoubleReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.m deleted file mode 100644 index 4d7cfb0..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTDoubleReturnSetter.h" - - -@implementation MKTDoubleReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(double) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - double value = [returnValue doubleValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.h deleted file mode 100644 index 0e442ea..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTFloatReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.m deleted file mode 100644 index c8c16c9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTFloatReturnSetter.h" - - -@implementation MKTFloatReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(float) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - float value = [returnValue floatValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.h deleted file mode 100644 index 0bac9e7..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTIntReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.m deleted file mode 100644 index c2485f9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTIntReturnSetter.h" - - -@implementation MKTIntReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(int) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - int value = [returnValue intValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.h deleted file mode 100644 index 52ba557..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTLongLongReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.m deleted file mode 100644 index 8e27213..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTLongLongReturnSetter.h" - - -@implementation MKTLongLongReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(long long) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - long long value = [returnValue longLongValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.h deleted file mode 100644 index 9c54586..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTLongReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.m deleted file mode 100644 index 83f2fee..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTLongReturnSetter.h" - - -@implementation MKTLongReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(long) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - long value = [returnValue longValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.h deleted file mode 100644 index cb3a79c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTObjectReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.m deleted file mode 100644 index f76403f..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTObjectReturnSetter.h" - - -@implementation MKTObjectReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(id) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - __unsafe_unretained id value = returnValue; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.h deleted file mode 100644 index 9860a29..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.h +++ /dev/null @@ -1,30 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Chain-of-responsibility for converting objects to NSInvocation return values. - */ -@interface MKTReturnValueSetter : NSObject - -/*! - * @abstract Initializes a newly allocated return value setter. - * @param handlerType Return type managed by this setter. Assign with \@encode compiler directive. - * @param successor Successor in chain to handle return type. - */ -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -; - -/*! - * @abstract Set NSInvocation return value of specified type, or pass to successor. - */ -- (void)setReturnValue:(nullable id)returnValue ofType:(char const *)type onInvocation:(NSInvocation *)invocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.m deleted file mode 100644 index eea1510..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.m +++ /dev/null @@ -1,43 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -@interface MKTReturnValueSetter (SubclassResponsibility) -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation; -@end - -@interface MKTReturnValueSetter () -@property (nonatomic, assign, readonly) char const *handlerType; -@property (nullable, nonatomic, strong, readonly) MKTReturnValueSetter *successor; -@end - - -@implementation MKTReturnValueSetter - -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor -{ - self = [super init]; - if (self) - { - _handlerType = handlerType; - _successor = successor; - } - return self; -} - -- (BOOL)handlesReturnType:(char const *)returnType -{ - return returnType[0] == self.handlerType[0]; -} - -- (void)setReturnValue:(nullable id)returnValue ofType:(char const *)type onInvocation:(NSInvocation *)invocation -{ - if ([self handlesReturnType:type]) - [self setReturnValue:returnValue onInvocation:invocation]; - else - [self.successor setReturnValue:returnValue ofType:type onInvocation:invocation]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.h deleted file mode 100644 index ae9973c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTReturnValueSetter; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Returns chain of return value handlers. - */ -FOUNDATION_EXPORT MKTReturnValueSetter *MKTReturnValueSetterChain(void); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.m deleted file mode 100644 index 5539292..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.m +++ /dev/null @@ -1,48 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetterChain.h" - -#import "MKTObjectReturnSetter.h" -#import "MKTClassReturnSetter.h" -#import "MKTCharReturnSetter.h" -#import "MKTBoolReturnSetter.h" -#import "MKTLongLongReturnSetter.h" -#import "MKTIntReturnSetter.h" -#import "MKTShortReturnSetter.h" -#import "MKTLongReturnSetter.h" -#import "MKTUnsignedCharReturnSetter.h" -#import "MKTUnsignedIntReturnSetter.h" -#import "MKTUnsignedShortReturnSetter.h" -#import "MKTUnsignedLongReturnSetter.h" -#import "MKTUnsignedLongLongReturnSetter.h" -#import "MKTFloatReturnSetter.h" -#import "MKTDoubleReturnSetter.h" -#import "MKTStructReturnSetter.h" - - -MKTReturnValueSetter *MKTReturnValueSetterChain(void) -{ - static MKTReturnValueSetter *chain = nil; - if (!chain) - { - MKTReturnValueSetter *structSetter = [[MKTStructReturnSetter alloc] initWithSuccessor:nil]; - MKTReturnValueSetter *doubleSetter = [[MKTDoubleReturnSetter alloc] initWithSuccessor:structSetter]; - MKTReturnValueSetter *floatSetter = [[MKTFloatReturnSetter alloc] initWithSuccessor:doubleSetter]; - MKTReturnValueSetter *uLongLongSetter = [[MKTUnsignedLongLongReturnSetter alloc] initWithSuccessor:floatSetter]; - MKTReturnValueSetter *uLongSetter = [[MKTUnsignedLongReturnSetter alloc] initWithSuccessor:uLongLongSetter]; - MKTReturnValueSetter *uShortSetter = [[MKTUnsignedShortReturnSetter alloc] initWithSuccessor:uLongSetter]; - MKTReturnValueSetter *uIntSetter = [[MKTUnsignedIntReturnSetter alloc] initWithSuccessor:uShortSetter]; - MKTReturnValueSetter *uCharSetter = [[MKTUnsignedCharReturnSetter alloc] initWithSuccessor:uIntSetter]; - MKTReturnValueSetter *longLongSetter = [[MKTLongLongReturnSetter alloc] initWithSuccessor:uCharSetter]; - MKTReturnValueSetter *longSetter = [[MKTLongReturnSetter alloc] initWithSuccessor:longLongSetter]; - MKTReturnValueSetter *shortSetter = [[MKTShortReturnSetter alloc] initWithSuccessor:longSetter]; - MKTReturnValueSetter *intSetter = [[MKTIntReturnSetter alloc] initWithSuccessor:shortSetter]; - MKTReturnValueSetter *boolSetter = [[MKTBoolReturnSetter alloc] initWithSuccessor:intSetter]; - MKTReturnValueSetter *charSetter = [[MKTCharReturnSetter alloc] initWithSuccessor:boolSetter]; - MKTReturnValueSetter *classSetter = [[MKTClassReturnSetter alloc] initWithSuccessor:charSetter]; - MKTReturnValueSetter *objectSetter = [[MKTObjectReturnSetter alloc] initWithSuccessor:classSetter]; - chain = objectSetter; - } - return chain; -} diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.h deleted file mode 100644 index e9fd4a1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTShortReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.m deleted file mode 100644 index a5ecb88..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTShortReturnSetter.h" - - -@implementation MKTShortReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(short) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - short value = [returnValue shortValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.h deleted file mode 100644 index 46a91b6..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTStructReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.m deleted file mode 100644 index 7668ec3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.m +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTStructReturnSetter.h" - - -@implementation MKTStructReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:"{" successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - NSMethodSignature *methodSignature = [invocation methodSignature]; - NSMutableData *value = [NSMutableData dataWithLength:[methodSignature methodReturnLength]]; - [returnValue getValue:[value mutableBytes]]; - [invocation setReturnValue:[value mutableBytes]]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.h deleted file mode 100644 index 09b686a..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedCharReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.m deleted file mode 100644 index 2894b99..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedCharReturnSetter.h" - - -@implementation MKTUnsignedCharReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(unsigned char) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - unsigned char value = [returnValue unsignedCharValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.h deleted file mode 100644 index ff45791..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedIntReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.m deleted file mode 100644 index 7d91be6..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedIntReturnSetter.h" - - -@implementation MKTUnsignedIntReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(unsigned int) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - unsigned int value = [returnValue unsignedIntValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.h deleted file mode 100644 index 3a9e49c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedLongLongReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.m deleted file mode 100644 index 9da379e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedLongLongReturnSetter.h" - - -@implementation MKTUnsignedLongLongReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(unsigned long long) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - unsigned long long value = [returnValue unsignedLongLongValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.h deleted file mode 100644 index 055914c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedLongReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.m deleted file mode 100644 index 7a4bd10..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedLongReturnSetter.h" - - -@implementation MKTUnsignedLongReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(unsigned long) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - unsigned long value = [returnValue unsignedLongValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.h b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.h deleted file mode 100644 index 13ef90a..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnValueSetter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTUnsignedShortReturnSetter : MKTReturnValueSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithType:(char const *)handlerType successor:(nullable MKTReturnValueSetter *)successor NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.m b/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.m deleted file mode 100644 index 00380eb..0000000 --- a/Pods/OCMockito/Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.m +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTUnsignedShortReturnSetter.h" - - -@implementation MKTUnsignedShortReturnSetter - -- (instancetype)initWithSuccessor:(nullable MKTReturnValueSetter *)successor -{ - self = [super initWithType:@encode(unsigned short) successor:successor]; - return self; -} - -- (void)setReturnValue:(id)returnValue onInvocation:(NSInvocation *)invocation -{ - unsigned short value = [returnValue unsignedShortValue]; - [invocation setReturnValue:&value]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.h deleted file mode 100644 index bd29f10..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTCallStackElement : NSObject - -@property (nonatomic, copy, readonly) NSString *moduleName; -@property (nonatomic, copy, readonly) NSString *instruction; - -- (instancetype)initWithSymbols:(NSString *)element NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.m deleted file mode 100644 index b9098d4..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTCallStackElement.m +++ /dev/null @@ -1,53 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTCallStackElement.h" - - -static NSRange trimTrailingSpacesFromRange(NSString *string, NSRange range) -{ - while ([string characterAtIndex:range.location + range.length - 1] == ' ') - range.length -= 1; - return range; -} - -static NSString *extractModuleName(NSString *element) -{ - NSRange range = trimTrailingSpacesFromRange(element, NSMakeRange(4, 33)); - return [element substringWithRange:range]; -} - -static BOOL isAddress32Bit(NSString *element) -{ - return [element characterAtIndex:50] == ' '; -} - -static NSString *extractInstruction(NSString *element) -{ - NSUInteger loc = 59; - if (isAddress32Bit(element)) - loc -= 8; - NSRange range = NSMakeRange(loc, element.length - loc); - return [element substringWithRange:range]; -} - - -@implementation MKTCallStackElement - -- (instancetype)initWithSymbols:(NSString *)element -{ - self = [super init]; - if (self) - { - _moduleName = extractModuleName(element); - _instruction = extractInstruction(element); - } - return self; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"%@ %@", self.moduleName, self.instruction]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.h deleted file mode 100644 index 1a31ae0..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.h +++ /dev/null @@ -1,13 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTCallStackElement; - - -NS_ASSUME_NONNULL_BEGIN - -NSArray *MKTFilterCallStack(NSArray *callStackSymbols); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.m deleted file mode 100644 index 27dca30..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTFilterCallStack.m +++ /dev/null @@ -1,34 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTFilterCallStack.h" - -#import "MKTCallStackElement.h" - - -static NSUInteger MKTFirstRelevantCallStackIndex(NSArray *parsedStack) -{ - NSUInteger firstIndex = [parsedStack indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { - MKTCallStackElement *element = obj; - return [element.instruction hasPrefix:@"-[MKTBaseMockObject forwardInvocation:]"]; - }]; - return firstIndex + 3; -} - -static NSUInteger MKTLastRelevantCallStackIndex(NSArray *parsedStack, - NSUInteger startBackFrom, - NSString *moduleName) -{ - NSUInteger lastIndex = startBackFrom; - while (lastIndex > 0 && ![[(parsedStack[lastIndex]) moduleName] isEqualToString:moduleName]) - lastIndex -= 1; - return [[(parsedStack[lastIndex]) moduleName] isEqualToString:moduleName] ? lastIndex : startBackFrom; -} - -NSArray *MKTFilterCallStack(NSArray *parsedStack) -{ - NSUInteger firstIndex = MKTFirstRelevantCallStackIndex(parsedStack); - NSUInteger lastIndex = MKTLastRelevantCallStackIndex(parsedStack, parsedStack.count - 1, @"XCTest"); - lastIndex = MKTLastRelevantCallStackIndex(parsedStack, lastIndex, [parsedStack[firstIndex] moduleName]); - return [parsedStack subarrayWithRange:NSMakeRange(firstIndex, lastIndex - firstIndex + 1)]; -} diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.h deleted file mode 100644 index 2103a68..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.h +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTLocation; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTInvocation : NSObject - -@property (nonatomic, strong, readonly) NSInvocation *invocation; -@property (nonatomic, strong, readonly) MKTLocation *location; -@property (nonatomic, assign) BOOL verified; - -- (instancetype)initWithInvocation:(NSInvocation *)invocation; -- (instancetype)initWithInvocation:(NSInvocation *)invocation location:(MKTLocation *)location NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.m deleted file mode 100644 index 8e31aa4..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocation.m +++ /dev/null @@ -1,27 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocation.h" - -#import "MKTLocation.h" - - -@implementation MKTInvocation - -- (instancetype)initWithInvocation:(NSInvocation *)invocation -{ - return [self initWithInvocation:invocation - location:[[MKTLocation alloc] init]]; -} - -- (instancetype)initWithInvocation:(NSInvocation *)invocation location:(MKTLocation *)location -{ - self = [super init]; - if (self) { - _invocation = invocation; - _location = location; - } - return self; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.h deleted file mode 100644 index 42c5914..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.h +++ /dev/null @@ -1,27 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@protocol HCMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTInvocationMatcher : NSObject - -@property (nonatomic, strong, readonly) NSInvocation *expected; -@property (nonatomic, assign, readonly) NSUInteger numberOfArguments; -@property (nonatomic, copy, readonly) NSArray> *matchers; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (void)setMatcher:(id )matcher atIndex:(NSUInteger)index; -- (void)setExpectedInvocation:(NSInvocation *)expectedInvocation; -- (BOOL)matches:(NSInvocation *)actual; -- (void)stopArgumentCapture; -- (void)enumerateMismatchesOf:(NSInvocation *)actual - usingBlock:(void (^)(NSUInteger idx, NSString *description))block; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.m deleted file mode 100644 index f76af00..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTInvocationMatcher.m +++ /dev/null @@ -1,149 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationMatcher.h" - -#import "NSInvocation+OCMockito.h" -#import -#import -#import -#import - - -@interface MKTUnspecifiedArgumentPlaceholder : NSObject -@end - -@implementation MKTUnspecifiedArgumentPlaceholder - -+ (instancetype)sharedPlaceholder -{ - static MKTUnspecifiedArgumentPlaceholder *instance = nil; - if (!instance) - instance = [[self alloc] init]; - return instance; -} - -@end - - -@interface MKTInvocationMatcher () -@property (nonatomic, strong, readwrite) NSInvocation *expected; -@property (nonatomic, assign, readwrite) NSUInteger numberOfArguments; -@property (nonatomic, strong, readonly) NSMutableArray> *argumentMatchers; -@end - -@implementation MKTInvocationMatcher - -@dynamic matchers; - -- (instancetype)init -{ - self = [super init]; - if (self) - _argumentMatchers = [[NSMutableArray alloc] init]; - return self; -} - -- (NSArray> *)matchers -{ - return self.argumentMatchers; -} - -- (void)setMatcher:(id )matcher atIndex:(NSUInteger)index -{ - if (index < self.argumentMatchers.count) - self.argumentMatchers[index] = matcher; - else - { - [self trueUpArgumentMatchersToCount:index]; - [self.argumentMatchers addObject:matcher]; - } -} - -- (void)trueUpArgumentMatchersToCount:(NSUInteger)desiredCount -{ - NSUInteger count = self.argumentMatchers.count; - while (count < desiredCount) - { - [self.argumentMatchers addObject:[self placeholderForUnspecifiedMatcher]]; - ++count; - } -} - -- (void)setExpectedInvocation:(NSInvocation *)expectedInvocation -{ - [expectedInvocation mkt_retainArgumentsWithWeakTarget]; - self.expected = expectedInvocation; - - self.numberOfArguments = [[self.expected methodSignature] numberOfArguments] - 2; - [self trueUpArgumentMatchersToCount:self.numberOfArguments]; - [self replacePlaceholdersWithEqualityMatchersForArguments:[self.expected mkt_arguments]]; -} - -- (void)replacePlaceholdersWithEqualityMatchersForArguments:(NSArray *)expectedArgs -{ - for (NSUInteger index = 0; index < self.numberOfArguments; ++index) - { - if (self.argumentMatchers[index] == [self placeholderForUnspecifiedMatcher]) - self.argumentMatchers[index] = [self matcherForArgument:expectedArgs[index]]; - } -} - -- (id)placeholderForUnspecifiedMatcher -{ - return [MKTUnspecifiedArgumentPlaceholder sharedPlaceholder]; -} - -- (id )matcherForArgument:(id)arg -{ - if (arg == [NSNull null]) - return HC_nilValue(); - - return HCWrapInMatcher(arg); -} - -- (BOOL)matches:(NSInvocation *)actual -{ - if (self.expected.selector != actual.selector) - return NO; - - NSArray *actualArgs = [actual mkt_arguments]; - for (NSUInteger index = 0; index < self.numberOfArguments; ++index) - { - if ([self argument:actualArgs[index] doesNotMatch:self.argumentMatchers[index]]) - return NO; - } - return YES; -} - -- (void)stopArgumentCapture -{ - for (id matcher in self.argumentMatchers) - if ([matcher isKindOfClass:[HCArgumentCaptor class]]) - { - HCArgumentCaptor *captor = (HCArgumentCaptor *)matcher; - captor.captureEnabled = NO; - } -} - -- (void)enumerateMismatchesOf:(NSInvocation *)actual - usingBlock:(void (^)(NSUInteger idx, NSString *description))block -{ - NSArray *actualArgs = [actual mkt_arguments]; - for (NSUInteger index = 0; index < self.numberOfArguments; ++index) - if ([self argument:actualArgs[index] doesNotMatch:self.argumentMatchers[index]]) - { - id matcher = self.argumentMatchers[index]; - id argument = actualArgs[index]; - block(index, HCDescribeMismatch(matcher, argument)); - } -} - -- (BOOL)argument:(id)arg doesNotMatch:(id )matcher -{ - if (arg == [NSNull null]) - arg = nil; - return ![matcher matches:arg]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.h deleted file mode 100644 index 995452f..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTLocation : NSObject - -- (instancetype)init; -- (instancetype)initWithCallStack:(NSArray *)callStack NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.m deleted file mode 100644 index d7b8366..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTLocation.m +++ /dev/null @@ -1,36 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTLocation.h" - -#import "MKTFilterCallStack.h" -#import "MKTParseCallStack.h" - - -@interface MKTLocation () -@property (nonatomic, strong, readonly) NSArray *callStack; // strong not copy, for speed -@end - -@implementation MKTLocation - -- (instancetype)init -{ - self = [self initWithCallStack:[NSThread callStackSymbols]]; - return self; -} - -- (instancetype)initWithCallStack:(NSArray *)callStack -{ - self = [super init]; - if (self) - _callStack = callStack; - return self; -} - -- (NSString *)description -{ - NSArray *stack = MKTFilterCallStack(MKTParseCallStack(self.callStack)); - return [stack componentsJoinedByString:@"\n"]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.h deleted file mode 100644 index 4b28897..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.h +++ /dev/null @@ -1,24 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTInvocation; -@class MKTInvocationMatcher; -@class MKTLocation; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTMatchingInvocationsFinder : NSObject - -@property (nonatomic, assign, readonly) NSUInteger count; - -- (void)findInvocationsInList:(NSArray *)invocations matching:(MKTInvocationMatcher *)wanted; -- (MKTLocation *)locationOfInvocationAtIndex:(NSUInteger)index; -- (MKTLocation *)locationOfLastInvocation; -- (void)markInvocationsAsVerified; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.m deleted file mode 100644 index 148d072..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.m +++ /dev/null @@ -1,50 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTMatchingInvocationsFinder.h" - -#import "MKTInvocation.h" -#import "MKTInvocationMatcher.h" - - -@interface MKTMatchingInvocationsFinder () -@property (nonatomic, copy) NSArray *invocations; -@end - -@implementation MKTMatchingInvocationsFinder - -@dynamic count; - -- (void)findInvocationsInList:(NSArray *)invocations matching:(MKTInvocationMatcher *)wanted -{ - self.invocations = [invocations filteredArrayUsingPredicate: - [NSPredicate predicateWithBlock:^BOOL(id obj, NSDictionary *bindings) { - MKTInvocation *invocation = obj; - return !invocation.verified && [wanted matches:invocation.invocation]; - }]]; -} - -- (NSUInteger)count -{ - return self.invocations.count; -} - -- (MKTLocation *)locationOfInvocationAtIndex:(NSUInteger)index -{ - MKTInvocation *invocation = self.invocations[index]; - return invocation.location; -} - -- (MKTLocation *)locationOfLastInvocation -{ - MKTInvocation *invocation = self.invocations.lastObject; - return invocation.location; -} - -- (void)markInvocationsAsVerified -{ - for (MKTInvocation *invocation in self.invocations) - invocation.verified = YES; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.h deleted file mode 100644 index a3690ed..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.h +++ /dev/null @@ -1,13 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTCallStackElement; - - -NS_ASSUME_NONNULL_BEGIN - -NSArray *MKTParseCallStack(NSArray *callStackSymbols); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.m deleted file mode 100644 index f40cba9..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTParseCallStack.m +++ /dev/null @@ -1,18 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTParseCallStack.h" - -#import "MKTCallStackElement.h" - - -NSArray *MKTParseCallStack(NSArray *callStackSymbols) -{ - NSMutableArray *result = [[NSMutableArray alloc] init]; - for (NSString *rawElement in callStackSymbols) - { - MKTCallStackElement *element = [[MKTCallStackElement alloc] initWithSymbols:rawElement]; - [result addObject:element]; - } - return result; -} diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.h b/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.h deleted file mode 100644 index ec19c01..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.h +++ /dev/null @@ -1,24 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTInvocation; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTPrinter : NSObject - -- (NSString *)printMatcher:(MKTInvocationMatcher *)matcher; -- (NSString *)printInvocation:(MKTInvocation *)invocation; -- (NSString *)printMismatchOf:(MKTInvocation *)invocation - expectation:(MKTInvocationMatcher *)expectation; - -@end - - -FOUNDATION_EXPORT NSString *MKTOrdinal(NSUInteger index); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.m b/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.m deleted file mode 100644 index 437407e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/MKTPrinter.m +++ /dev/null @@ -1,170 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTPrinter.h" - -#import "MKTInvocation.h" -#import "MKTInvocationMatcher.h" -#import "NSInvocation+OCMockito.h" -#import -#import - - -@implementation MKTPrinter - -- (NSString *)printMatcher:(MKTInvocationMatcher *)matcher -{ - if (matcher.matchers.count == 0) - return [self printInvocationWithNoArguments:matcher.expected]; - return [self printMatcherWithArguments:matcher]; - -} - -- (NSString *)printMatcherWithArguments:(MKTInvocationMatcher *)matcher -{ - NSArray> *matchers = matcher.matchers; - NSArray *selectorParts = [NSStringFromSelector(matcher.expected.selector) componentsSeparatedByString:@":"]; - NSMutableString *result = [[NSMutableString alloc] init]; - for (NSUInteger index = 0; index < matchers.count; ++index) - { - HCStringDescription *description = [[HCStringDescription alloc] init]; - [matchers[index] describeTo:description]; - [result appendFormat:@" %@:%@", selectorParts[index], description]; - } - return [result substringFromIndex:1]; // Remove first space -} - -- (NSString *)printInvocation:(MKTInvocation *)invocation -{ - NSString *result; - if ([self invocationHasNoArguments:invocation.invocation]) - result = [self printInvocationWithNoArguments:invocation.invocation]; - else - result = [self printInvocationWithArguments:invocation.invocation]; - if (invocation.verified) - result = [@"✓ " stringByAppendingString:result]; - return result; -} - -- (BOOL)invocationHasNoArguments:(NSInvocation *)invocation -{ - return invocation.methodSignature.numberOfArguments == 2; // Indices 0 and 1 are self and _cmd -} - -- (NSString *)printInvocationWithNoArguments:(NSInvocation *)invocation -{ - return NSStringFromSelector(invocation.selector); -} - -- (NSString *)printInvocationWithArguments:(NSInvocation *)invocation -{ - NSArray *arguments = [invocation mkt_arguments]; - NSArray *selectorParts = [NSStringFromSelector(invocation.selector) componentsSeparatedByString:@":"]; - NSMutableString *result = [[NSMutableString alloc] init]; - for (NSUInteger index = 0; index < arguments.count; ++index) - { - const char *argType = [invocation.methodSignature getArgumentTypeAtIndex:index + 2]; - [result appendFormat:@" %@:%@", selectorParts[index], [self printArgument:arguments[index] type:argType]]; - } - return [result substringFromIndex:1]; // Remove first space -} - -- (NSString *)printArgument:(id)arg type:(const char *)type -{ - if (arg == [NSNull null]) - return [self printNil]; - if (type[0] == @encode(Class)[0]) - return [self printClass:arg]; - if (type[0] == @encode(SEL)[0]) - return [self printSelector:arg]; - if ([arg isKindOfClass:[NSString class]]) - return [self printString:arg]; - if ([arg isKindOfClass:[NSNumber class]]) - return [self printNumber:arg type:type]; - if ([arg isKindOfClass:[NSArray class]]) - return [self printArray:arg]; - if ([arg isKindOfClass:[NSDictionary class]]) - return [self printDictionary:arg]; - return [arg description]; -} - -- (NSString *)printNil -{ - return @"nil"; -} - -- (NSString *)printClass:(id)className -{ - return [NSString stringWithFormat:@"[%@ class]", className]; -} - -- (NSString *)printSelector:(id)arg -{ - return [NSString stringWithFormat:@"@selector(%@)", arg]; -} - -- (NSString *)printString:(id)arg -{ - return [NSString stringWithFormat:@"@\"%@\"", arg]; -} - -- (NSString *)printNumber:(id)arg type:(const char *)type -{ - if (type[0] == @encode(id)[0]) - return [NSString stringWithFormat:@"@%@", arg]; - if (type[0] == @encode(BOOL)[0]) - return [arg boolValue] ? @"YES" : @"NO"; - return [arg description]; -} - -- (NSString *)printArray:(id)arg -{ - NSMutableArray *printedArgs = [[NSMutableArray alloc] init]; - for (id item in arg) - [printedArgs addObject:[self printArgument:item type:@encode(id)]]; - NSString *joinedArgs = [printedArgs componentsJoinedByString:@", "]; - return [NSString stringWithFormat:@"@[ %@ ]", joinedArgs]; -} - -- (NSString *)printDictionary:(id)arg -{ - NSMutableArray *printedArgs = [[NSMutableArray alloc] init]; - for (id key in [[arg allKeys] sortedArrayUsingSelector:@selector(compare:)]) - { - NSString *printedKey = [self printArgument:key type:@encode(id)]; - NSString *printedValue = [self printArgument:[arg objectForKey:key] type:@encode(id)]; - [printedArgs addObject:[NSString stringWithFormat:@"%@ : %@", printedKey, printedValue]]; - } - NSString *joinedArgs = [printedArgs componentsJoinedByString:@", "]; - return [NSString stringWithFormat:@"@{ %@ }", joinedArgs]; -} - -- (NSString *)printMismatchOf:(MKTInvocation *)invocation - expectation:(MKTInvocationMatcher *)expectation -{ - NSMutableString *result = [[NSMutableString alloc] init]; - [expectation enumerateMismatchesOf:invocation.invocation - usingBlock:^(NSUInteger index, NSString *mismatchDescription) { - [result appendString:[NSString stringWithFormat: - @"\nMismatch in %@ argument. %@", MKTOrdinal(index), mismatchDescription]]; - }]; - return result; -} - -@end - - -NSString *MKTOrdinal(NSUInteger index) -{ - index += 1; - NSString *suffix; - if (index == 1) - suffix = @"st"; - else if (index == 2) - suffix = @"nd"; - else if (index == 3) - suffix = @"rd"; - else - suffix = @"th"; - return [NSString stringWithFormat:@"%lu%@", (unsigned long)index, suffix]; -} diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.h b/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.h deleted file mode 100644 index 99bddd3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.h +++ /dev/null @@ -1,35 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract NSInvocation helper methods - */ -@interface NSInvocation (OCMockito) - -/*! - * @abstract Returns all invocation arguments in an NSArray. - * @discussion Non-object arguments are boxed as follows: - *
    - *
  • nil: NSNull
  • - *
  • Primitive numeric values: NSNumber
  • - *
  • Pointers: NSValue
  • - *
  • Selectors: NSString
  • - *
  • Structs: NSData
  • - *
- */ -- (NSArray *)mkt_arguments; - -/*! @abstract Sets invocation return value. */ -- (void)mkt_setReturnValue:(nullable id)returnValue; - -/*! @abstract Retains arguments but with weak invocation target to avoid retain cycles. */ -- (void)mkt_retainArgumentsWithWeakTarget; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.m b/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.m deleted file mode 100644 index 5b7ae97..0000000 --- a/Pods/OCMockito/Source/OCMockito/Invocation/NSInvocation+OCMockito.m +++ /dev/null @@ -1,52 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "NSInvocation+OCMockito.h" - -#import "MKTArgumentGetter.h" -#import "MKTArgumentGetterChain.h" -#import "MKTReturnValueSetter.h" -#import "MKTReturnValueSetterChain.h" -#import "MKT_TPDWeakProxy.h" - - -@implementation NSInvocation (OCMockito) - -- (NSArray *)mkt_arguments -{ - NSMethodSignature *signature = self.methodSignature; - NSUInteger numberOfArguments = signature.numberOfArguments; - NSMutableArray *arguments = [NSMutableArray arrayWithCapacity:numberOfArguments - 2]; - - for (NSUInteger idx = 2; idx < numberOfArguments; ++idx) // Indices 0 and 1 are self and _cmd - { - const char *argType = [signature getArgumentTypeAtIndex:idx]; - id arg = [MKTArgumentGetterChain() retrieveArgumentAtIndex:(NSInteger)idx ofType:argType onInvocation:self]; - if (arg) - [arguments addObject:arg]; - else - { - NSLog(@"mkt_arguments unhandled type: %s", argType); - [arguments addObject:[NSNull null]]; - } - } - - return arguments; -} - -- (void)mkt_setReturnValue:(nullable id)returnValue -{ - char const *returnType = self.methodSignature.methodReturnType; - [MKTReturnValueSetterChain() setReturnValue:returnValue ofType:returnType onInvocation:self]; -} - -- (void)mkt_retainArgumentsWithWeakTarget -{ - if (self.argumentsRetained) - return; - MKT_TPDWeakProxy *proxy = [[MKT_TPDWeakProxy alloc] initWithObject:self.target]; - self.target = proxy; - [self retainArguments]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.h deleted file mode 100644 index 557cbf5..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTBaseMockObject : NSProxy - -+ (BOOL)isMockObject:(nullable id)object; - -- (instancetype)init; -- (void)stopMocking; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.m deleted file mode 100644 index 399dd56..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTBaseMockObject.m +++ /dev/null @@ -1,128 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTBaseMockObject.h" - -#import "MKTInvocationContainer.h" -#import "MKTInvocationMatcher.h" -#import "MKTMockingProgress.h" -#import "MKTOngoingStubbing.h" -#import "MKTStubbedInvocationMatcher.h" -#import "MKTVerificationData.h" -#import "MKTVerificationMode.h" -#import "NSInvocation+OCMockito.h" - - -@interface MKTBaseMockObject () -@property (nonatomic, strong, readonly) MKTMockingProgress *mockingProgress; -@property (nonatomic, strong) MKTInvocationContainer *invocationContainer; -@property (nonatomic, assign) BOOL stoppedMocking; -@end - -@implementation MKTBaseMockObject - -+ (BOOL)isMockObject:(nullable id)object -{ - NSString *className = NSStringFromClass([object class]); - return [className isEqualToString:@"MKTObjectMock"] || - [className isEqualToString:@"MKTProtocolMock"] || - [className isEqualToString:@"MKTClassObjectMock"] || - [className isEqualToString:@"MKTObjectAndProtocolMock"]; -} - -- (instancetype)init -{ - if (self) - { - _mockingProgress = [MKTMockingProgress sharedProgress]; - _invocationContainer = [[MKTInvocationContainer alloc] init]; - } - return self; -} - -- (void)stopMocking -{ - self.stoppedMocking = YES; - self.invocationContainer = nil; - [self.mockingProgress reset]; -} - -- (void)forwardInvocation:(NSInvocation *)invocation -{ - if (self.stoppedMocking) - return; - if ([self handlingVerifyOfInvocation:invocation]) - return; - - @synchronized (self) - { - [self prepareInvocationForStubbing:invocation]; - [self answerInvocation:invocation]; - } -} - -- (BOOL)handlingVerifyOfInvocation:(NSInvocation *)invocation -{ - id verificationMode = [self.mockingProgress pullVerificationMode]; - if (verificationMode) - [self verifyInvocation:invocation usingVerificationMode:verificationMode]; - return verificationMode != nil; - } - -- (void)verifyInvocation:(NSInvocation *)invocation usingVerificationMode:(id )verificationMode -{ - MKTInvocationMatcher *invocationMatcher = [self matcherWithInvocation:invocation]; - MKTVerificationData *data = [self verificationDataWithMatcher:invocationMatcher]; - [verificationMode verifyData:data testLocation:self.mockingProgress.testLocation]; -} - -- (MKTInvocationMatcher *)matcherWithInvocation:(NSInvocation *)invocation -{ - MKTInvocationMatcher *invocationMatcher = [self.mockingProgress pullInvocationMatcher]; - if (!invocationMatcher) - invocationMatcher = [[MKTInvocationMatcher alloc] init]; - [invocationMatcher setExpectedInvocation:invocation]; - return invocationMatcher; -} - -- (MKTVerificationData *)verificationDataWithMatcher:(MKTInvocationMatcher *)invocationMatcher -{ - return [[MKTVerificationData alloc] initWithInvocationContainer:self.invocationContainer - invocationMatcher:invocationMatcher]; -} - -- (void)prepareInvocationForStubbing:(NSInvocation *)invocation -{ - [self.invocationContainer setInvocationForPotentialStubbing:invocation]; - MKTOngoingStubbing *ongoingStubbing = - [[MKTOngoingStubbing alloc] initWithInvocationContainer:self.invocationContainer]; - [self.mockingProgress reportOngoingStubbing:ongoingStubbing]; -} - -- (void)answerInvocation:(NSInvocation *)invocation -{ - MKTStubbedInvocationMatcher *stubbedInvocation = [self.invocationContainer findAnswerFor:invocation]; - if (stubbedInvocation) - [self useExistingAnswerInStub:stubbedInvocation forInvocation:invocation]; -} - -- (void)useExistingAnswerInStub:(MKTStubbedInvocationMatcher *)stub forInvocation:(NSInvocation *)invocation -{ - [invocation mkt_setReturnValue:[stub answerInvocation:invocation]]; -} - - -#pragma mark - MKTNonObjectArgumentMatching - -- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index -{ - [self.mockingProgress setMatcher:matcher forArgument:index]; - return self; -} - -- (id)withMatcher:(id )matcher -{ - return [self withMatcher:matcher forArgument:0]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.h deleted file mode 100644 index fd3840d..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.h +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by David Hart - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Mock object of a given class object. - */ -@interface MKTClassObjectMock : MKTBaseMockObject - -@property (nonatomic, strong, readonly) Class mockedClass; - -- (instancetype)initWithClass:(Class)aClass NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (void)swizzleSingletonAtSelector:(SEL)singletonSelector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.m deleted file mode 100644 index 6f380fe..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTClassObjectMock.m +++ /dev/null @@ -1,63 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by David Hart - -#import "MKTClassObjectMock.h" - -#import "MKTSingletonSwizzler.h" - - -@interface MKTClassObjectMock () -@property (nonatomic, strong) MKTSingletonSwizzler *swizzler; -@end - -@implementation MKTClassObjectMock - -- (instancetype)initWithClass:(Class)aClass -{ - self = [super init]; - if (self) - _mockedClass = aClass; - return self; -} - -- (MKTSingletonSwizzler *)swizzler -{ - if (!_swizzler) - _swizzler = [[MKTSingletonSwizzler alloc] initWithMock:self]; - return _swizzler; -} - -- (void)stopMocking -{ - if (_swizzler) - { - [_swizzler unswizzleSingletonsForMock]; // Explicitly call for 32-bit iOS because dealloc is called too late. - _swizzler = nil; - } - [super stopMocking]; -} - -- (NSString *)description -{ - return [@"mock class of " stringByAppendingString:NSStringFromClass(self.mockedClass)]; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector -{ - return [self.mockedClass methodSignatureForSelector:aSelector]; -} - -- (void)swizzleSingletonAtSelector:(SEL)singletonSelector -{ - [self.swizzler swizzleSingletonAtSelector:singletonSelector]; -} - -#pragma mark - NSObject protocol - -- (BOOL)respondsToSelector:(SEL)aSelector -{ - return [self.mockedClass respondsToSelector:aSelector]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.h deleted file mode 100644 index 0c5e878..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTDynamicProperties : NSObject - -- (instancetype)initWithClass:(Class)aClass NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.m deleted file mode 100644 index edd83c4..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTDynamicProperties.m +++ /dev/null @@ -1,146 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTDynamicProperties.h" - -#import - - -@interface MKTDynamicProperties () -@property (nonnull, nonatomic, copy, readonly) NSDictionary *selectorToSignature; -@end - -@implementation MKTDynamicProperties - -+ (NSDictionary *)dynamicPropertySelectorsForClass:(Class)aClass -{ - NSMutableDictionary *result = [[NSMutableDictionary alloc] init]; - for (Class cls = aClass; cls != Nil; cls = [cls superclass]) - { - NSDictionary *properties = [self dynamicPropertySelectorsForSingleClass:cls]; - [result addEntriesFromDictionary:properties]; - } - return result; -} - -+ (NSDictionary *)dynamicPropertySelectorsForSingleClass:(Class)aClass -{ - NSMutableDictionary *result = [[NSMutableDictionary alloc] init]; - unsigned int propertyCount; - objc_property_t *properties = class_copyPropertyList(aClass, &propertyCount); - for (unsigned int i = 0; i < propertyCount; ++i) - [self addSelectorsForDynamicProperty:properties[i] toDictionary:result]; - free(properties); - return result; -} - -+ (void)addSelectorsForDynamicProperty:(objc_property_t)aProperty - toDictionary:(NSMutableDictionary *)dict -{ - BOOL isDynamic = [self isAttributeSet:"D" onProperty:aProperty]; - if (isDynamic) - [self addSelectorsForProperty:aProperty toDictionary:dict]; -} - -+ (BOOL)isAttributeSet:(const char *)attributeName onProperty:(objc_property_t)aProperty -{ - char *attributeValue = property_copyAttributeValue(aProperty, attributeName); - BOOL isSet = attributeValue != 0; - free(attributeValue); - return isSet; -} - -+ (NSString *)attributeNamed:(const char *)attributeName onProperty:(objc_property_t)aProperty -{ - NSString *attributeString; - char *attributeValue = property_copyAttributeValue(aProperty, attributeName); - if (attributeValue) - attributeString = [NSString stringWithUTF8String:attributeValue]; - free(attributeValue); - return attributeString; -} - -+ (void)addSelectorsForProperty:(objc_property_t)aProperty - toDictionary:(NSMutableDictionary *)dict -{ - dict[ [self getterNameForProperty:aProperty] ] = [self getterSignatureForProperty:aProperty]; - BOOL isReadonly = [self isAttributeSet:"R" onProperty:aProperty]; - if (!isReadonly) - dict[ [self setterNameForProperty:aProperty] ] = [self setterSignatureForProperty:aProperty]; -} - -+ (NSString *)getterNameForProperty:(objc_property_t)aProperty -{ - NSString *name = [self customGetterNameForProperty:aProperty]; - if (name) - return name; - return [self standardGetterNameForProperty:aProperty]; -} - -+ (NSString *)customGetterNameForProperty:(objc_property_t)aProperty -{ - return [self attributeNamed:"G" onProperty:aProperty]; -} - -+ (NSString *)standardGetterNameForProperty:(objc_property_t)aProperty -{ - return [NSString stringWithUTF8String:property_getName(aProperty)]; -} - -+ (NSString *)setterNameForProperty:(objc_property_t)aProperty -{ - NSString *name = [self customSetterNameForProperty:aProperty]; - if (name) - return name; - return [self standardSetterNameForProperty:aProperty]; -} - -+ (NSString *)customSetterNameForProperty:(objc_property_t)aProperty -{ - return [self attributeNamed:"S" onProperty:aProperty]; -} - -+ (NSString *)standardSetterNameForProperty:(objc_property_t)aProperty -{ - NSString *propertyName = [NSString stringWithUTF8String:property_getName(aProperty)]; - NSString *capitalizedFirstCharacter = [[propertyName substringToIndex:1] uppercaseString]; - NSString *capitalizedPropertyName = [propertyName stringByReplacingCharactersInRange:NSMakeRange(0, 1) - withString:capitalizedFirstCharacter]; - return [NSString stringWithFormat:@"set%@:", capitalizedPropertyName]; -} - -+ (NSMethodSignature *)getterSignatureForProperty:(objc_property_t)aProperty -{ - return [self signatureWithFormat:@"%@@:" forProperty:aProperty]; -} - -+ (NSMethodSignature *)setterSignatureForProperty:(objc_property_t)aProperty -{ - return [self signatureWithFormat:@"v@:%@" forProperty:aProperty]; -} - -+ (NSMethodSignature *)signatureWithFormat:(NSString *)format forProperty:(objc_property_t)aProperty -{ - NSString *signatureTypes = [NSString stringWithFormat:format, [self propertyType:aProperty]]; - return [NSMethodSignature signatureWithObjCTypes:[signatureTypes UTF8String]]; -} - -+ (NSString *)propertyType:(objc_property_t)aProperty -{ - return [self attributeNamed:"T" onProperty:aProperty]; -} - -- (instancetype)initWithClass:(Class)aClass -{ - self = [super init]; - if (self) - _selectorToSignature = [[[self class] dynamicPropertySelectorsForClass:aClass] copy]; - return self; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector -{ - return self.selectorToSignature[ NSStringFromSelector(aSelector) ]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.h deleted file mode 100644 index 5d35980..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.h +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Kevin Lundberg - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Mock object of a given class that also implements a given protocol. - */ -@interface MKTObjectAndProtocolMock : MKTProtocolMock - -- (instancetype)initWithClass:(Class)aClass protocol:(Protocol *)protocol NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithProtocol:(Protocol *)aProtocol - includeOptionalMethods:(BOOL)includeOptionalMethods NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.m deleted file mode 100644 index 0b1b83d..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectAndProtocolMock.m +++ /dev/null @@ -1,61 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Kevin Lundberg - -#import "MKTObjectAndProtocolMock.h" - -#import "MKTDynamicProperties.h" -#import - - -@interface MKTObjectAndProtocolMock () -@property (nonatomic, strong, readonly) Class mockedClass; -@property (nonatomic, strong, readonly) MKTDynamicProperties *dynamicProperties; -@end - -@implementation MKTObjectAndProtocolMock - -- (instancetype)initWithClass:(Class)aClass protocol:(Protocol *)protocol -{ - self = [super initWithProtocol:protocol includeOptionalMethods:YES]; - if (self) - { - _mockedClass = aClass; - _dynamicProperties = [[MKTDynamicProperties alloc] initWithClass:aClass]; - } - return self; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"mock object of %@ implementing %@ protocol", - NSStringFromClass(self.mockedClass), NSStringFromProtocol(self.mockedProtocol)]; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector -{ - NSMethodSignature *dynamicPropertySignature = [self.dynamicProperties methodSignatureForSelector:aSelector]; - if (dynamicPropertySignature) - return dynamicPropertySignature; - NSMethodSignature *signature = [self.mockedClass instanceMethodSignatureForSelector:aSelector]; - if (signature) - return signature; - return [super methodSignatureForSelector:aSelector]; -} - - -#pragma mark - NSObject protocol - -- (BOOL)isKindOfClass:(Class)aClass -{ - return [self.mockedClass isSubclassOfClass:aClass]; -} - -- (BOOL)respondsToSelector:(SEL)aSelector -{ - return [self.dynamicProperties methodSignatureForSelector:aSelector] || - [self.mockedClass instancesRespondToSelector:aSelector] || - [super respondsToSelector:aSelector]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.h deleted file mode 100644 index fc75c22..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTBaseMockObject.h" - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Mock object of a given class. - */ -@interface MKTObjectMock : MKTBaseMockObject - -- (instancetype)initWithClass:(Class)aClass NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.m deleted file mode 100644 index fbe329c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTObjectMock.m +++ /dev/null @@ -1,54 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTObjectMock.h" - -#import "MKTDynamicProperties.h" - - -@interface MKTObjectMock () -@property (nonatomic, strong, readonly) Class mockedClass; -@property (nonatomic, strong, readonly) MKTDynamicProperties *dynamicProperties; -@end - -@implementation MKTObjectMock - -- (instancetype)initWithClass:(Class)aClass -{ - self = [super init]; - if (self) - { - _mockedClass = aClass; - _dynamicProperties = [[MKTDynamicProperties alloc] initWithClass:aClass]; - } - return self; -} - -- (NSString *)description -{ - return [@"mock object of " stringByAppendingString:NSStringFromClass(self.mockedClass)]; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector -{ - NSMethodSignature *dynamicPropertySignature = [self.dynamicProperties methodSignatureForSelector:aSelector]; - if (dynamicPropertySignature) - return dynamicPropertySignature; - return [self.mockedClass instanceMethodSignatureForSelector:aSelector]; -} - - -#pragma mark - NSObject protocol - -- (BOOL)isKindOfClass:(Class)aClass -{ - return [self.mockedClass isSubclassOfClass:aClass]; -} - -- (BOOL)respondsToSelector:(SEL)aSelector -{ - return [self.dynamicProperties methodSignatureForSelector:aSelector] || - [self.mockedClass instancesRespondToSelector:aSelector]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.h deleted file mode 100644 index 5329355..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.h +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Mock object implementing a given protocol. - */ -@interface MKTProtocolMock : MKTBaseMockObject - -@property (nonatomic, strong, readonly) Protocol *mockedProtocol; - -- (instancetype)initWithProtocol:(Protocol *)aProtocol - includeOptionalMethods:(BOOL)includeOptionalMethods NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.m deleted file mode 100644 index 7999f01..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTProtocolMock.m +++ /dev/null @@ -1,68 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTProtocolMock.h" - -#import - - -@interface MKTProtocolMock () -@property (nonatomic, assign, readonly) BOOL includeOptionalMethods; -@end - -@implementation MKTProtocolMock - -- (instancetype)initWithProtocol:(Protocol *)aProtocol - includeOptionalMethods:(BOOL)includeOptionalMethods -{ - self = [super init]; - if (self) - { - _mockedProtocol = aProtocol; - _includeOptionalMethods = includeOptionalMethods; - } - return self; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"mock implementer of %@ protocol", - NSStringFromProtocol(self.mockedProtocol)]; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector -{ - struct objc_method_description methodDescription = - protocol_getMethodDescription(self.mockedProtocol, aSelector, YES, YES); - if (!methodDescription.name && self.includeOptionalMethods) - methodDescription = protocol_getMethodDescription(self.mockedProtocol, aSelector, NO, YES); - if (!methodDescription.name) - methodDescription = protocol_getMethodDescription(self.mockedProtocol, aSelector, YES, NO); - if (!methodDescription.name && self.includeOptionalMethods) - methodDescription = protocol_getMethodDescription(self.mockedProtocol, aSelector, NO, NO); - if (!methodDescription.name) - return nil; - return [NSMethodSignature signatureWithObjCTypes:methodDescription.types]; -} - -#pragma mark - NSObject protocol - -- (BOOL)conformsToProtocol:(Protocol *)aProtocol -{ - return protocol_conformsToProtocol(self.mockedProtocol, aProtocol); -} - -- (BOOL)respondsToSelector:(SEL)aSelector -{ - return [self methodSignatureForSelector:aSelector] != nil; -} - -#pragma mark - Support being called as isEqual: argument - -- (BOOL)isNSArray__ { return NO; } -- (BOOL)isNSData__ { return NO; } -- (BOOL)isNSDictionary__ { return NO; } -- (BOOL)isNSNumber__ { return NO; } -- (BOOL)isNSString__ { return NO; } - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.h b/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.h deleted file mode 100644 index 654d6ed..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.h +++ /dev/null @@ -1,21 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Igor Sales - -#import - -@class MKTClassObjectMock; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTSingletonSwizzler : NSObject - -- (instancetype)initWithMock:(MKTClassObjectMock *)classMock NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (void)swizzleSingletonAtSelector:(SEL)singletonSelector; -- (void)unswizzleSingletonsForMock; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.m b/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.m deleted file mode 100644 index be6e420..0000000 --- a/Pods/OCMockito/Source/OCMockito/Mocking/MKTSingletonSwizzler.m +++ /dev/null @@ -1,144 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Igor Sales - -#import "MKTSingletonSwizzler.h" - -#import "MKTClassObjectMock.h" -#import - -@class MKTSingletonMapEntry; - -static NSMutableDictionary *singletonMap = nil; - -static NSString *singletonKey(Class aClass, SEL aSelector) -{ - return [NSString stringWithFormat:@"%@-%@", aClass, NSStringFromSelector(aSelector)]; -} - - -@interface MKTSingletonMapEntry : NSObject -@property (nonatomic, weak, readonly) MKTClassObjectMock *mock; -@property (nonatomic, assign, readonly) void *mockPtr; -@property (nonatomic, weak, readonly) Class mockedClass; -@property (nonatomic, assign, readonly) IMP oldIMP; -@property (nonatomic, assign, readonly) SEL selector; -@end - -@implementation MKTSingletonMapEntry - -- (instancetype)initWithMock:(MKTClassObjectMock *)mock IMP:(IMP)oldIMP selector:(SEL)aSelector -{ - self = [super init]; - if (self) - { - _mock = mock; - _mockPtr = (__bridge void *)mock; - _mockedClass = mock.mockedClass; - _oldIMP = oldIMP; - _selector = aSelector; - } - return self; -} - -- (BOOL)isForMockPtr:(void *)theMockPtr -{ - // We use the mockPtr as the tag to the mock, since the mock can be nullified - // when dealloc is called. The ptr here works as a unique tag to the mock. - return _mockPtr == theMockPtr; -} - -- (void)unswizzleSingleton -{ - Method originalMethod = class_getClassMethod(self.mockedClass, self.selector); - method_setImplementation(originalMethod, self.oldIMP); -} - -@end - - -@interface MKTSingletonSwizzler () -@property (nonatomic, weak) MKTClassObjectMock *classMock; -@property (nonatomic, assign) void *classMockPtr; -@end - -@implementation MKTSingletonSwizzler - -+ (void)initialize -{ - if (!singletonMap) - singletonMap = [[NSMutableDictionary alloc] init]; -} - -+ (id)mockSingleton -{ - MKTSingletonMapEntry *singleton = singletonMap[singletonKey(self, _cmd)]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - return [singleton.mock performSelector:_cmd withObject:nil]; -#pragma clang diagnostic pop -} - -- (instancetype)initWithMock:(MKTClassObjectMock *)classMock -{ - self = [super init]; - if (self) - { - _classMock = classMock; - _classMockPtr = (__bridge void *)classMock; - } - return self; -} - -- (void)dealloc -{ - [self unswizzleSingletonsForMock]; -} - -- (void)swizzleSingletonAtSelector:(SEL)singletonSelector -{ - MKTClassObjectMock *theMock = self.classMock; - IMP oldIMP = [self swizzleSingleton:singletonSelector forMock:theMock]; - [self registerSingleton:singletonSelector forMock:theMock oldIMP:oldIMP]; -} - -- (IMP)swizzleSingleton:(SEL)singletonSelector forMock:(MKTClassObjectMock *)theMock -{ - Method oldMethod = class_getClassMethod(theMock.mockedClass, singletonSelector); - Method newMethod = class_getClassMethod([self class], @selector(mockSingleton)); - IMP newIMP = method_getImplementation(newMethod); - return method_setImplementation(oldMethod, newIMP); -} - -- (void)registerSingleton:(SEL)singletonSelector - forMock:(MKTClassObjectMock *)theMock - oldIMP:(IMP)oldIMP -{ - NSString *key = singletonKey(theMock.mockedClass, singletonSelector); - MKTSingletonMapEntry *existingSingleton = singletonMap[key]; - if (existingSingleton) - oldIMP = existingSingleton.oldIMP; - singletonMap[key] = [[MKTSingletonMapEntry alloc] initWithMock:theMock - IMP:oldIMP - selector:singletonSelector]; -} - -- (void)unswizzleSingletonsForMock -{ - void *theMockPtr = self.classMockPtr; - NSMutableArray *keysToRemove = [[NSMutableArray alloc] init]; - - [singletonMap enumerateKeysAndObjectsUsingBlock:^(NSString *key, - MKTSingletonMapEntry *swizzled, - BOOL *stop) { - if ([swizzled isForMockPtr:theMockPtr]) - { - [swizzled unswizzleSingleton]; - [keysToRemove addObject:key]; - } - }]; - - [singletonMap removeObjectsForKeys:keysToRemove]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTAnswer.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTAnswer.h deleted file mode 100644 index bff0c35..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTAnswer.h +++ /dev/null @@ -1,24 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Specifies an action that is executed and a return value that is returned when you - * interact with the mock. - */ -@protocol MKTAnswer - -/*! - * @abstract Answer a particular invocation. - * @param invocation Method invocation to answer. - * @return The value to be returned. - */ -- (nullable id)answerInvocation:(NSInvocation *)invocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.h deleted file mode 100644 index 5cb7904..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTAnswer.h" - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Method answer that executes a block. - */ -@interface MKTExecutesBlock : NSObject - -- (instancetype)initWithBlock:(id (^)(NSInvocation *))block NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.m deleted file mode 100644 index e3816e8..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTExecutesBlock.m +++ /dev/null @@ -1,26 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTExecutesBlock.h" - - -@interface MKTExecutesBlock () -@property (nonatomic, copy, readonly) id (^block)(NSInvocation *); -@end - -@implementation MKTExecutesBlock - -- (instancetype)initWithBlock:(id (^)(NSInvocation *))block -{ - self = [super init]; - if (self) - _block = [block copy]; - return self; -} - -- (nullable id)answerInvocation:(NSInvocation *)invocation -{ - return self.block(invocation); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.h deleted file mode 100644 index 6b5137a..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.h +++ /dev/null @@ -1,28 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTInvocation; -@class MKTInvocationMatcher; -@class MKTStubbedInvocationMatcher; -@protocol HCMatcher; -@protocol MKTAnswer; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTInvocationContainer : NSObject - -@property (nonatomic, copy, readonly) NSArray *registeredInvocations; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (void)setInvocationForPotentialStubbing:(NSInvocation *)invocation; -- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex; -- (void)addAnswer:(id )answer; -- (nullable MKTStubbedInvocationMatcher *)findAnswerFor:(NSInvocation *)invocation; -- (BOOL)isStubbingCopyMethod; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.m deleted file mode 100644 index a18cd8e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTInvocationContainer.m +++ /dev/null @@ -1,74 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationContainer.h" - -#import "MKTStubbedInvocationMatcher.h" -#import "NSInvocation+OCMockito.h" -#import "MKTInvocation.h" - - -@interface MKTInvocationContainer () -@property (nonatomic, strong, readonly) NSMutableArray *mutableRegisteredInvocations; -@property (nonatomic, strong) MKTStubbedInvocationMatcher *invocationForStubbing; -@property (nonatomic, strong, readonly) NSMutableArray *stubbed; -@end - -@implementation MKTInvocationContainer - - -- (instancetype)init -{ - self = [super init]; - if (self) - { - _mutableRegisteredInvocations = [[NSMutableArray alloc] init]; - _stubbed = [[NSMutableArray alloc] init]; - } - return self; -} - -- (NSArray *)registeredInvocations -{ - return self.mutableRegisteredInvocations; -} - -- (void)setInvocationForPotentialStubbing:(NSInvocation *)invocation -{ - [invocation mkt_retainArgumentsWithWeakTarget]; - MKTInvocation *wrappedInvocation = [[MKTInvocation alloc] initWithInvocation:invocation]; - [self.mutableRegisteredInvocations addObject:wrappedInvocation]; - - MKTStubbedInvocationMatcher *s = [[MKTStubbedInvocationMatcher alloc] init]; - [s setExpectedInvocation:invocation]; - self.invocationForStubbing = s; -} - -- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex -{ - [self.invocationForStubbing setMatcher:matcher atIndex:argumentIndex]; -} - -- (void)addAnswer:(id )answer -{ - [self.mutableRegisteredInvocations removeLastObject]; - - [self.invocationForStubbing addAnswer:answer]; - [self.stubbed insertObject:self.invocationForStubbing atIndex:0]; -} - -- (nullable MKTStubbedInvocationMatcher *)findAnswerFor:(NSInvocation *)invocation -{ - for (MKTStubbedInvocationMatcher *s in [self.stubbed copy]) - if ([s matches:invocation]) - return s; - return nil; -} - -- (BOOL)isStubbingCopyMethod -{ - return self.registeredInvocations.count > 0 && - [self.registeredInvocations[0] invocation].selector == @selector(copy); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.h deleted file mode 100644 index 9771680..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.h +++ /dev/null @@ -1,152 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import -#import "MKTNonObjectArgumentMatching.h" - -@class MKTInvocationContainer; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Methods to invoke on given(methodCall) to stub return values or behaviors. - * @discussion The methods return self to allow stubbing consecutive calls. The last - * stub determines the behavior of further consecutive calls. - */ -@interface MKTOngoingStubbing : NSObject - -- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -/*! - * @abstract Sets an object to return when the method is called. - * @discussion Example: - *
[given([mock someMethod]) willReturn:@"FOO"];
- * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturn:(nullable id)object; - -/*! - * @abstract Sets a struct to return when the method is called. - * @param value Pointer to struct. - * @param type \@encode() compiler directive called on the struct. - * @discussion - * Example: - *
[given([mock someMethod]) willReturnStruct:&myStruct objCType:\@encode(MyStructType)];
- * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnStruct:(const void *)value objCType:(const char *)type; - -/*! - * @abstract Sets a BOOL to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnBool:(BOOL)value; - -/*! - * @abstract Sets a char to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnChar:(char)value; - -/*! - * @abstract Sets an int to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnInt:(int)value; - -/*! - * @abstract Sets a short to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnShort:(short)value; - -/*! - * @abstract Sets a long to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnLong:(long)value; - -/*! - * @abstract Sets a long long to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnLongLong:(long long)value; - -/*! - * @abstract Sets an NSInteger to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value; - -/*! - * @abstract Sets an unsigned char to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value; - -/*! - * @abstract Sets an unsigned int to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value; - -/*! - * @abstract Sets an unsigned short to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value; - -/*! - * @abstract Sets an unsigned long to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value; - -/*! - * @abstract Sets an unsigned long long to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value; - -/*! - * @abstract Sets an NSUInteger to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value; - -/*! - * @abstract Sets a float to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnFloat:(float)value; - -/*! - * @abstract Sets a double to return when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willReturnDouble:(double)value; - -/*! - * @abstract Sets an NSException to be thrown when the method is called. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - * @discussion - * Example: - *
[given([mock someMethod]) willThrow:exception];
- */ -- (MKTOngoingStubbing *)willThrow:(NSException *)exception; - -/*! - * @abstract Sets a block to be executed when the method is called. - * @discussion The block is evaluated when the method is called. The block can easily access - * invocation arguments by calling mkt_arguments. Whatever the block returns will be - * used as the stubbed return value. - * @return MKTOngoingStubbing object to allow stubbing consecutive calls - */ -- (MKTOngoingStubbing *)willDo:(id (^)(NSInvocation *))block; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.m deleted file mode 100644 index 942cd16..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTOngoingStubbing.m +++ /dev/null @@ -1,180 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import -#import "MKTOngoingStubbing.h" - -#import "MKTBaseMockObject.h" -#import "MKTInvocationContainer.h" -#import "MKTReturnsValue.h" -#import "MKTThrowsException.h" -#import "MKTExecutesBlock.h" - - -@interface MKTOngoingStubbing () -@property (nonatomic, strong, readonly) MKTInvocationContainer *invocationContainer; -@end - -@implementation MKTOngoingStubbing - -- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer -{ - self = [super init]; - if (self) - _invocationContainer = invocationContainer; - return self; -} - -- (MKTOngoingStubbing *)willReturn:(nullable id)object -{ - // Workaround for over-releasing mock object that is stubbed as return value for copy method. - if (self.invocationContainer.isStubbingCopyMethod && [MKTBaseMockObject isMockObject:object]) - CFBridgingRetain(object); - - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:object]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnStruct:(const void *)value objCType:(const char *)type -{ - NSValue *answer = [NSValue valueWithBytes:value objCType:type]; - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:answer]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnBool:(BOOL)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnChar:(char)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnInt:(int)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnShort:(short)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnLong:(long)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnLongLong:(long long)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnFloat:(float)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willReturnDouble:(double)value -{ - MKTReturnsValue *returnsValue = [[MKTReturnsValue alloc] initWithValue:@(value)]; - [self.invocationContainer addAnswer:returnsValue]; - return self; -} - -- (MKTOngoingStubbing *)willThrow:(NSException *)exception -{ - MKTThrowsException *throwsException = [[MKTThrowsException alloc] initWithException:exception]; - [self.invocationContainer addAnswer:throwsException]; - return self; -} - -- (MKTOngoingStubbing *)willDo:(id (^)(NSInvocation *))block -{ - MKTExecutesBlock *executesBlock = [[MKTExecutesBlock alloc] initWithBlock:block]; - [self.invocationContainer addAnswer:executesBlock]; - return self; -} - - -#pragma mark - MKTNonObjectArgumentMatching - -- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index -{ - [self.invocationContainer setMatcher:matcher atIndex:index]; - return self; -} - -- (id)withMatcher:(id )matcher -{ - return [self withMatcher:matcher forArgument:0]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.h deleted file mode 100644 index eddf1ad..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTAnswer.h" - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Method answer that returns a value. - */ -@interface MKTReturnsValue : NSObject - -- (instancetype)initWithValue:(nullable id)value NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.m deleted file mode 100644 index e0912dd..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTReturnsValue.m +++ /dev/null @@ -1,26 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTReturnsValue.h" - - -@interface MKTReturnsValue () -@property (nullable, nonatomic, strong, readonly) id value; -@end - -@implementation MKTReturnsValue - -- (instancetype)initWithValue:(nullable id)value -{ - self = [super init]; - if (self) - _value = value; - return self; -} - -- (nullable id)answerInvocation:(NSInvocation *)invocation -{ - return self.value; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.h deleted file mode 100644 index fc11383..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationMatcher.h" -#import "MKTAnswer.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTStubbedInvocationMatcher : MKTInvocationMatcher - -- (void)addAnswer:(id )answer; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.m deleted file mode 100644 index f2396de..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.m +++ /dev/null @@ -1,36 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTStubbedInvocationMatcher.h" - - -@interface MKTStubbedInvocationMatcher () -@property (nonatomic, copy, readonly) NSMutableArray> *answers; -@property (nonatomic, assign) NSUInteger index; -@end - -@implementation MKTStubbedInvocationMatcher - -- (instancetype)init -{ - self = [super init]; - if (self) - _answers = [[NSMutableArray alloc] init]; - return self; -} - -- (void)addAnswer:(id )answer -{ - [self.answers addObject:answer]; -} - -- (nullable id)answerInvocation:(NSInvocation *)invocation -{ - id a = self.answers[self.index]; - NSUInteger bumpedIndex = self.index + 1; - if (bumpedIndex < self.answers.count) - self.index = bumpedIndex; - return [a answerInvocation:invocation]; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.h b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.h deleted file mode 100644 index d0f88e3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.h +++ /dev/null @@ -1,19 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTAnswer.h" - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Method answer that throws an exception. - */ -@interface MKTThrowsException : NSObject - -- (instancetype)initWithException:(NSException *)exception NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.m b/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.m deleted file mode 100644 index d678d90..0000000 --- a/Pods/OCMockito/Source/OCMockito/Stubbing/MKTThrowsException.m +++ /dev/null @@ -1,27 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTThrowsException.h" - - -@interface MKTThrowsException () -@property (nonatomic, strong, readonly) NSException *exception; -@end - -@implementation MKTThrowsException - -- (instancetype)initWithException:(NSException *)exception -{ - self = [super init]; - if (self) - _exception = exception; - return self; -} - -- (nullable id)answerInvocation:(NSInvocation *)invocation -{ - [self.exception raise]; - return nil; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.h deleted file mode 100644 index ba656ea..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.h +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationsChecker.h" - -@class MKTInvocation; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTAtLeastNumberOfInvocationsChecker : MKTInvocationsChecker - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription NS_UNAVAILABLE; -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.m deleted file mode 100644 index 30d6dbd..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.m +++ /dev/null @@ -1,29 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTAtLeastNumberOfInvocationsChecker.h" - -#import "MKTMatchingInvocationsFinder.h" - - -@implementation MKTAtLeastNumberOfInvocationsChecker - -- (instancetype)init -{ - self = [super initWithWantedDescription:@"Wanted at least"]; - return self; -} - -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount -{ - [self.invocationsFinder findInvocationsInList:invocations matching:wanted]; - NSUInteger actualCount = self.invocationsFinder.count; - NSString *description; - if (wantedCount > actualCount) - description = [self tooLittleActual:actualCount wantedCount:wantedCount]; - return description; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.h deleted file mode 100644 index a2104b1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.h +++ /dev/null @@ -1,18 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Markus Gasser - -#import -#import "MKTVerificationMode.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTAtLeastTimes : NSObject - -- (instancetype)initWithMinimumCount:(NSUInteger)minNumberOfInvocations NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.m deleted file mode 100644 index a4473f3..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtLeastTimes.m +++ /dev/null @@ -1,38 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Markus Gasser - -#import "MKTAtLeastTimes.h" - -#import "MKTAtLeastNumberOfInvocationsChecker.h" -#import "MKTVerificationData.h" - - -@interface MKTAtLeastTimes () -@property (nonatomic, assign, readonly) NSUInteger wantedCount; -@end - -@implementation MKTAtLeastTimes - -- (instancetype)initWithMinimumCount:(NSUInteger)minNumberOfInvocations -{ - self = [super init]; - if (self) - _wantedCount = minNumberOfInvocations; - return self; -} - - -#pragma mark - MKTVerificationMode - -- (void)verifyData:(MKTVerificationData *)data testLocation:(MKTTestLocation)testLocation -{ - MKTAtLeastNumberOfInvocationsChecker *checker = [[MKTAtLeastNumberOfInvocationsChecker alloc] init]; - NSString *failureDescription = [checker checkInvocations:data.invocations - wanted:data.wanted - wantedCount:self.wantedCount]; - if (failureDescription) - MKTFailTestLocation(testLocation, failureDescription); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.h deleted file mode 100644 index 3f49bd1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.h +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationsChecker.h" - -@class MKTInvocation; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTAtMostNumberOfInvocationsChecker : MKTInvocationsChecker - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription NS_UNAVAILABLE; -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.m deleted file mode 100644 index 01397cf..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.m +++ /dev/null @@ -1,31 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTAtMostNumberOfInvocationsChecker.h" - -#import "MKTMatchingInvocationsFinder.h" - - -@implementation MKTAtMostNumberOfInvocationsChecker - -- (instancetype)init -{ - self = [super initWithWantedDescription:@"Wanted at most"]; - return self; -} - -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount -{ - [self.invocationsFinder findInvocationsInList:invocations matching:wanted]; - NSUInteger actualCount = self.invocationsFinder.count; - NSString *description; - if (wantedCount == 0 && actualCount > 0) - description = [self neverWantedButActual:actualCount]; - else if (wantedCount < actualCount) - description = [self tooManyActual:actualCount wantedCount:wantedCount]; - return description; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.h deleted file mode 100644 index 11fbba6..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.h +++ /dev/null @@ -1,18 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Emile Cantin - -#import -#import "MKTVerificationMode.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTAtMostTimes : NSObject - -- (instancetype)initWithMaximumCount:(NSUInteger)maxNumberOfInvocations NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.m deleted file mode 100644 index 6e812c1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTAtMostTimes.m +++ /dev/null @@ -1,38 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt -// Contribution by Emile Cantin - -#import "MKTAtMostTimes.h" - -#import "MKTAtMostNumberOfInvocationsChecker.h" -#import "MKTVerificationData.h" - - -@interface MKTAtMostTimes () -@property (nonatomic, assign, readonly) NSUInteger wantedCount; -@end - -@implementation MKTAtMostTimes - -- (instancetype)initWithMaximumCount:(NSUInteger)maxNumberOfInvocations -{ - self = [super init]; - if (self) - _wantedCount = maxNumberOfInvocations; - return self; -} - - -#pragma mark - MKTVerificationMode - -- (void)verifyData:(MKTVerificationData *)data testLocation:(MKTTestLocation)testLocation -{ - MKTAtMostNumberOfInvocationsChecker *checker = [[MKTAtMostNumberOfInvocationsChecker alloc] init]; - NSString *failureDescription = [checker checkInvocations:data.invocations - wanted:data.wanted - wantedCount:self.wantedCount]; - if (failureDescription) - MKTFailTestLocation(testLocation, failureDescription); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.h deleted file mode 100644 index 2da4e5c..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.h +++ /dev/null @@ -1,17 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import -#import "MKTVerificationMode.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTExactTimes : NSObject - -- (instancetype)initWithCount:(NSUInteger)wantedNumberOfInvocations NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.m deleted file mode 100644 index 67a9145..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTExactTimes.m +++ /dev/null @@ -1,50 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTExactTimes.h" - -#import "MKTInvocationMatcher.h" -#import "MKTNumberOfInvocationsChecker.h" -#import "MKTVerificationData.h" -#import "MKTMissingInvocationChecker.h" - - -@interface MKTExactTimes () -@property (nonatomic, assign, readonly) NSUInteger wantedCount; -@end - -@implementation MKTExactTimes - -- (instancetype)initWithCount:(NSUInteger)wantedNumberOfInvocations -{ - self = [super init]; - if (self) - _wantedCount = wantedNumberOfInvocations; - return self; -} - - -#pragma mark - MKTVerificationMode - -- (void)verifyData:(MKTVerificationData *)data testLocation:(MKTTestLocation)testLocation -{ - NSString *failureDescription; - if (self.wantedCount > 0) - { - MKTMissingInvocationChecker *missingInvocation = [[MKTMissingInvocationChecker alloc] init]; - failureDescription = [missingInvocation checkInvocations:data.invocations wanted:data.wanted]; - [data.wanted stopArgumentCapture]; - } - if (!failureDescription) - { - MKTNumberOfInvocationsChecker *numberOfInvocations = [[MKTNumberOfInvocationsChecker alloc] init]; - failureDescription = [numberOfInvocations checkInvocations:data.invocations - wanted:data.wanted - wantedCount:self.wantedCount]; - } - - if (failureDescription) - MKTFailTestLocation(testLocation, failureDescription); -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.h deleted file mode 100644 index 689294b..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.h +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -@class MKTMatchingInvocationsFinder; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTInvocationsChecker : NSObject - -@property (nonatomic, strong) MKTMatchingInvocationsFinder *invocationsFinder; - -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; -- (NSString *)tooLittleActual:(NSUInteger)actualCount wantedCount:(NSUInteger)wantedCount; -- (NSString *)tooManyActual:(NSUInteger)actualCount wantedCount:(NSUInteger)wantedCount; -- (NSString *)neverWantedButActual:(NSUInteger)actualCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.m deleted file mode 100644 index b32c10d..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTInvocationsChecker.m +++ /dev/null @@ -1,84 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTNumberOfInvocationsChecker.h" - -#import "MKTMatchingInvocationsFinder.h" -#import "MKTLocation.h" - - -@interface MKTInvocationsChecker () -@property (nonatomic, copy) NSString *wantedDescription; -@end - -@implementation MKTInvocationsChecker - -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription -{ - self = [super init]; - if (self) - self.wantedDescription = [wantedDescription copy]; - return self; -} - -- (MKTMatchingInvocationsFinder *)invocationsFinder -{ - if (!_invocationsFinder) - _invocationsFinder = [[MKTMatchingInvocationsFinder alloc] init]; - return _invocationsFinder; -} - -- (NSString *)tooLittleActual:(NSUInteger)actualCount wantedCount:(NSUInteger)wantedCount -{ - NSString *problem = [self describeWanted:wantedCount butWasCalled:actualCount]; - MKTLocation *location = [self.invocationsFinder locationOfLastInvocation]; - return [self joinProblem:problem location:location locationLabel:@"Last invocation:"]; -} - -- (NSString *)tooManyActual:(NSUInteger)actualCount wantedCount:(NSUInteger)wantedCount -{ - NSString *problem = [self describeWanted:wantedCount butWasCalled:actualCount]; - MKTLocation *location = [self.invocationsFinder locationOfInvocationAtIndex:wantedCount]; - return [self joinProblem:problem location:location locationLabel:@"Undesired invocation:"]; -} - -- (NSString *)neverWantedButActual:(NSUInteger)actualCount -{ - NSString *problem = [self describeNeverWantedButWasCalled:actualCount]; - MKTLocation *location = [self.invocationsFinder locationOfInvocationAtIndex:0]; - return [self joinProblem:problem location:location locationLabel:@"Undesired invocation:"]; -} - -- (NSString *)describeWanted:(NSUInteger)wantedCount butWasCalled:(NSUInteger)actualCount -{ - return [NSString stringWithFormat:@"%@ %@ but was called %@.", - [self wantedDescription], - [self pluralizeTimes:wantedCount], - [self pluralizeTimes:actualCount]]; -} - -- (NSString *)describeNeverWantedButWasCalled:(NSUInteger)actualCount -{ - return [NSString stringWithFormat:@"Never wanted but was called %@.", - [self pluralizeTimes:actualCount]]; -} - -- (NSString *)pluralizeTimes:(NSUInteger)count -{ - return count == 1 ? @"1 time" : [NSString stringWithFormat:@"%lu times", (unsigned long)count]; -} - -- (NSString *)joinProblem:(NSString *)problem - location:(MKTLocation *)location - locationLabel:(NSString *)locationLabel -{ - if (!location) - return problem; - else - { - NSString *report = [problem stringByAppendingFormat:@" %@\n", locationLabel]; - return [report stringByAppendingString:location.description]; - } -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.h deleted file mode 100644 index b826a72..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.h +++ /dev/null @@ -1,23 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationsChecker.h" - -@class MKTInvocation; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTMissingInvocationChecker : MKTInvocationsChecker - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription NS_UNAVAILABLE; -- (nullable NSString *)checkInvocations:(NSArray *)invocations wanted:(MKTInvocationMatcher *)wanted; - -@end - - -MKTInvocation *MKTFindSimilarInvocation(NSArray *invocations, MKTInvocationMatcher *wanted); - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.m deleted file mode 100644 index d18b2da..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTMissingInvocationChecker.m +++ /dev/null @@ -1,91 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTMissingInvocationChecker.h" - -#import "MKTInvocation.h" -#import "MKTInvocationMatcher.h" -#import "MKTLocation.h" -#import "MKTMatchingInvocationsFinder.h" -#import "MKTPrinter.h" - - -@implementation MKTMissingInvocationChecker - -- (instancetype)init -{ - self = [super initWithWantedDescription:@"Missing"]; - return self; -} - -- (nullable NSString *)checkInvocations:(NSArray *)invocations wanted:(MKTInvocationMatcher *)wanted -{ - [self.invocationsFinder findInvocationsInList:invocations matching:wanted]; - NSString *description; - if (self.invocationsFinder.count == 0) - { - MKTInvocation *similar = MKTFindSimilarInvocation(invocations, wanted); - if (similar) - description = [self argumentsAreDifferent:similar wanted:wanted]; - else - description = [self wantedButNotInvoked:wanted otherInvocations:invocations]; - } - return description; -} - -- (NSString *)argumentsAreDifferent:(MKTInvocation *)actual wanted:(MKTInvocationMatcher *)wanted -{ - MKTPrinter *printer = [[MKTPrinter alloc] init]; - NSArray *description = @[ - @"Argument(s) are different!", - [@"Wanted: " stringByAppendingString:[printer printMatcher:wanted]], - @"Actual invocation has different arguments:", - [printer printInvocation:actual], - [printer printMismatchOf:actual expectation:wanted], - @"", - actual.location.description, - ]; - return [description componentsJoinedByString:@"\n"]; -} - -- (NSString *)wantedButNotInvoked:(MKTInvocationMatcher *)wanted - otherInvocations:(NSArray *)invocations -{ - MKTPrinter *printer = [[MKTPrinter alloc] init]; - NSMutableArray *description = [@[ - @"Wanted but not invoked:", - [printer printMatcher:wanted], - ] mutableCopy]; - - if (!invocations.count) - [description addObject:@"Actually, there were zero interactions with this mock."]; - else - [self reportOtherInvocations:invocations toDescriptionArray:description]; - - return [description componentsJoinedByString:@"\n"]; -} - -- (void)reportOtherInvocations:(NSArray *)invocations - toDescriptionArray:(NSMutableArray *)description -{ - MKTPrinter *printer = [[MKTPrinter alloc] init]; - [description addObject:@"However, there were other interactions with this mock (✓ means already verified):"]; - for (MKTInvocation *invocation in invocations) - { - [description addObject:@""]; - [description addObject:[printer printInvocation:invocation]]; - [description addObject:invocation.location.description]; - } -} - -@end - - -MKTInvocation *MKTFindSimilarInvocation(NSArray *invocations, MKTInvocationMatcher *wanted) -{ - NSUInteger index = [invocations indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { - MKTInvocation *inv = obj; - return !inv.verified && inv.invocation.selector == wanted.expected.selector; - }]; - return (index == NSNotFound) ? nil : invocations[index]; -} diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.h deleted file mode 100644 index b77c62b..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.h +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTInvocationsChecker.h" - -@class MKTInvocation; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTNumberOfInvocationsChecker : MKTInvocationsChecker - -- (instancetype)init NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithWantedDescription:(NSString *)wantedDescription NS_UNAVAILABLE; -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.m deleted file mode 100644 index 4bb52af..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.m +++ /dev/null @@ -1,35 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTNumberOfInvocationsChecker.h" - -#import "MKTInvocationMatcher.h" -#import "MKTMatchingInvocationsFinder.h" - - -@implementation MKTNumberOfInvocationsChecker - -- (instancetype)init -{ - self = [super initWithWantedDescription:@"Wanted"]; - return self; -} - -- (nullable NSString *)checkInvocations:(NSArray *)invocations - wanted:(MKTInvocationMatcher *)wanted - wantedCount:(NSUInteger)wantedCount -{ - [self.invocationsFinder findInvocationsInList:invocations matching:wanted]; - NSUInteger actualCount = self.invocationsFinder.count; - NSString *description; - if (wantedCount > actualCount) - description = [self tooLittleActual:actualCount wantedCount:wantedCount]; - else if (wantedCount == 0 && actualCount > 0) - description = [self neverWantedButActual:actualCount]; - else if (wantedCount < actualCount) - description = [self tooManyActual:actualCount wantedCount:wantedCount]; - [self.invocationsFinder markInvocationsAsVerified]; - return description; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.h deleted file mode 100644 index 1385c2e..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.h +++ /dev/null @@ -1,26 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import - -#import "MKTTestLocation.h" - -@class MKTInvocation; -@class MKTInvocationContainer; -@class MKTInvocationMatcher; - - -NS_ASSUME_NONNULL_BEGIN - -@interface MKTVerificationData : NSObject - -@property (nonatomic, copy, readonly) NSArray *invocations; -@property (nonatomic, strong, readonly) MKTInvocationMatcher *wanted; - -- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer - invocationMatcher:(MKTInvocationMatcher *)wanted NS_DESIGNATED_INITIALIZER; -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.m b/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.m deleted file mode 100644 index 8264e21..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationData.m +++ /dev/null @@ -1,35 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import "MKTVerificationData.h" - -#import "MKTInvocationContainer.h" - - -@interface MKTVerificationData () -@property (nonatomic, strong, readonly) MKTInvocationContainer *invocationContainer; -@end - - -@implementation MKTVerificationData - -@dynamic invocations; - -- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer - invocationMatcher:(MKTInvocationMatcher *)wanted -{ - self = [super init]; - if (self) - { - _invocationContainer = invocationContainer; - _wanted = wanted; - } - return self; -} - -- (NSArray *)invocations -{ - return self.invocationContainer.registeredInvocations; -} - -@end diff --git a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationMode.h b/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationMode.h deleted file mode 100644 index e4b58a1..0000000 --- a/Pods/OCMockito/Source/OCMockito/Verifying/MKTVerificationMode.h +++ /dev/null @@ -1,22 +0,0 @@ -// OCMockito by Jon Reid, https://qualitycoding.org/ -// Copyright 2020 Quality Coding, Inc. See LICENSE.txt - -#import -#import "MKTTestLocation.h" - -@class MKTVerificationData; - - -NS_ASSUME_NONNULL_BEGIN - -/*! - * @abstract Allows verifying that certain behavior happened at least once / exact number of times / - * never. - */ -@protocol MKTVerificationMode - -- (void)verifyData:(MKTVerificationData *)data testLocation:(MKTTestLocation)testLocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.h b/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.h deleted file mode 100644 index e8a98d7..0000000 --- a/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// TPDWeakProxy.h -// TPDWeakProxy -// -// Copyright 2013 Tetherpad. -// - -#import - -/** - Instances of `TPDWeakProxy` hold a weak reference to the target object. - */ - -@interface MKT_TPDWeakProxy : NSProxy - -/** - Initializes an `TPDWeakProxy` object with the specified target object. - - @param object The target object for the proxy. - - @return The newly initialized proxy. - */ -- (instancetype)initWithObject:(id)object; - -@end diff --git a/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.m b/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.m deleted file mode 100644 index b2f53da..0000000 --- a/Pods/OCMockito/Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// TPDWeakProxy.m -// TPDWeakProxy -// -// Copyright 2013 Tetherpad. -// - -#import "MKT_TPDWeakProxy.h" - -@interface MKT_TPDWeakProxy () - -@property (nonatomic, weak) id theObject; - -@end - -@implementation MKT_TPDWeakProxy - -- (instancetype)initWithObject:(id)object { - // No init method in superclass - self.theObject = object; - return self; -} - -// First, try to use the fast forwarding path. If theObject is nil -// the Objective C runtime will fall back to the older, slow path. This -// speeds up message forwarding performance a lot from tests; it's nearly -// as fast as directly messaging the object. If we return nil (ie, theObject -// has become dereferenced or was nil to begin with), the Objective C runtime -// falls back to the slow forwarding path. -- (id)forwardingTargetForSelector:(SEL)aSelector { - return self.theObject; -} - -// First step of the slow forwarding path is to figure out the method signature. -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { - NSMethodSignature *methodSignature; - // Keep a strong reference so we can safely send messages - id object = self.theObject; - if (object) { - methodSignature = [object methodSignatureForSelector:aSelector]; - } else { - // If obj is nil, we need to synthesize a NSMethodSignature. Smallest signature - // is (self, _cmd) according to the documention for NSMethodSignature. - NSString *types = [NSString stringWithFormat:@"%s%s", @encode(id), @encode(SEL)]; - methodSignature = [NSMethodSignature signatureWithObjCTypes:[types UTF8String]]; - } - return methodSignature; -} - -// The runtime uses the method signature from above to create an NSInvocation and asks us to -// forward it along as we see fit. -- (void)forwardInvocation:(NSInvocation *)anInvocation { - [anInvocation invokeWithTarget:self.theObject]; -} - -@end diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index b2d14c7..0000000 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2393 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 000D6AE9D229BC3F590DD0ADB1980D7A /* HCTestFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C65C64152C04FD20CEF60176C490BB4 /* HCTestFailure.m */; }; - 007CFCACD1DE9E498C1861D1B0C0BD3E /* MKTDoubleReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 458BD2863290A21B82FD7CED07513B56 /* MKTDoubleReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 024B76E463B79D2B3FA07A14997E768D /* HCIs.h in Headers */ = {isa = PBXBuildFile; fileRef = D54441B89453B0E34C285B8D687059F9 /* HCIs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03FB2E02AE2B5D6A43C81A5679248527 /* HCIsEqualIgnoringCase.h in Headers */ = {isa = PBXBuildFile; fileRef = FA04F455620B0CE7ACFA33960D1467D0 /* HCIsEqualIgnoringCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 041B3B24700B7D7C26DB68E5DE980BA6 /* HCReturnValueGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 462CC631461FF0F792689156760B4CFA /* HCReturnValueGetter.m */; }; - 050D6F8B082950B8B7D6F47F329E27E5 /* MKTInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 55D3B5BA02D597325C1B47FC13E4DD62 /* MKTInvocationMatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 053C477676E052053EC59D397E651967 /* HCThrowsException.h in Headers */ = {isa = PBXBuildFile; fileRef = 231441CCBAC14BE463F54A8F059ECBD6 /* HCThrowsException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06FFF54B9956171BD9472D9291423144 /* Pods-MonsterCardsTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 84154B65BFEB374DB9854DC227635944 /* Pods-MonsterCardsTests-dummy.m */; }; - 07ECDC2719E67DD355FB0325627FA7DC /* MKTPrinter.m in Sources */ = {isa = PBXBuildFile; fileRef = 207D144CA82E0A26F82DB0E9EC77D3E5 /* MKTPrinter.m */; }; - 0890F81E354DFE1754875ED86A440E39 /* MKTMissingInvocationChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F3E25D867C0D0F5A09D3154F903EE09 /* MKTMissingInvocationChecker.m */; }; - 08FB169085AC496C67A2824F01448F5C /* HCRunloopRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E0DFD1C1DA3EF7E7A1159BE7112B7E /* HCRunloopRunner.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 09DC129AD1DC0D71C6CB9AFCB0C9F41E /* MKTLongLongReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBC5E7D6E166C07300DC815A802EF4C /* MKTLongLongReturnSetter.m */; }; - 0A8BD5E29B81EF33969F0415DA7ACB7F /* MKTUnsignedIntReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A93CD9BCB843D55CA727E8D320AF65D /* MKTUnsignedIntReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0B4324A994045E035E758562466C1CF5 /* HCWrapInMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2F1271D254511FF8828377A5661BD2 /* HCWrapInMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B5B334011EF1B488EA03CC79A618C17 /* HCIsInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 2752DF9F1761F64AB71B969B0517A87F /* HCIsInstanceOf.m */; }; - 0B6362177CE78E5EC130E18139E24B8B /* HCLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F4468038A53A4E62772D3CE30C169A0 /* HCLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0C0B7EC23570E84975084D3CFA1B3BAD /* MKTUnsignedIntReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 01B75014846B68D5E4FC1E4EC926EF6B /* MKTUnsignedIntReturnSetter.m */; }; - 0D6C006E9856FDFA561540FADEF6FBCA /* HCSenTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = F7E2A688E8857F1B64A972EE63951BF8 /* HCSenTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0EF4B577B19F7EF7A4DAD254CB364CC5 /* HCIsCollectionContainingInAnyOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 40DF8028297082B83984B1BBC81028F4 /* HCIsCollectionContainingInAnyOrder.m */; }; - 10184F01D9DC99F32C4385D01B3D3A15 /* HCTestFailureReporterChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FF893E6E27D0CBC633522E472808186 /* HCTestFailureReporterChain.m */; }; - 11149CCB2A9A50704E02070CF5756C04 /* MKTAtLeastNumberOfInvocationsChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 4920D12A419167DF2D8531ABD0408C61 /* MKTAtLeastNumberOfInvocationsChecker.m */; }; - 1419344017A2CF917B2C4CB1AF57468C /* HCStringContainsInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 85CFD448D9D20C68710FAD8CCA67A71A /* HCStringContainsInOrder.m */; }; - 14DAC98DD61451E4A4A396D16DA8AACE /* MKTMockitoCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 712F548A01DB50EB28795FE309B808B7 /* MKTMockitoCore.m */; }; - 16036080395AA27596094E1032E833C0 /* HCIsNot.m in Sources */ = {isa = PBXBuildFile; fileRef = 7612833D4D9B0694826B1C7DD7B00F67 /* HCIsNot.m */; }; - 16574C1CE1FF653DFC10700594AFF3AD /* HCWrapInMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E2A45A1C15CCE3AD2136871E73C9242 /* HCWrapInMatcher.m */; }; - 16E12F7DED167D441BFFFC1B002F15C4 /* HCUnsignedIntReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E361895501CA52BB097C79F0F4BE0CF /* HCUnsignedIntReturnGetter.m */; }; - 173CE0C56F8C1DDFD1FA6E906B311B10 /* MKTIntArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = D051BD45BE36582FA4E2D7129242385D /* MKTIntArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 19250D4658FAAE01098BF0F9D024408C /* HCConformsToProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BAE999C32491BA132692CE0D32AD26 /* HCConformsToProtocol.m */; }; - 1ADE23BEA27AA947A3B33FD6BDE3799A /* HCOrderingComparison.m in Sources */ = {isa = PBXBuildFile; fileRef = D896C9EEE2A6626F4E6E2A4B1E60C28F /* HCOrderingComparison.m */; }; - 1B1E6CCD7088156EE6D2920649A6E34C /* MKTReturnsValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9E16709A0241EF15E3184FDAA283BD /* MKTReturnsValue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1B61706E9591558F16B03527C02BFF91 /* MKTExecutesBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 558E1ABEFD37DE62DD0154E12F5F137D /* MKTExecutesBlock.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1BDBD560BE2664102CC6F31F4CD4082C /* HCStringDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B34606F998B7575B73A3D15954018F /* HCStringDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C09FD0BF350C2FD844880797FF6CE6C /* MKTClassObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 9394581F1369B80095EBE1419E6069F4 /* MKTClassObjectMock.m */; }; - 1C1CA4744E2842E1EDEAA3C5C9BCAAF3 /* HCStringDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F872B73FCED382A0048C7E512E978FB /* HCStringDescription.m */; }; - 1C91BC105424317143C13B148565BB9D /* MKTObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E505D922B739313AC0C2215D7D81E4D /* MKTObjectMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D05F6683DED2C604FF00FAB992E111B /* MKTInvocationsChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BC22DEB3F87D03E9B03144C593ED633 /* MKTInvocationsChecker.m */; }; - 1D1548B8F214EA762EB426CB349AEEFC /* MKTCharReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BF2F90513A67534C2FE246C03A17258 /* MKTCharReturnSetter.m */; }; - 1E3F280A971FBD6A9CAF3A15143EE6E7 /* MKTAtMostTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = 80D698976F97CA2D552BCDCA05FCCD60 /* MKTAtMostTimes.m */; }; - 1E546795686D6FA2194E6DC1FD6C15E4 /* MKTClassArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FA62431AB0240FF502CA857D80416D6 /* MKTClassArgumentGetter.m */; }; - 1E72B91030D22AAC3BD87BB102494033 /* HCIntReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 957CA7FD5A86036E96B76D8935F0DC5B /* HCIntReturnGetter.m */; }; - 1ED6BADF11E390B9AC5D8D73DD887D60 /* MKTUnsignedCharArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 01DABDA5B4A117EB894E1A7651BBFB1C /* MKTUnsignedCharArgumentGetter.m */; }; - 1F2B66E4B7808A57C91637523D43452C /* HCSelfDescribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7EDB84755BA039B7EB74DB2B177280 /* HCSelfDescribing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F56A53B585C6B67BC069E72589C45BF /* MKTInvocation.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A67A1A44F2960A12360B506A358C52 /* MKTInvocation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 23454080FBB7928B3547BCD0C561F088 /* MKTClassReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 732C09647A1595A77A68B7E771EF2006 /* MKTClassReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 23B08FED481426587D18EAEB44B92E1A /* NSInvocation+OCMockito.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EBDA32FA00ED85D46F2295D74014DA /* NSInvocation+OCMockito.m */; }; - 24ED8A49EE0A0C6D20DD073E0834D9E3 /* HCIsEqualIgnoringCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 07F4BB29822D8B212B182F4B4B03FCD0 /* HCIsEqualIgnoringCase.m */; }; - 2521C50830E7E62A6EB309870963D3BF /* HCDoubleReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9019F0652E4A94C9696DABA14F41A520 /* HCDoubleReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 26381969909F3D73632939D66F249DA2 /* HCUnsignedCharReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = E281B9CD86CE2C3467AE9FB5A3DD9EC3 /* HCUnsignedCharReturnGetter.m */; }; - 26606F306B1109CCB5F87433DB7FA0CF /* HCIsIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A4260D5C243F2A8B09A94F2508498E0 /* HCIsIn.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26975DACB89D02E43C89CDFDE2538A19 /* HCIsCollectionContainingInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8536450243E3C741A2199972639521B7 /* HCIsCollectionContainingInOrder.m */; }; - 26C7860E85997D7D1197607E2277D7D1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */; }; - 274B39E65659441AE99814A8405EABDE /* HCUnsignedLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = A2F9D51794366A72B340EE6DFA57799B /* HCUnsignedLongReturnGetter.m */; }; - 28EEE26BBFCFF822B8A26F1233BE87B1 /* MKTBaseMockObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E55C8F60934B9E3486B5400144D51B87 /* MKTBaseMockObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2911C262344AD0563321F5AC71474213 /* MKTArgumentGetterChain.m in Sources */ = {isa = PBXBuildFile; fileRef = C9C01738313ACD89E9768B737A71D896 /* MKTArgumentGetterChain.m */; }; - 292F0919E2C83D6BC2867842545C257B /* MKTBoolReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CDAA4D816A7367C058B9D5DCE8F668F /* MKTBoolReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2A35381F01D76BF3AF0DC617B447E90E /* NSInvocation+OCHamcrest.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F37A006BF149397DE1FDAF316B7803 /* NSInvocation+OCHamcrest.m */; }; - 2B28295A93B8A50D8D4388B396B3A90F /* MKTUnsignedIntArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 92F55CA5F8286B06B44D09C3FB03A233 /* MKTUnsignedIntArgumentGetter.m */; }; - 2B91F5CC95A53EA986042D1BD3D53185 /* MKTCharArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 62A84E3A6452BF7BCDA4ACC79DF3C44D /* MKTCharArgumentGetter.m */; }; - 2C852CEA74C9330186E553DEBC7250E2 /* HCIsCollectionContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 22DA62B7B321F17AC6E36AF664082E51 /* HCIsCollectionContaining.m */; }; - 2DA738D870214032687E2FDB34A6D880 /* HCMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 60917429A02D22A583C0B23DC95EA619 /* HCMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E33E9C8A54CB5FBA05D5B9C2104211A /* OCHamcrest-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E8294C7DDB7FB24726F50BBB9D28E5A1 /* OCHamcrest-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E505965867024705AA426A062D7FF0A /* OCMockito-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E0DB57E72A0782B49D3F4814ABAED49 /* OCMockito-dummy.m */; }; - 31A50B6F4CA3361B5C2E881244383689 /* HCSubstringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F89117F44AD93D49B4A1F16A1BBDE2E8 /* HCSubstringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 322F2973A1EDE086B9DA59EF7446BF11 /* HCIsEqualToNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = A8D514ACCE5F36DD82C7C62549DEC79F /* HCIsEqualToNumber.m */; }; - 326797EE2A2C6B1F2E9A2653A634DC9F /* MKTUnsignedLongArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 29E3E28E517D5E40573CDD1CF19D0E2D /* MKTUnsignedLongArgumentGetter.m */; }; - 33152241D7378A62B68AEC4CF718B46B /* HCIsSame.m in Sources */ = {isa = PBXBuildFile; fileRef = 6285D2EAAA6C08360F10C86E04B765E3 /* HCIsSame.m */; }; - 33D152396681BE5A669712E405638A79 /* MKTShortArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = CA6C0B1B678EBAEB826C065F5923DCD0 /* MKTShortArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3430EB598C0B5589772BE5A5E7C63910 /* MKTReturnValueSetterChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8C81419E6D62EF0816BC942BB02CD8 /* MKTReturnValueSetterChain.m */; }; - 346BBA5395BA3D644DEF2E11681BD1BC /* HCBaseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 02EFC5FFFDE7AAEA0ADD71736996FFF4 /* HCBaseMatcher.m */; }; - 34E805EFA72682AB7C5B05EA9D0D307E /* HCBaseDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C94B7AA30C516765BC3AFDDD944530F /* HCBaseDescription.m */; }; - 384A035CC298DD97E0401484C91EE4A0 /* HCIntReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = F8B4307580176F1666012922CD068E35 /* HCIntReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 391ECA650097E58277098CDA7BC10BC2 /* HCStringContains.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD4447D27068D9840D768D1650C8E62 /* HCStringContains.m */; }; - 392DAC72FAEDB310E13E68AC6AB36C90 /* MKTInvocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 44F69EEC25EFDAA9F7D5A5FB8AC73E58 /* MKTInvocation.m */; }; - 3C421D44F6E0B3B1644D7F7296E0610D /* HCIsCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 436E43E5E1772B0DFE8B0FC7D4999C78 /* HCIsCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D73D3DBF73BE2556CE0505E138D52E8 /* HCIsEmptyCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 111C1B293FAE8443619252C488AFB789 /* HCIsEmptyCollection.m */; }; - 3DADAAD7FB2C71B7DD6ED54A274EA581 /* HCLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 081615EDD706D6D9D71741A5D532762C /* HCLongReturnGetter.m */; }; - 3E28F25F2E2DBCDF542F5FBA2EBD17A0 /* MKTExecutesBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 444C303DDC591C6E560D356151507DC8 /* MKTExecutesBlock.m */; }; - 3F4F5E740D197C366BDE4D467CBF96C1 /* HCCharReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 115F66A544E70A0704D1EFE773B6F6A4 /* HCCharReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3FFCBE09C913D2717E80B00EBA43537C /* MKTArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1041B75357FE4417A40F02B99718EA2A /* MKTArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 40A926206018ABF3AFF0ADDF94324643 /* HCDescribedAs.h in Headers */ = {isa = PBXBuildFile; fileRef = 12ED103768B5C3E59B3D08ACBB1E0046 /* HCDescribedAs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42B1E0631CA3B7885477A35F35CC7096 /* MKTCharReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B63E72018F8DCD27388CB9C1F84CDFE /* MKTCharReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 43167D2EC4F181461BD3AF7EA6E131D7 /* HCThrowsException.m in Sources */ = {isa = PBXBuildFile; fileRef = 35AA24F7451D1D549C6D719969227E73 /* HCThrowsException.m */; }; - 438442E1A3A9E149D456BA8B04FCA5EF /* MKTObjectAndProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 25BC887A7D50946D54F0744DE276C1C6 /* MKTObjectAndProtocolMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4634AC3EE7CAC64A0EE9997413A63DDC /* MKTCallStackElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7E1137210E2720DBC38CAC205A782 /* MKTCallStackElement.m */; }; - 475A2C2CA379FF544DC96B8DB0311529 /* MKTNonObjectArgumentMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = A38F1F105CC9E903B09A16428560AC8D /* MKTNonObjectArgumentMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 476A5EF81FD8094181502B5A55651C10 /* HCIsCollectionContainingInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E94D97424388D22FBF3742D69F039AC /* HCIsCollectionContainingInOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47CABB81555E8F3EB29931B9ED6FFBF8 /* HCShortReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A1239CBBA69233BDD6AD85A47B384CDE /* HCShortReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 48A7EBE2B8C7BE624B0C41E3B25A96C5 /* MKTAtLeastNumberOfInvocationsChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = F49226BB7D1E996426B97D5CD3BEA20A /* MKTAtLeastNumberOfInvocationsChecker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 48CCE0FE8DEE43F765585D27EF18478B /* MKTAnswer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E693B636DFDFDFAF93F34658B76D57F /* MKTAnswer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4B152F3CFE798136C7C1C77C58166079 /* HCEvery.h in Headers */ = {isa = PBXBuildFile; fileRef = FD0D54259FF67E141B1901E1F97E4B4D /* HCEvery.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B356B8F499039E373153A378240E04A /* HCIsInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BBC8E0F13D9CA3CADBA9BCA0D35AC30 /* HCIsInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BAAB9A0B7757952CB9985525FDBDFCA /* HCIsSame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D5CCBF28758495E16A6F54CD6B1709B /* HCIsSame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DDDD7D819B2FD6A26E6347987792F13 /* MKTBoolReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14234E40E334C9012B4C42D5A2E47B20 /* MKTBoolReturnSetter.m */; }; - 4F266690C5B9672CEEC4F08CE23DC76B /* HCDiagnosingMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A13C27BA36912BCE0EF3BA1A66A150AE /* HCDiagnosingMatcher.m */; }; - 4FD71B974D5DB38E841A9B2130BD2031 /* HCFloatReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = E175F49EE37A7857D4EF8B1EBBCBA704 /* HCFloatReturnGetter.m */; }; - 5073D56FACA487D1D0323D7377851C19 /* MKTStructArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 77D4F4AE23915C4B14B3B927567A3F8C /* MKTStructArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 53CAB1BD2AF24E54EB9BB7FEB0DE74EC /* MKTObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C5515B3CB3B2F502D3328E746F1B06A /* MKTObjectMock.m */; }; - 598FBA999C9B6D901424C568FEA6DE23 /* HCLongLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A1EBA997CF7C9388D26D1ACC66AE8B4 /* HCLongLongReturnGetter.m */; }; - 5AA2FA9999F045EDFDADD750A6DB65B0 /* MKTArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 86ECF9340D3AAB01F0B3067438D46B19 /* MKTArgumentGetter.m */; }; - 5AF7CA09EB576EA2A19C9E31D9381828 /* MKT_TPDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C360162E92AD2029386138F2644805C /* MKT_TPDWeakProxy.m */; }; - 5B61EF6263EF1665ACD489F89A32BA46 /* MKTReturnValueSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A9CE8C344883AB5517B9289D3CE62BC /* MKTReturnValueSetter.m */; }; - 5BF9B7A15063FCA7D36CBFAAD810CADF /* HCAnyOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D9C31FABA1E532E2DF36E696888E27A /* HCAnyOf.m */; }; - 5C4A9A26CF5B4A2B7F04412FFF10396C /* NSInvocation+OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = F2F77FAFE27EF46F643D67889728A577 /* NSInvocation+OCHamcrest.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5C77C6E837AAF1167CE4356F5471BAF5 /* MKTBoolArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 907F58A470288CFDAC15F6D91459EB9C /* MKTBoolArgumentGetter.m */; }; - 5D301890CAA04EB8F7DEBD915EEAEE24 /* HCUnsignedLongLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = DEF12651806E15F983894A3855670CBD /* HCUnsignedLongLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5FD39A4832484B83B5CD465CA311F8F9 /* HCSenTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 42C2C9797F1DCE7ACA6935B537A36EAF /* HCSenTestFailureReporter.m */; }; - 61A99009293679EA4237AA9B56F60D6B /* HCStringContainsInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = F924445CF95A74938C7388E9F4370AE9 /* HCStringContainsInOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6216AC5E8DB91BF6C47A7636D731B3B6 /* HCIsCollectionContainingInAnyOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 765A1A6A77B82DF1348BC203DB8700E1 /* HCIsCollectionContainingInAnyOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6279C99C1D064A82A041398EE966BA86 /* OCHamcrest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD727EBE516A6C61AD5BEF3204E7C3BD /* OCHamcrest.framework */; }; - 63EE4C5601F67C91A37ADDA21E4648F2 /* MKTAtMostNumberOfInvocationsChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 37D46A9D7B5F034E52DBE429970C830C /* MKTAtMostNumberOfInvocationsChecker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 63F7E8A5FE8BF4EBE9B6DAD3E5FF3B13 /* MKTNumberOfInvocationsChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 873ABF4AB8A7991B752747062FCB51AC /* MKTNumberOfInvocationsChecker.m */; }; - 642F6CD92A1AA04369480C340F60D555 /* HCTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB9DF0E28478192160AB8EC6811D9D2 /* HCTestFailureReporter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65396A0F5D3EF41C80038E877E53E767 /* MKTFloatReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = EA12E949C744BD577BDBF65DDF8CC435 /* MKTFloatReturnSetter.m */; }; - 66468CFD75F747A2E88DB2BFC4603565 /* HCIsEmptyCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = D183B16503E7E68A9E9B8BE77AB07DFF /* HCIsEmptyCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66AA3F4543A7956E7F6F16F3E6B775C5 /* HCUnsignedShortReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BB92E0E60BFC98484622AADC36943C8 /* HCUnsignedShortReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 67347AAF7D2BCE70198A1D8540790A21 /* MKTClassReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = D460A5436A5E4153406D082733140750 /* MKTClassReturnSetter.m */; }; - 67C16B2404EE5CA49EEB4E4C65A48E9D /* HCIsCollectionOnlyContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = A22E6B20A8830376B58016019EA26EDA /* HCIsCollectionOnlyContaining.m */; }; - 68260450D822AD3B2DE3029349E81C98 /* HCStringEndsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 381B0683777C9C9E7E4338161EA448C4 /* HCStringEndsWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68399EA1BD0515475AF2761BAEC3A610 /* HCIsDictionaryContainingValue.h in Headers */ = {isa = PBXBuildFile; fileRef = A0B26C3786C41EA86867FAF702128578 /* HCIsDictionaryContainingValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68E1041F416D4DE86787EA149F83C307 /* MKTStructArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B9EB0943A6508B78A258A4D1692D213 /* MKTStructArgumentGetter.m */; }; - 690E3691D8F8E2FC259909C6E0A64F33 /* MKTInvocationContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B266C09019B3F63F1051024F37771FD /* MKTInvocationContainer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6A394ACDD5098D71EB2E739A19144609 /* HCHasProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB108F42179EFC48AE416AECA985501 /* HCHasProperty.m */; }; - 6A98090947417A9148F40868D41101C5 /* HCFloatReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = D628B61620DB6EB0ED2B3759A1D601E8 /* HCFloatReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6AB0AB9F781FA05AC37A7A3C0CE66A3D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */; }; - 6C116019E55219DE5A5E06B780D72787 /* MKTMockingProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = A9A255A81CA4550C0F3EEC667B070699 /* MKTMockingProgress.m */; }; - 6C204CD45445332B0FD1DD70811EE3A5 /* HCGenericTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E8B57E0E4D34A609056D4F2567E0463 /* HCGenericTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6C9EAA0FE1130D13921A7DBC94CBF553 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */; }; - 6D8C6D536B0FA535D03DFA503F3D014A /* HCLongLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 99A28D2A94C88375EAD626ED771CDC26 /* HCLongLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6E2DBB311FFA07EB22FB8449639E175E /* HCIsDictionaryContainingKey.h in Headers */ = {isa = PBXBuildFile; fileRef = DDDFECD0040D1732869BECAF0E382319 /* HCIsDictionaryContainingKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EC2B53CD5D26ED9FD24C14ED7BB4919 /* HCIsTypeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4B8DC415B66B703626B9AC6C7B8369 /* HCIsTypeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F103825E351527ECF806631AEA2017E /* HCTestFailureReporterChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A4143D42B3E84CC031BF0DCE10D9309 /* HCTestFailureReporterChain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71B0FC0118CC4421904123A85E3E3D84 /* HCCollect.m in Sources */ = {isa = PBXBuildFile; fileRef = EF258D86B6D6346812957BCD93695AE3 /* HCCollect.m */; }; - 72C2BE1059638420BA271DCEF5F530EC /* MKTPointerArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331CBFB327757FBA88D0D7AF4B70673 /* MKTPointerArgumentGetter.m */; }; - 73D1058E8EF9CDAA4CB06A9B51ABB972 /* MKTUnsignedIntArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A90BB06D5CC2236A79A6C720310609A /* MKTUnsignedIntArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 740AE91269EDAC807DDA6CF8A75B6E34 /* HCIsDictionaryContainingValue.m in Sources */ = {isa = PBXBuildFile; fileRef = B0D745B85DCC5C30B2E1C136361909D3 /* HCIsDictionaryContainingValue.m */; }; - 75ADB2384221380DD610C47F388A9DC0 /* MKTUnsignedCharReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = B3D921AE4B051F447D0B6B48CDD60D27 /* MKTUnsignedCharReturnSetter.m */; }; - 75CA58A6B185B7BD441882BB94F156E4 /* HCIsDictionaryContainingKey.m in Sources */ = {isa = PBXBuildFile; fileRef = E0DE1344B442C69D0420A46FC37E5ADC /* HCIsDictionaryContainingKey.m */; }; - 785C5C4B0462F94602021DC62269E1B5 /* Pods-MonsterCards-MonsterCardsUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CE8542716C33029CD29A4F008FC51A2 /* Pods-MonsterCards-MonsterCardsUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78AB4554BB596F2459D8B27D5918F5AA /* HCBoolReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = CD143063B07B1E23CF91C80AB43DFE1E /* HCBoolReturnGetter.m */; }; - 78E82F408FF82023E7F8B190D7E01B38 /* HCObjectReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E065739ADEF8013C3C2148C748DDB7D /* HCObjectReturnGetter.m */; }; - 795DF7E92814FC4C1C1288898672850F /* MKTCallStackElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FAACE62919A576A4BF47A82B23A1AA7 /* MKTCallStackElement.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 796CFF523641A040AFD811530127E85F /* MKTAtLeastTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = E3FEB3E11884160D8606669A40E1D0B5 /* MKTAtLeastTimes.m */; }; - 79C7106C5B303A3FE86911820C4B7A17 /* HCEvery.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5EEA20F92E7BA00140098761E804CA /* HCEvery.m */; }; - 7B0F98BDE64CB1B1F21D9D4EAFC5DDD8 /* HCTestFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = F406AE154752E4C1115CE738E4FD81EF /* HCTestFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B7CE7C02FE3F0525BCFB074CB6FBA57 /* MKTClassObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = EBC11A631E69A7151B32E94EDA69A134 /* MKTClassObjectMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C20FD5B9ECC4C2314EDBCDD6661B5A1 /* HCRequireNonNilObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ECB1081C6206E90D879659EF60350A8 /* HCRequireNonNilObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C6B61AF43078E58D4C5F5084AD1FC9F /* MKTAtLeastTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = D620C88FC6781BB9560C47740B880782 /* MKTAtLeastTimes.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7D79809388BA9B0624A0457D2CF3CC78 /* HCXCTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = DB35A320FA5D77588D90D14C26FE5615 /* HCXCTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7E13506EA2F3466772368654AA8F6C38 /* MKTOngoingStubbing.h in Headers */ = {isa = PBXBuildFile; fileRef = E39410740663C2E0A14F4081687DC91A /* MKTOngoingStubbing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80176F6E2E24FBAF29A8C55242D3C709 /* OCMockito.m in Sources */ = {isa = PBXBuildFile; fileRef = C60E4F725E1CB2116B6E7C88D81FD288 /* OCMockito.m */; }; - 813CA344C9E0275DC02EB3B68F1BF40E /* HCConformsToProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A58798FFD63433A2DC5DB80FBA6459F /* HCConformsToProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 816E49A41D0CE04FA8AF8BE6942B34C7 /* MKTLongLongArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 73E8D848016C63C2F4E672F9F39BAE81 /* MKTLongLongArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 81C193765AE203E5EAC50147EB55449B /* MKTLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D4CEC433F252BAA6E88C7F6452B73F /* MKTLocation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 82D29B93735FF655E7F8910952ACE5C5 /* HCReturnValueGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A96E0E8F901A72ACD6F39C2FF1B6A573 /* HCReturnValueGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 83FE6F14704CA6C8B33AADE4F3D79994 /* MKTBoolArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6938763A1A07A12C15F7C1353D471391 /* MKTBoolArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 863772A6EE57049E2007FDCAD9C6A630 /* HCAllOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 40074D7AED992C4CA8F8E339AFF944A5 /* HCAllOf.m */; }; - 88E2CED4CEF76CEC623CFE3B1EF18268 /* MKTLongLongArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = F4046E1A0C30486F4E309D40944EAD25 /* MKTLongLongArgumentGetter.m */; }; - 898C5E260B70246E2446BF9369B722AC /* MKTShortArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = F437F8EA2F4F80AE8B362B1426F240CE /* MKTShortArgumentGetter.m */; }; - 89A09174DF778F0854FBD15614E16B38 /* HCArgumentCaptor.h in Headers */ = {isa = PBXBuildFile; fileRef = CBD86395BE4EB3CE9E5D99C2FE09F97F /* HCArgumentCaptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B52B5CA95BCCEA39331CE433225F40D /* HCDoubleReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A2161245E185CCE243DA3D3DB4E8A90 /* HCDoubleReturnGetter.m */; }; - 8C3907C34232366E1C68AF158E38E6FA /* Pods-MonsterCards-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 529737285A943113A232DF663BDD975A /* Pods-MonsterCards-dummy.m */; }; - 8C6A9A1F74DFCF7A30DEBB9408E9D865 /* MKTStubbedInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C2AE5F1CBE44A8AC158F91E76A9561F /* MKTStubbedInvocationMatcher.m */; }; - 8DD9CEEA16A8CE23F451843D99177751 /* MKTMissingInvocationChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 086FED0F18625DB02BF14B8D07C03229 /* MKTMissingInvocationChecker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8E3F963AC815855ECF84FFF841EF1289 /* MKTFloatArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 98C3C63CA0908F34C5A72F4443CD3C01 /* MKTFloatArgumentGetter.m */; }; - 8F06868F19F645BC52F1D4359254B722 /* MKTStructReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A12FDE019356375BBCFA6581B2170A8 /* MKTStructReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8F737156BC90197CA15B0B71844E00DB /* MKTSelectorArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = E3E01A9E71DAD44F66EB69713F8D39A9 /* MKTSelectorArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8FE460FF81A85BADA777AE75F1DE8E05 /* HCIs.m in Sources */ = {isa = PBXBuildFile; fileRef = 466DCB25F4DFF1E46ECE1A8A1FACAFB8 /* HCIs.m */; }; - 903CB755900E592163BBC79C1EA1B8AE /* MKTUnsignedLongReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = CE50CC9964C2E5BCA40BE1C1246A0457 /* MKTUnsignedLongReturnSetter.m */; }; - 90D4C852C5C3D549F368BE9DA573D875 /* MKTBaseMockObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA8D8BAF7CD4B2A7EA0EF327E80BEE2 /* MKTBaseMockObject.m */; }; - 9188773F107A021B33AE8805DE4F9858 /* HCArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 592DCA7BB3111ABF7B1298324C5DB56B /* HCArgumentCaptor.m */; }; - 92457CFF6B60046C3532729D9EB4E68F /* OCMockito.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DEE98911D994708B4D35823CAF2F216 /* OCMockito.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93273382A3E4B53183466202E893BC13 /* MKTUnsignedShortArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BC998DFA3AD3C7727902C32D7B023C /* MKTUnsignedShortArgumentGetter.m */; }; - 95573254BBB3F3D4E2E6FA9B15F4FE43 /* HCCharReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EBB82F8627ABF2AB502B110AC96100C /* HCCharReturnGetter.m */; }; - 960AE809B6F84A7E201E1D6E3EC21997 /* MKT_TPDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F817FA9995AED3684CC19DAFC23A85 /* MKT_TPDWeakProxy.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9668948A1474DFC7F80BBE356F473157 /* HCIsNil.h in Headers */ = {isa = PBXBuildFile; fileRef = A7042956F1D5F4F414BC76421A11432A /* HCIsNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96779644B3350ED6B6655D962302C911 /* HCAnyOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 92FCBC51BD8B1191F982CE56D55A9C4D /* HCAnyOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9678DC116C79B7A0D691C88ABCA83020 /* HCObjectReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = D81351931406A73263288B05C493A7C2 /* HCObjectReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 96C9B828935A43B3034F2CE38BF231CC /* MKTSingletonSwizzler.h in Headers */ = {isa = PBXBuildFile; fileRef = E1F4FA881C7079D43BB7A9C4B895782A /* MKTSingletonSwizzler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 974B554A8734595074EE5428BEED34E3 /* HCCollect.h in Headers */ = {isa = PBXBuildFile; fileRef = B8367BBBF4D142CAFEFC1116C1D51EC2 /* HCCollect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 976C5437030860272AC776041C613F2B /* MKTUnsignedLongArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 81AAB22CC8D8D414A37DF85D06679267 /* MKTUnsignedLongArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 996356727CBAE60DD0BEE56843FEEBF1 /* MKTDynamicProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = A7469F06D3828C18C31E6569A40D5DC6 /* MKTDynamicProperties.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9C020033F0CFD42D86068EF8898A08EA /* MKTUnsignedLongLongArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C5C0249C92D0C2E0BC1D31DDEDF393C /* MKTUnsignedLongLongArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9C6D8E7EB6A2C54B72EE2925EE804C79 /* HCBaseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BB07666E0A1CAF3F959BBF7A123081 /* HCBaseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CE301579C8EA60560F27F202B774A1B /* MKTReturnValueSetterChain.h in Headers */ = {isa = PBXBuildFile; fileRef = E624982025C01963D77155028B6479C6 /* MKTReturnValueSetterChain.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9F7AC0D1A5615F7654766CAAA5A3F836 /* MKTLongReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = C7510606B6F0EB6A7B0E29667AE8A9D3 /* MKTLongReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A0514CA796CFF6E4DF28FBEC60453AB1 /* HCIsDictionaryContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E60BB4D20F2A1A3EF0EA94DEDC37226 /* HCIsDictionaryContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A12EAC86AD08061397D637888623A105 /* MKTLongArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = C08D49E1A88FFC4410273AB164781864 /* MKTLongArgumentGetter.m */; }; - A1AA7C5B623D7A3D14CA3585B5E6F74F /* HCGenericTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 29592D6C91F92EA62595F1214C7171A0 /* HCGenericTestFailureReporter.m */; }; - A28C660AF8E3132E19E1AF055F4BE6A4 /* MKTArgumentGetterChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 81C0DC5B18405FA9D8F1CCAD8F6AEAE8 /* MKTArgumentGetterChain.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A432FFAD80299B04C87DDFC2C2954D06 /* MKTLongArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 801866461A95BB6BB06D7ACA13B0F7BF /* MKTLongArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A5609BEC1DA5A7870598A8A41E9643CE /* MKTDynamicProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = C5F7F23E1BE2809EE4D749C34164EFF7 /* MKTDynamicProperties.m */; }; - A6039AB9A7C924B413541A9B6E530746 /* HCIsNot.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AAC733885BA6A203647044C6526696E /* HCIsNot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A62EDCD9C0C55A0C303C7F13F6DDA54C /* MKTObjectArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = F4485BD63D4146F51B7A990D580C0D36 /* MKTObjectArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A6582DF5666FAD2198F54F080F167568 /* MKTFloatReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A202F7038DF89580D0FE6BD754238A40 /* MKTFloatReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A6CB0D9A3AD325451BDF7DA26ECF6668 /* MKTThrowsException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EA4549FC719D29A4F6D8D37BECD26BF /* MKTThrowsException.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A86B8B77B1B26FF18F288A26BF1E6974 /* HCIsEqualCompressingWhiteSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = E9D9780CA9FCEC917E117D6777B35BB1 /* HCIsEqualCompressingWhiteSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A95BEA138372346299459B9FC04B565A /* MKTClassArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = AB0E4FC39671942C571870649F0F9A21 /* MKTClassArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AA0C9F2458A7AD9F0F7B7EABA4BEEAD2 /* Pods-MonsterCards-MonsterCardsUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3548D27B147D9EB5EB8E27D698482369 /* Pods-MonsterCards-MonsterCardsUITests-dummy.m */; }; - AA0F8C396A110A865044DEBD99EE9FDF /* MKTAtMostNumberOfInvocationsChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 23348E5CB510721F100C5513A0C5956C /* MKTAtMostNumberOfInvocationsChecker.m */; }; - ABBFB28E8C4720DD34B22BF7634E76B2 /* HCReturnTypeHandlerChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 1497C224AE3BEC0772BAB3B839DCD4DC /* HCReturnTypeHandlerChain.h */; settings = {ATTRIBUTES = (Private, ); }; }; - ABF3C3C5DC65CB7D23707D489919F133 /* HCShortReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FC881BC5AF31E1ED2C1B5A0813A0C89 /* HCShortReturnGetter.m */; }; - ABF75AB1EC0FBCA7558EBA622DE136B0 /* HCSubstringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 7585A0B00554D868DE31B537DF34D0CB /* HCSubstringMatcher.m */; }; - ACC6DDE28E4F5D57D2095B246E14DAAB /* MKTInvocationContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = FCF2DF282EEAB03CD61A2E43644D9290 /* MKTInvocationContainer.m */; }; - ACD0EBBBCB3430BDB1465F673496A390 /* HCStringEndsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8B6B3EC8CF9EF224F4012BA559561C /* HCStringEndsWith.m */; }; - AD870B82A46051F18895EE2AAE014889 /* HCIsIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E2AFBD6FCB8143FACC8192C423940AB /* HCIsIn.m */; }; - ADB6523821D96B7347F2D32FC5CA3DCD /* HCIsDictionaryContainingEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E2BD740DE1B84AA06B0F6CDD9272C5D /* HCIsDictionaryContainingEntries.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF6C73D28E6CE1A8F7B3BE6D96B55916 /* HCIsCollectionContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = A89EBE400C96D83CAC3B8C73DF6DDDEC /* HCIsCollectionContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B00063E2A13A7E3C1187B523EC9EC84A /* Pods-MonsterCards-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 704354BA923B2E7FD3159A24BF234D07 /* Pods-MonsterCards-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0C3D04FC62EC72CD69DEEC9FD9F3DE9 /* MKTReturnValueSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = E013CFA79F6F0CE1C0B54BF3EC0E4E5E /* MKTReturnValueSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B0CFB88146703B3B2AD0D1FBC0377903 /* HCUnsignedLongLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 206375FFA964013385748454D28BB1B6 /* HCUnsignedLongLongReturnGetter.m */; }; - B15A588C8E8BD49A101AE2EFA345B7F1 /* MKTUnsignedShortReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 45272A504E2D28004C6939415A77D8FB /* MKTUnsignedShortReturnSetter.m */; }; - B1A6829C9948D691B59F995086B4797F /* MKTVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = C58AE3E63FCE7B1758DBBE1D1C38BB39 /* MKTVerificationData.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B243AB06E1F2507AA0F484FC1DDAA194 /* HCUnsignedShortReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A9ADE98BFB51C4BC678151474E3EBD9 /* HCUnsignedShortReturnGetter.m */; }; - B53A0BC7F7444A22094BDDDBCC5BD3F0 /* MKTVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D8091FD4252078664713E9429EA020CF /* MKTVerificationData.m */; }; - B6ACC315E3575101FC7A7A75DADD8665 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */; }; - B83D883402AEC18120033F3404E353C6 /* MKTOngoingStubbing.m in Sources */ = {isa = PBXBuildFile; fileRef = 32BF8BE9EF675470A729BA22C1361A6D /* MKTOngoingStubbing.m */; }; - B855505B4523137603A9394B0C49EC9F /* HCNumberAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = CC30C1058FE9C50C848DA495FB7036E4 /* HCNumberAssert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8D6D7BE7FED5F6877845BD90C43076D /* HCIsDictionaryContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = D090E88473BF7C14D6F652C53B6E62D4 /* HCIsDictionaryContaining.m */; }; - B9E9E4C4B2254C5D2BAE95A44BE6FFF5 /* MKTSingletonSwizzler.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A751D230AC2B78734B21993A927BCA /* MKTSingletonSwizzler.m */; }; - BA525D6B55D2D1A2C1E6B5EE5E121E4C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */; }; - BA54CDCB57402D73D5DA632D891BDAEC /* MKTParseCallStack.m in Sources */ = {isa = PBXBuildFile; fileRef = 52AFD506CCDC1DCB953C4F35DCA640A6 /* MKTParseCallStack.m */; }; - BB9AD17BAE3F763736794C00398B5D7D /* MKTAtMostTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E185F0EACC15858F21C65B72D636B78 /* MKTAtMostTimes.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BBB324A1EE3B5262044B8BF362371384 /* MKTUnsignedLongLongReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 62E47137A99BDF813A811FCE1DE3F9AF /* MKTUnsignedLongLongReturnSetter.m */; }; - BC80D34F8897CB758F1F0004467F090E /* MKTInvocationsChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B85AAD38A9E495F5D0C1167CA2D84F7 /* MKTInvocationsChecker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BC8293E691AA7B46E489871661C81CD7 /* MKTFloatArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8640CD298B3FD74592C355F11CC4B877 /* MKTFloatArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BCACF1A26BCDC7D9FE727E515A207DE3 /* HCIsTrueFalse.m in Sources */ = {isa = PBXBuildFile; fileRef = B2AEC6447906AEFB1CF6F9B0ECA301E5 /* HCIsTrueFalse.m */; }; - BE26604F948BA38EA039F4539132CFCF /* MKTThrowsException.m in Sources */ = {isa = PBXBuildFile; fileRef = AD19E9982D5E734D1032EF05DC5B1F97 /* MKTThrowsException.m */; }; - BE7049CB0B4277F967CA5E52DE7FB0FA /* HCBoolReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 91F44675681B10CE64FCE17A5A44F634 /* HCBoolReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF98850EEDD30F10D396408E3FF6DFBE /* HCIsAnything.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C437764409E8FE79D38459CB315D6E4 /* HCIsAnything.m */; }; - BFF10FAE3F49C56480BFA67CFC66EABF /* HCHasDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 12EAED0BC67FA189C27C8F4E6173CC1C /* HCHasDescription.m */; }; - C009C1BAB56D1BF620C12C656698C89D /* MKTStubbedInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E2313D2E2EABA4F71EFD3341B7A6E81A /* MKTStubbedInvocationMatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C0E76C47DE90EC3AA19737C61C272645 /* MKTNumberOfInvocationsChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = F2CC95774F6F1213CF68852FAB2A9250 /* MKTNumberOfInvocationsChecker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C26339769DE6B70C8F36108FA9E82EC4 /* HCRunloopRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DFA9CEB9434F5CEF259B8FBCED1B1F /* HCRunloopRunner.m */; }; - C34E5BF7667891DA239A70241BB8787F /* HCInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E8306C8B11C03982ED702C3E91FD9FD0 /* HCInvocationMatcher.m */; }; - C3A69DB7FE8775426246AE1D970ADD9B /* NSInvocation+OCMockito.h in Headers */ = {isa = PBXBuildFile; fileRef = 6328E2DA677910CDDA3A692E28C41D00 /* NSInvocation+OCMockito.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C40A4848255A8F87D6B0AB9F7E57A4B0 /* MKTPointerArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = EEFC62B3798DBBA384D124E151D0F66C /* MKTPointerArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C4DF90EB88F5CAE14EFB4D4FC5EA0FCF /* MKTReturnsValue.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B1685C03F14987E2EA51F32F0E9817 /* MKTReturnsValue.m */; }; - C5980869746578E3F9DE37BFC194CE7B /* Pods-MonsterCardsTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C719025AA0018BF030D009382FF9C96 /* Pods-MonsterCardsTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C5E72C93136F64225F955F745D356C4D /* HCDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F25CC20C533A6EB4F38A65315C3A93B /* HCDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6FE9416C547905C1D957D6515FE4DE2 /* MKTSelectorArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = ACFFFBAB2BA0B628DA5A84AC107AA50E /* MKTSelectorArgumentGetter.m */; }; - C717F917396C678FB8F99A95F27B2EF9 /* MKTFilterCallStack.h in Headers */ = {isa = PBXBuildFile; fileRef = CE7953303F73675BFA44165DC0E26B82 /* MKTFilterCallStack.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C77002A345A31289F097C151DA56C730 /* HCIsCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BC1E67223D24F99FBEA4CEA7EEE41B1 /* HCIsCloseTo.m */; }; - C82C5863ECDBD0481F99169F0D026588 /* MKTUnsignedLongLongReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = F566BC2D6E2FB121D49B779418D68E6A /* MKTUnsignedLongLongReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C8E8235C2E5269E9E2B40282928CA816 /* HCIsEqual.h in Headers */ = {isa = PBXBuildFile; fileRef = D69DE9A7FDFBA904D451536B0B6F96C1 /* HCIsEqual.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C90B45C579A373B3DEAAF3744E21F1D0 /* HCHasDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = EA7EDDDA5BC1BC0E456B810249400191 /* HCHasDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C95CB935F3653CE08A4DAE8C41A7B1DF /* HCReturnTypeHandlerChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 421EBC4EA258BE435D5627187F9923FA /* HCReturnTypeHandlerChain.m */; }; - C97C1A415CC68AAD55C3D79D132AABDE /* HCUnsignedLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF49DD53ED624F5A0AA80BBBBDBC439 /* HCUnsignedLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C9A29CC7A252AE2CE96E8B06FDC0BA06 /* HCInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 21301EC3688A9A071D836F3D977B605E /* HCInvocationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9BB324F47B4C930BBF9CB0AE644FC48 /* HCClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C016CCAC267DE1A28312C12DFF47F85D /* HCClassMatcher.m */; }; - CA1EE97E99C4BE490D78046EC3EBD0D4 /* HCBaseDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = F8D0B09986BD2A23932BF5F7FC81A045 /* HCBaseDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBC2E60933D74BBBBCB459A271C964DB /* MKTTestLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84BA696AA619B6D0F7EA279404DB530E /* MKTTestLocation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CBE56E2B4C064CE2A85AF2A5F9520725 /* HCOrderingComparison.h in Headers */ = {isa = PBXBuildFile; fileRef = 32EC260CE31FA061B78C8F38AEA93B96 /* HCOrderingComparison.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC98BA6A906C0ECCD1871C71FFD4C53E /* HCAssertThat.h in Headers */ = {isa = PBXBuildFile; fileRef = D7C554A7AC2D9FD9BE1ACC0A210D1D2A /* HCAssertThat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD3E10B421D7BE2C05F304D642DC4945 /* MKTObjectReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = C7A38AF4A4625748B79BF5AD096910BF /* MKTObjectReturnSetter.m */; }; - CD4338E07BB253356EE153E9EB4B11BC /* HCNumberAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F5FECF01852FF018CD57C24B635EEF6 /* HCNumberAssert.m */; }; - CD7C20CC0D3BE89833E2B88723F817A2 /* MKTObjectReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8768CC38C15E8D2828A93EE7E9E490F0 /* MKTObjectReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D0277F3AA8E43D773899C715FA094826 /* HCAssertThat.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6E6DF5C04893FABD0EE412429CAC5D /* HCAssertThat.m */; }; - D027A03F5B2A88D4A7EAB5101F7C1AD0 /* MKTDoubleReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B487E0A20C9CE23E428337914EF740 /* MKTDoubleReturnSetter.m */; }; - D104E377326C69FDAAC03B0CDC14E87F /* HCStringStartsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 589782DCDE095D4F1130D0C3B8A7CF7F /* HCStringStartsWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1E5BC3B65257257D5639E617556E98C /* HCAllOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C90246A0036AA0F2032626B50C44EA9 /* HCAllOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1E90544DD7596099F934505B7CD971A /* HCRequireNonNilObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FB0581EEE8D21EB74D81C8FB623919 /* HCRequireNonNilObject.m */; }; - D1F28DE86CDC94309235FD1AA73C7026 /* HCIsNil.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E7DA0EEB24C37343A7D75DF4A73514 /* HCIsNil.m */; }; - D2BEB8CAE604F2D924B98FFFE8952295 /* MKTInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A38F0CE31D536EC0E0A9B3345828412 /* MKTInvocationMatcher.m */; }; - D2FC4EA5EF068F3518AC9AD92D0F4B22 /* HCHasCount.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F94BD177A5DA2F0C3361AE06BE23C77 /* HCHasCount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3EABE1367054ABFB68243209F16E34B /* OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9850D8A995F2F35F0C35E8CA6FEF840F /* OCHamcrest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D51C0CD5CDBFD8B3F0FE1427AFE9A8DF /* HCTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E678C69FB2A45B80D3A8EDE85F1DDC /* HCTestFailureReporter.m */; }; - D627CE9B858E835CBA8A281CB78C9FBB /* HCIsAnything.h in Headers */ = {isa = PBXBuildFile; fileRef = 308638B5A178D2DB437DD4A77368E02B /* HCIsAnything.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D66668C8D4B46716C04A9FCAC4A1E86B /* HCXCTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = F4370BB69BE59DB9293665A09CB4376E /* HCXCTestFailureReporter.m */; }; - D79FD0F7E069BDCD3FEC2C7C294B1E15 /* MKTMatchingInvocationsFinder.h in Headers */ = {isa = PBXBuildFile; fileRef = DF10E12C4DE292F2E990E68340006DDF /* MKTMatchingInvocationsFinder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D812A230EC69FD24E4F11BEEA4AFAD52 /* MKTLongLongReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = F287D8D338B96291DF6E8C0C83250F7F /* MKTLongLongReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D92726845686E07EC82EC2653ADD19B1 /* MKTIntReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2133CFE70D680BF4AA7794C3459171E5 /* MKTIntReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D9A38AA7DE6787C9A7EF4843AA4D6D45 /* HCIsCollectionOnlyContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 20B8DB81E4C91BF0810519B6BFCB3737 /* HCIsCollectionOnlyContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA262210C2E1B969F63B5A0A5E508BA4 /* MKTUnsignedLongReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E8D99BCDD5034A685B1132ABEE31787 /* MKTUnsignedLongReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DB0968805C2587E40ACC80C743EECDC2 /* HCIsCollectionContainingInRelativeOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 251E8C872D2825C28F49B1990137E016 /* HCIsCollectionContainingInRelativeOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB0DB49EFEE90A19D040DBCC51309B3D /* HCIsEqualToNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E8CE7DD1D30153B5AD5C1CAD58933BD /* HCIsEqualToNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBBA5986F0B2FFE061AE9C7B5A1CD627 /* MKTVerificationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8398143F67390EAF146864CF91A8624C /* MKTVerificationMode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DBF4C50D2B9794519E461D5511116F59 /* HCIsTypeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 3514676781216A31840D3367AE870722 /* HCIsTypeOf.m */; }; - DE278B7AC58162F003E444BB690988CB /* HCIsEqual.m in Sources */ = {isa = PBXBuildFile; fileRef = 572EAD83F471E7F9BB9A04741CD17CD7 /* HCIsEqual.m */; }; - DF4DA15A858088BFBF7523F33887F69E /* MKTIntReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 087B9B2390D1C55B1740AEDA9909ABFE /* MKTIntReturnSetter.m */; }; - E01A3873A41D95F05C0B31BF6D30A7AF /* MKTObjectArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = B8B8CBC4DDAFAE06C2D69D1D6048E517 /* MKTObjectArgumentGetter.m */; }; - E082BEFB05F79CAC0A4821950E73F67F /* MKTIntArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F7E266FADE4B56CBD62161CEB074B1 /* MKTIntArgumentGetter.m */; }; - E089B9D3659EC84826CD3C10C3C27723 /* OCHamcrest-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C1835F2EAFA904DF40CCC8A23D8FF8B0 /* OCHamcrest-dummy.m */; }; - E11C50FF8F20203F3AAA17501ADB123E /* MKTShortReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E6938F87F891A7772A7B4026ED59DF /* MKTShortReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E1F4E7F7F887CB99A05EDD12129D8D9B /* HCIsDictionaryContainingEntries.m in Sources */ = {isa = PBXBuildFile; fileRef = 90DA4C38B0C2E813AD63BF807583FB53 /* HCIsDictionaryContainingEntries.m */; }; - E27DCE811674839FE59B091B059C9A2B /* HCDiagnosingMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6509B0466A9E8566693B27F3D720F896 /* HCDiagnosingMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2B41F7E69EB1AFB51F2DB6647A72EA2 /* MKTObjectAndProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 460F39594C0CA1F9FED8D53D423CF004 /* MKTObjectAndProtocolMock.m */; }; - E304846EEA81098F20D04EC84AFA503E /* MKTFilterCallStack.m in Sources */ = {isa = PBXBuildFile; fileRef = 90CBD512C8E0889278945E954D072F41 /* MKTFilterCallStack.m */; }; - E346C33012EBC4D12329C42A4765A213 /* MKTStructReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFDB5E8B9A9BE3B1E16DE01D0997E /* MKTStructReturnSetter.m */; }; - E52E8929EE9D34A76662F233E6ECFB0F /* MKTTestLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = EF5DC0800B9EDCD568E8A0080E437D81 /* MKTTestLocation.m */; }; - E6D25D0C767F65C2A690D163E3D41524 /* MKTPrinter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B8F56AB787D63007F14B0C61E33BD06 /* MKTPrinter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E72FF673EE58D635D8E18BD7E4E543BB /* MKTLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0AEFC2DB6ED39C44287A03E5F33D43 /* MKTLocation.m */; }; - E8D2FFCA392095D8AD042000C27C2AFB /* HCUnsignedIntReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = C973C5166E14C2B7A847EB016CE1A5EA /* HCUnsignedIntReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - E8D442DB031FEEB62433BE96C8AB33DB /* MKTMockingProgress.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B61151F229419C15B5032E410EA5E5 /* MKTMockingProgress.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EAFE52965E1EF4DAA297E1261C7B480D /* HCHasCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B41B07476993B622F2DA6EE6C12878A /* HCHasCount.m */; }; - EDE3BC63F127E764B0426AAAEFA3969B /* HCHasProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = A8D638C1E26020B2CFA81955277F22B3 /* HCHasProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF9B7395CBEF1A9FAA764FFAD8E588FE /* MKTUnsignedShortReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F2D5CE5E0B330A27CD201D504E1D71E /* MKTUnsignedShortReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F0E70AC299F0831C0E875C0706B907AC /* MKTDoubleArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DBFE2CABA8B83DEE912638FE4A55D68 /* MKTDoubleArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F1352F92DEA590ADAE9BBF0F2A5CC7C8 /* HCDescribedAs.m in Sources */ = {isa = PBXBuildFile; fileRef = 6900393B465D6921C292E903EEC32C1F /* HCDescribedAs.m */; }; - F1920988BF4895F6458491D272425929 /* HCIsTrueFalse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7551364E734142910761112DD1EBEC /* HCIsTrueFalse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F22429D68DDEE2184B0AEB98F40C8F63 /* MKTLongReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = A1C3B43C8DDB4D8451D16D7F772BBCFC /* MKTLongReturnSetter.m */; }; - F27FE51C4752E24304E8F42FE4993D1E /* MKTMatchingInvocationsFinder.m in Sources */ = {isa = PBXBuildFile; fileRef = 262887178D59E3BE71DA8A4F77FA08E6 /* MKTMatchingInvocationsFinder.m */; }; - F40A8A074A38D117C9A4E83AAF000B40 /* HCIsEqualCompressingWhiteSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = B0B794D497B95C93EA694FB5B3CAA16A /* HCIsEqualCompressingWhiteSpace.m */; }; - F51A47DD70A6514F14D9E9D02744DAAB /* HCClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = A9FD53B491EC559392EB12C1AF4D047F /* HCClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5B6023D722D37FD50408EFF48911585 /* MKTParseCallStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 333F751C5679F8CB01A6390F104DA084 /* MKTParseCallStack.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F729E8DE2F5FD7F645CBD3A41DF1F5CC /* HCStringContains.h in Headers */ = {isa = PBXBuildFile; fileRef = 6765FE3E095A10CCA04B316EB3FD0E81 /* HCStringContains.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9AF6E11CD2CAA25EC4FBDF94DD8F2A4 /* MKTProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 39D41EE12A4E3D17A653D8F3E5B90D07 /* MKTProtocolMock.m */; }; - F9E1A871D3A2C5F571FFAB6EB7C74B72 /* MKTUnsignedLongLongArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BA98008ECCAC2D5B872900C6F7EF9C4 /* MKTUnsignedLongLongArgumentGetter.m */; }; - FADF8C53DC1796185FEBA94E1413996C /* MKTUnsignedCharReturnSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 559F60D5CAAC878835B98F05A09A9220 /* MKTUnsignedCharReturnSetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FAEA2BCC1BDC2A2B0806F97A63909F33 /* HCIsCollectionContainingInRelativeOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 061256FA10FF86124EC40F139DF44B72 /* HCIsCollectionContainingInRelativeOrder.m */; }; - FB7CA42C054C925F7F67D21CF2E417F6 /* MKTExactTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = 85194C9F20D4DE8555D24BFBE51573E7 /* MKTExactTimes.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FBAB26DC8C07C206183DA14A036EB05A /* MKTUnsignedShortArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C75B924AE86293F7EDE8408E95E7B0B /* MKTUnsignedShortArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FBB9799170F0043D6AE4058CC58FA58D /* MKTUnsignedCharArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 691AF08E70240ABA9D35D3D1E4E8FA24 /* MKTUnsignedCharArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FBEA576ACAF9BA84660624EFB3F6FD22 /* MKTCharArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 84DB22F6F637646B96962798407CD285 /* MKTCharArgumentGetter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FBEBFF5AF28CE83D7481D44FF7897F8D /* MKTMockitoCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF334ED943AAE463B1976F1C4B5B116 /* MKTMockitoCore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FC37BF3C0C2AA42F1938481BA6E1FD79 /* HCUnsignedCharReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = BD01ABDA4BE87D80D5A9B9C1E63425A1 /* HCUnsignedCharReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FC596A849369029B0E4387C8411481C8 /* HCStringStartsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = D947CE2C6E92F9E4D72941C01E2F1B9A /* HCStringStartsWith.m */; }; - FD0A25135204FAC9F5C5BCAF990E14CB /* MKTProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E3F1B7ACC2FC096F1720E65C897C5C2 /* MKTProtocolMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD871B4FB63F541866CB0E383D51655F /* MKTExactTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = A1BD8FBA81108EA83B8A982B9FB74824 /* MKTExactTimes.m */; }; - FD9BD470897D28963744F23F19EE31CF /* MKTShortReturnSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = E638A8B5FFF49E7FC2DA85139374A7CE /* MKTShortReturnSetter.m */; }; - FE82EE9AC3F568191FE2FB991F41331E /* MKTDoubleArgumentGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F89042174A732A619EDE40650224717 /* MKTDoubleArgumentGetter.m */; }; - FF1EFF50BE78AE27565E47329FC84571 /* OCMockito-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BF590D47280FDF772591A9EA877F3D6 /* OCMockito-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1CF1631232C3163EA0BB2AE43FAAE62E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AACA30CC7F0FBF6ECAE6A3C4719640F1; - remoteInfo = OCMockito; - }; - 4717827AB2FABA6AE183A8230B5D0B23 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8094467761B2E923813531849AE7B97A; - remoteInfo = OCHamcrest; - }; - 4DF46247F137333B9EE7BC1A5218905D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8094467761B2E923813531849AE7B97A; - remoteInfo = OCHamcrest; - }; - 66AE573E1C9F9BA80D87DF6912970F33 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8094467761B2E923813531849AE7B97A; - remoteInfo = OCHamcrest; - }; - 9F285A817613B5A578845AE89FF89FC6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6A406131E2AA05E2651ADFAF69491389; - remoteInfo = "Pods-MonsterCards"; - }; - B5E11172E52A8768A65CC5BF84E18079 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AACA30CC7F0FBF6ECAE6A3C4719640F1; - remoteInfo = OCMockito; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 00B61151F229419C15B5032E410EA5E5 /* MKTMockingProgress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMockingProgress.h; path = Source/OCMockito/Core/MKTMockingProgress.h; sourceTree = ""; }; - 01B75014846B68D5E4FC1E4EC926EF6B /* MKTUnsignedIntReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedIntReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.m; sourceTree = ""; }; - 01DABDA5B4A117EB894E1A7651BBFB1C /* MKTUnsignedCharArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedCharArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.m; sourceTree = ""; }; - 02EFC5FFFDE7AAEA0ADD71736996FFF4 /* HCBaseMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseMatcher.m; path = Source/Core/HCBaseMatcher.m; sourceTree = ""; }; - 045DB28517C8EA58CCDC139E15A4CA6A /* OCMockito-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCMockito-prefix.pch"; sourceTree = ""; }; - 056C81AEEE03ED285AA14C3491D257EE /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig"; sourceTree = ""; }; - 061256FA10FF86124EC40F139DF44B72 /* HCIsCollectionContainingInRelativeOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInRelativeOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m; sourceTree = ""; }; - 07F4BB29822D8B212B182F4B4B03FCD0 /* HCIsEqualIgnoringCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualIgnoringCase.m; path = Source/Library/Text/HCIsEqualIgnoringCase.m; sourceTree = ""; }; - 07F817FA9995AED3684CC19DAFC23A85 /* MKT_TPDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKT_TPDWeakProxy.h; path = "Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.h"; sourceTree = ""; }; - 081615EDD706D6D9D71741A5D532762C /* HCLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m; sourceTree = ""; }; - 086FED0F18625DB02BF14B8D07C03229 /* MKTMissingInvocationChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMissingInvocationChecker.h; path = Source/OCMockito/Verifying/MKTMissingInvocationChecker.h; sourceTree = ""; }; - 087B9B2390D1C55B1740AEDA9909ABFE /* MKTIntReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTIntReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.m; sourceTree = ""; }; - 08E0DFD1C1DA3EF7E7A1159BE7112B7E /* HCRunloopRunner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRunloopRunner.h; path = Source/Core/Helpers/HCRunloopRunner.h; sourceTree = ""; }; - 0A1EBA997CF7C9388D26D1ACC66AE8B4 /* HCLongLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCLongLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m; sourceTree = ""; }; - 0A4260D5C243F2A8B09A94F2508498E0 /* HCIsIn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsIn.h; path = Source/Library/Collection/HCIsIn.h; sourceTree = ""; }; - 0AEE95FDC2144C3DDC84BFFF0AD3286D /* Pods_MonsterCards_MonsterCardsUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCards_MonsterCardsUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0B266C09019B3F63F1051024F37771FD /* MKTInvocationContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocationContainer.h; path = Source/OCMockito/Stubbing/MKTInvocationContainer.h; sourceTree = ""; }; - 0B63E72018F8DCD27388CB9C1F84CDFE /* MKTCharReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTCharReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.h; sourceTree = ""; }; - 0BF590D47280FDF772591A9EA877F3D6 /* OCMockito-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCMockito-umbrella.h"; sourceTree = ""; }; - 0C2AE5F1CBE44A8AC158F91E76A9561F /* MKTStubbedInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTStubbedInvocationMatcher.m; path = Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.m; sourceTree = ""; }; - 0C75B924AE86293F7EDE8408E95E7B0B /* MKTUnsignedShortArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedShortArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.h; sourceTree = ""; }; - 0DBC5E7D6E166C07300DC815A802EF4C /* MKTLongLongReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTLongLongReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.m; sourceTree = ""; }; - 0E505D922B739313AC0C2215D7D81E4D /* MKTObjectMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectMock.h; path = Source/OCMockito/Mocking/MKTObjectMock.h; sourceTree = ""; }; - 0E8D99BCDD5034A685B1132ABEE31787 /* MKTUnsignedLongReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedLongReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.h; sourceTree = ""; }; - 0FA62431AB0240FF502CA857D80416D6 /* MKTClassArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTClassArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.m; sourceTree = ""; }; - 1041B75357FE4417A40F02B99718EA2A /* MKTArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.h; sourceTree = ""; }; - 11089B3864BDF5DACB86EBD5EEAB27AE /* Pods_MonsterCards.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCards.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 111C1B293FAE8443619252C488AFB789 /* HCIsEmptyCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEmptyCollection.m; path = Source/Library/Collection/HCIsEmptyCollection.m; sourceTree = ""; }; - 115F66A544E70A0704D1EFE773B6F6A4 /* HCCharReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCCharReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h; sourceTree = ""; }; - 12EAED0BC67FA189C27C8F4E6173CC1C /* HCHasDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasDescription.m; path = Source/Library/Object/HCHasDescription.m; sourceTree = ""; }; - 12ED103768B5C3E59B3D08ACBB1E0046 /* HCDescribedAs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescribedAs.h; path = Source/Library/Decorator/HCDescribedAs.h; sourceTree = ""; }; - 13CC220F804D92068162216E154A2C1F /* Pods-MonsterCardsTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCardsTests.debug.xcconfig"; sourceTree = ""; }; - 13E4E182A4FAFEAAAEC6EFB0D9E44EB5 /* Pods-MonsterCardsTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MonsterCardsTests-frameworks.sh"; sourceTree = ""; }; - 14234E40E334C9012B4C42D5A2E47B20 /* MKTBoolReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTBoolReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.m; sourceTree = ""; }; - 1497C224AE3BEC0772BAB3B839DCD4DC /* HCReturnTypeHandlerChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCReturnTypeHandlerChain.h; path = Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h; sourceTree = ""; }; - 17FB0581EEE8D21EB74D81C8FB623919 /* HCRequireNonNilObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRequireNonNilObject.m; path = Source/Core/Helpers/HCRequireNonNilObject.m; sourceTree = ""; }; - 1A9E16709A0241EF15E3184FDAA283BD /* MKTReturnsValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTReturnsValue.h; path = Source/OCMockito/Stubbing/MKTReturnsValue.h; sourceTree = ""; }; - 1AAE1A2BD70149D0C19447ACC7945148 /* Pods-MonsterCardsTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCardsTests.release.xcconfig"; sourceTree = ""; }; - 1C94B7AA30C516765BC3AFDDD944530F /* HCBaseDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseDescription.m; path = Source/Core/HCBaseDescription.m; sourceTree = ""; }; - 1CE8542716C33029CD29A4F008FC51A2 /* Pods-MonsterCards-MonsterCardsUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MonsterCards-MonsterCardsUITests-umbrella.h"; sourceTree = ""; }; - 1E2AFBD6FCB8143FACC8192C423940AB /* HCIsIn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsIn.m; path = Source/Library/Collection/HCIsIn.m; sourceTree = ""; }; - 1EF334ED943AAE463B1976F1C4B5B116 /* MKTMockitoCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMockitoCore.h; path = Source/OCMockito/Core/MKTMockitoCore.h; sourceTree = ""; }; - 1F3E25D867C0D0F5A09D3154F903EE09 /* MKTMissingInvocationChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMissingInvocationChecker.m; path = Source/OCMockito/Verifying/MKTMissingInvocationChecker.m; sourceTree = ""; }; - 1FAACE62919A576A4BF47A82B23A1AA7 /* MKTCallStackElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTCallStackElement.h; path = Source/OCMockito/Invocation/MKTCallStackElement.h; sourceTree = ""; }; - 206375FFA964013385748454D28BB1B6 /* HCUnsignedLongLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedLongLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m; sourceTree = ""; }; - 207D144CA82E0A26F82DB0E9EC77D3E5 /* MKTPrinter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTPrinter.m; path = Source/OCMockito/Invocation/MKTPrinter.m; sourceTree = ""; }; - 20B8DB81E4C91BF0810519B6BFCB3737 /* HCIsCollectionOnlyContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionOnlyContaining.h; path = Source/Library/Collection/HCIsCollectionOnlyContaining.h; sourceTree = ""; }; - 21301EC3688A9A071D836F3D977B605E /* HCInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCInvocationMatcher.h; path = Source/Core/Helpers/HCInvocationMatcher.h; sourceTree = ""; }; - 2133CFE70D680BF4AA7794C3459171E5 /* MKTIntReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTIntReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTIntReturnSetter.h; sourceTree = ""; }; - 22B91E67557209B13B3B9307449E9679 /* Pods-MonsterCardsTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCardsTests-acknowledgements.plist"; sourceTree = ""; }; - 22DA62B7B321F17AC6E36AF664082E51 /* HCIsCollectionContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContaining.m; path = Source/Library/Collection/HCIsCollectionContaining.m; sourceTree = ""; }; - 231441CCBAC14BE463F54A8F059ECBD6 /* HCThrowsException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCThrowsException.h; path = Source/Library/Object/HCThrowsException.h; sourceTree = ""; }; - 2331CBFB327757FBA88D0D7AF4B70673 /* MKTPointerArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTPointerArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.m; sourceTree = ""; }; - 23348E5CB510721F100C5513A0C5956C /* MKTAtMostNumberOfInvocationsChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTAtMostNumberOfInvocationsChecker.m; path = Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.m; sourceTree = ""; }; - 251E8C872D2825C28F49B1990137E016 /* HCIsCollectionContainingInRelativeOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInRelativeOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h; sourceTree = ""; }; - 25BC887A7D50946D54F0744DE276C1C6 /* MKTObjectAndProtocolMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectAndProtocolMock.h; path = Source/OCMockito/Mocking/MKTObjectAndProtocolMock.h; sourceTree = ""; }; - 262887178D59E3BE71DA8A4F77FA08E6 /* MKTMatchingInvocationsFinder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMatchingInvocationsFinder.m; path = Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.m; sourceTree = ""; }; - 2752DF9F1761F64AB71B969B0517A87F /* HCIsInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsInstanceOf.m; path = Source/Library/Object/HCIsInstanceOf.m; sourceTree = ""; }; - 27F37A006BF149397DE1FDAF316B7803 /* NSInvocation+OCHamcrest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+OCHamcrest.m"; path = "Source/Core/Helpers/NSInvocation+OCHamcrest.m"; sourceTree = ""; }; - 29592D6C91F92EA62595F1214C7171A0 /* HCGenericTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCGenericTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m; sourceTree = ""; }; - 29E3E28E517D5E40573CDD1CF19D0E2D /* MKTUnsignedLongArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedLongArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.m; sourceTree = ""; }; - 2A2161245E185CCE243DA3D3DB4E8A90 /* HCDoubleReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDoubleReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m; sourceTree = ""; }; - 2B85AAD38A9E495F5D0C1167CA2D84F7 /* MKTInvocationsChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocationsChecker.h; path = Source/OCMockito/Verifying/MKTInvocationsChecker.h; sourceTree = ""; }; - 2BF2F90513A67534C2FE246C03A17258 /* MKTCharReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTCharReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTCharReturnSetter.m; sourceTree = ""; }; - 2C90246A0036AA0F2032626B50C44EA9 /* HCAllOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAllOf.h; path = Source/Library/Logical/HCAllOf.h; sourceTree = ""; }; - 2E2A45A1C15CCE3AD2136871E73C9242 /* HCWrapInMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCWrapInMatcher.m; path = Source/Core/Helpers/HCWrapInMatcher.m; sourceTree = ""; }; - 2E361895501CA52BB097C79F0F4BE0CF /* HCUnsignedIntReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedIntReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m; sourceTree = ""; }; - 2E437669DB85BB018333237AC38D91FD /* Pods-MonsterCardsTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MonsterCardsTests.modulemap"; sourceTree = ""; }; - 2E94D97424388D22FBF3742D69F039AC /* HCIsCollectionContainingInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInOrder.h; sourceTree = ""; }; - 2F2F1271D254511FF8828377A5661BD2 /* HCWrapInMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCWrapInMatcher.h; path = Source/Core/Helpers/HCWrapInMatcher.h; sourceTree = ""; }; - 2F5FECF01852FF018CD57C24B635EEF6 /* HCNumberAssert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCNumberAssert.m; path = Source/Library/Number/HCNumberAssert.m; sourceTree = ""; }; - 308638B5A178D2DB437DD4A77368E02B /* HCIsAnything.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsAnything.h; path = Source/Library/Logical/HCIsAnything.h; sourceTree = ""; }; - 31B0C6DA157D0EB229226DF7FF122028 /* Pods-MonsterCards-MonsterCardsUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MonsterCards-MonsterCardsUITests-frameworks.sh"; sourceTree = ""; }; - 32BF8BE9EF675470A729BA22C1361A6D /* MKTOngoingStubbing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTOngoingStubbing.m; path = Source/OCMockito/Stubbing/MKTOngoingStubbing.m; sourceTree = ""; }; - 32EC260CE31FA061B78C8F38AEA93B96 /* HCOrderingComparison.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCOrderingComparison.h; path = Source/Library/Number/HCOrderingComparison.h; sourceTree = ""; }; - 333F751C5679F8CB01A6390F104DA084 /* MKTParseCallStack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTParseCallStack.h; path = Source/OCMockito/Invocation/MKTParseCallStack.h; sourceTree = ""; }; - 3514676781216A31840D3367AE870722 /* HCIsTypeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsTypeOf.m; path = Source/Library/Object/HCIsTypeOf.m; sourceTree = ""; }; - 3548D27B147D9EB5EB8E27D698482369 /* Pods-MonsterCards-MonsterCardsUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MonsterCards-MonsterCardsUITests-dummy.m"; sourceTree = ""; }; - 35AA24F7451D1D549C6D719969227E73 /* HCThrowsException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCThrowsException.m; path = Source/Library/Object/HCThrowsException.m; sourceTree = ""; }; - 37D46A9D7B5F034E52DBE429970C830C /* MKTAtMostNumberOfInvocationsChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAtMostNumberOfInvocationsChecker.h; path = Source/OCMockito/Verifying/MKTAtMostNumberOfInvocationsChecker.h; sourceTree = ""; }; - 381B0683777C9C9E7E4338161EA448C4 /* HCStringEndsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringEndsWith.h; path = Source/Library/Text/HCStringEndsWith.h; sourceTree = ""; }; - 39D41EE12A4E3D17A653D8F3E5B90D07 /* MKTProtocolMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTProtocolMock.m; path = Source/OCMockito/Mocking/MKTProtocolMock.m; sourceTree = ""; }; - 3A38F0CE31D536EC0E0A9B3345828412 /* MKTInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocationMatcher.m; path = Source/OCMockito/Invocation/MKTInvocationMatcher.m; sourceTree = ""; }; - 3A58798FFD63433A2DC5DB80FBA6459F /* HCConformsToProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCConformsToProtocol.h; path = Source/Library/Object/HCConformsToProtocol.h; sourceTree = ""; }; - 3B41B07476993B622F2DA6EE6C12878A /* HCHasCount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasCount.m; path = Source/Library/Collection/HCHasCount.m; sourceTree = ""; }; - 3B6E6DF5C04893FABD0EE412429CAC5D /* HCAssertThat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAssertThat.m; path = Source/Core/HCAssertThat.m; sourceTree = ""; }; - 3B7551364E734142910761112DD1EBEC /* HCIsTrueFalse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsTrueFalse.h; path = Source/Library/Number/HCIsTrueFalse.h; sourceTree = ""; }; - 3CDAA4D816A7367C058B9D5DCE8F668F /* MKTBoolReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTBoolReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTBoolReturnSetter.h; sourceTree = ""; }; - 3D5CCBF28758495E16A6F54CD6B1709B /* HCIsSame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsSame.h; path = Source/Library/Object/HCIsSame.h; sourceTree = ""; }; - 3E0DB57E72A0782B49D3F4814ABAED49 /* OCMockito-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "OCMockito-dummy.m"; sourceTree = ""; }; - 3E60BB4D20F2A1A3EF0EA94DEDC37226 /* HCIsDictionaryContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContaining.h; path = Source/Library/Collection/HCIsDictionaryContaining.h; sourceTree = ""; }; - 3F89042174A732A619EDE40650224717 /* MKTDoubleArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTDoubleArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.m; sourceTree = ""; }; - 40074D7AED992C4CA8F8E339AFF944A5 /* HCAllOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAllOf.m; path = Source/Library/Logical/HCAllOf.m; sourceTree = ""; }; - 40DF8028297082B83984B1BBC81028F4 /* HCIsCollectionContainingInAnyOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInAnyOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m; sourceTree = ""; }; - 421EBC4EA258BE435D5627187F9923FA /* HCReturnTypeHandlerChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCReturnTypeHandlerChain.m; path = Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m; sourceTree = ""; }; - 42C2C9797F1DCE7ACA6935B537A36EAF /* HCSenTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCSenTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m; sourceTree = ""; }; - 436E43E5E1772B0DFE8B0FC7D4999C78 /* HCIsCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCloseTo.h; path = Source/Library/Number/HCIsCloseTo.h; sourceTree = ""; }; - 444C303DDC591C6E560D356151507DC8 /* MKTExecutesBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTExecutesBlock.m; path = Source/OCMockito/Stubbing/MKTExecutesBlock.m; sourceTree = ""; }; - 44F69EEC25EFDAA9F7D5A5FB8AC73E58 /* MKTInvocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocation.m; path = Source/OCMockito/Invocation/MKTInvocation.m; sourceTree = ""; }; - 45272A504E2D28004C6939415A77D8FB /* MKTUnsignedShortReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedShortReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.m; sourceTree = ""; }; - 458BD2863290A21B82FD7CED07513B56 /* MKTDoubleReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTDoubleReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.h; sourceTree = ""; }; - 460F39594C0CA1F9FED8D53D423CF004 /* MKTObjectAndProtocolMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectAndProtocolMock.m; path = Source/OCMockito/Mocking/MKTObjectAndProtocolMock.m; sourceTree = ""; }; - 462CC631461FF0F792689156760B4CFA /* HCReturnValueGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCReturnValueGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m; sourceTree = ""; }; - 466DCB25F4DFF1E46ECE1A8A1FACAFB8 /* HCIs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIs.m; path = Source/Library/Decorator/HCIs.m; sourceTree = ""; }; - 46E9DB656AB852B52134EA8B5DE55D5C /* OCHamcrest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OCHamcrest.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 47B5C2A311F8CD3FF35437ECDAF2A96F /* OCHamcrest-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCHamcrest-prefix.pch"; sourceTree = ""; }; - 484DD12B558ADD56C07E97EE1EF8F170 /* OCMockito.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCMockito.release.xcconfig; sourceTree = ""; }; - 4920D12A419167DF2D8531ABD0408C61 /* MKTAtLeastNumberOfInvocationsChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTAtLeastNumberOfInvocationsChecker.m; path = Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.m; sourceTree = ""; }; - 4A90BB06D5CC2236A79A6C720310609A /* MKTUnsignedIntArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedIntArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.h; sourceTree = ""; }; - 4A93CD9BCB843D55CA727E8D320AF65D /* MKTUnsignedIntReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedIntReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedIntReturnSetter.h; sourceTree = ""; }; - 4B8F56AB787D63007F14B0C61E33BD06 /* MKTPrinter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTPrinter.h; path = Source/OCMockito/Invocation/MKTPrinter.h; sourceTree = ""; }; - 4E2BD740DE1B84AA06B0F6CDD9272C5D /* HCIsDictionaryContainingEntries.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingEntries.h; path = Source/Library/Collection/HCIsDictionaryContainingEntries.h; sourceTree = ""; }; - 4F4468038A53A4E62772D3CE30C169A0 /* HCLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h; sourceTree = ""; }; - 4F94BD177A5DA2F0C3361AE06BE23C77 /* HCHasCount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasCount.h; path = Source/Library/Collection/HCHasCount.h; sourceTree = ""; }; - 50B487E0A20C9CE23E428337914EF740 /* MKTDoubleReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTDoubleReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTDoubleReturnSetter.m; sourceTree = ""; }; - 529737285A943113A232DF663BDD975A /* Pods-MonsterCards-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MonsterCards-dummy.m"; sourceTree = ""; }; - 52AFD506CCDC1DCB953C4F35DCA640A6 /* MKTParseCallStack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTParseCallStack.m; path = Source/OCMockito/Invocation/MKTParseCallStack.m; sourceTree = ""; }; - 551352E39C1B8344F089D156430E9B13 /* Pods-MonsterCards.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCards.debug.xcconfig"; sourceTree = ""; }; - 558E1ABEFD37DE62DD0154E12F5F137D /* MKTExecutesBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTExecutesBlock.h; path = Source/OCMockito/Stubbing/MKTExecutesBlock.h; sourceTree = ""; }; - 559F60D5CAAC878835B98F05A09A9220 /* MKTUnsignedCharReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedCharReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.h; sourceTree = ""; }; - 55D3B5BA02D597325C1B47FC13E4DD62 /* MKTInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocationMatcher.h; path = Source/OCMockito/Invocation/MKTInvocationMatcher.h; sourceTree = ""; }; - 572EAD83F471E7F9BB9A04741CD17CD7 /* HCIsEqual.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqual.m; path = Source/Library/Object/HCIsEqual.m; sourceTree = ""; }; - 589782DCDE095D4F1130D0C3B8A7CF7F /* HCStringStartsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringStartsWith.h; path = Source/Library/Text/HCStringStartsWith.h; sourceTree = ""; }; - 592DCA7BB3111ABF7B1298324C5DB56B /* HCArgumentCaptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCArgumentCaptor.m; path = Source/Library/Object/HCArgumentCaptor.m; sourceTree = ""; }; - 5A4143D42B3E84CC031BF0DCE10D9309 /* HCTestFailureReporterChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailureReporterChain.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h; sourceTree = ""; }; - 5AAC733885BA6A203647044C6526696E /* HCIsNot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNot.h; path = Source/Library/Logical/HCIsNot.h; sourceTree = ""; }; - 5BA98008ECCAC2D5B872900C6F7EF9C4 /* MKTUnsignedLongLongArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedLongLongArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.m; sourceTree = ""; }; - 5BC22DEB3F87D03E9B03144C593ED633 /* MKTInvocationsChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocationsChecker.m; path = Source/OCMockito/Verifying/MKTInvocationsChecker.m; sourceTree = ""; }; - 5BD4447D27068D9840D768D1650C8E62 /* HCStringContains.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContains.m; path = Source/Library/Text/HCStringContains.m; sourceTree = ""; }; - 5D9C31FABA1E532E2DF36E696888E27A /* HCAnyOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAnyOf.m; path = Source/Library/Logical/HCAnyOf.m; sourceTree = ""; }; - 5DB108F42179EFC48AE416AECA985501 /* HCHasProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasProperty.m; path = Source/Library/Object/HCHasProperty.m; sourceTree = ""; }; - 60917429A02D22A583C0B23DC95EA619 /* HCMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCMatcher.h; path = Source/Core/HCMatcher.h; sourceTree = ""; }; - 6285D2EAAA6C08360F10C86E04B765E3 /* HCIsSame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsSame.m; path = Source/Library/Object/HCIsSame.m; sourceTree = ""; }; - 62A84E3A6452BF7BCDA4ACC79DF3C44D /* MKTCharArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTCharArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.m; sourceTree = ""; }; - 62E47137A99BDF813A811FCE1DE3F9AF /* MKTUnsignedLongLongReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedLongLongReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.m; sourceTree = ""; }; - 6328E2DA677910CDDA3A692E28C41D00 /* NSInvocation+OCMockito.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+OCMockito.h"; path = "Source/OCMockito/Invocation/NSInvocation+OCMockito.h"; sourceTree = ""; }; - 6509B0466A9E8566693B27F3D720F896 /* HCDiagnosingMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDiagnosingMatcher.h; path = Source/Core/HCDiagnosingMatcher.h; sourceTree = ""; }; - 6765FE3E095A10CCA04B316EB3FD0E81 /* HCStringContains.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContains.h; path = Source/Library/Text/HCStringContains.h; sourceTree = ""; }; - 688A32E81F833186D271C1DDEDF196A2 /* Pods_MonsterCardsTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MonsterCardsTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6900393B465D6921C292E903EEC32C1F /* HCDescribedAs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDescribedAs.m; path = Source/Library/Decorator/HCDescribedAs.m; sourceTree = ""; }; - 691AF08E70240ABA9D35D3D1E4E8FA24 /* MKTUnsignedCharArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedCharArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedCharArgumentGetter.h; sourceTree = ""; }; - 6938763A1A07A12C15F7C1353D471391 /* MKTBoolArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTBoolArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.h; sourceTree = ""; }; - 6B9EB0943A6508B78A258A4D1692D213 /* MKTStructArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTStructArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.m; sourceTree = ""; }; - 6BB92E0E60BFC98484622AADC36943C8 /* HCUnsignedShortReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedShortReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h; sourceTree = ""; }; - 6BBC8E0F13D9CA3CADBA9BCA0D35AC30 /* HCIsInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsInstanceOf.h; path = Source/Library/Object/HCIsInstanceOf.h; sourceTree = ""; }; - 6C5C0249C92D0C2E0BC1D31DDEDF393C /* MKTUnsignedLongLongArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedLongLongArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongLongArgumentGetter.h; sourceTree = ""; }; - 6DBFE2CABA8B83DEE912638FE4A55D68 /* MKTDoubleArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTDoubleArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTDoubleArgumentGetter.h; sourceTree = ""; }; - 6E8B57E0E4D34A609056D4F2567E0463 /* HCGenericTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCGenericTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h; sourceTree = ""; }; - 6E8CE7DD1D30153B5AD5C1CAD58933BD /* HCIsEqualToNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualToNumber.h; path = Source/Library/Number/HCIsEqualToNumber.h; sourceTree = ""; }; - 6EBB82F8627ABF2AB502B110AC96100C /* HCCharReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCCharReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m; sourceTree = ""; }; - 6F25CC20C533A6EB4F38A65315C3A93B /* HCDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescription.h; path = Source/Core/HCDescription.h; sourceTree = ""; }; - 6F2D5CE5E0B330A27CD201D504E1D71E /* MKTUnsignedShortReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedShortReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedShortReturnSetter.h; sourceTree = ""; }; - 6F872B73FCED382A0048C7E512E978FB /* HCStringDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringDescription.m; path = Source/Core/HCStringDescription.m; sourceTree = ""; }; - 6FC881BC5AF31E1ED2C1B5A0813A0C89 /* HCShortReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCShortReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m; sourceTree = ""; }; - 704354BA923B2E7FD3159A24BF234D07 /* Pods-MonsterCards-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MonsterCards-umbrella.h"; sourceTree = ""; }; - 712AFDB5E8B9A9BE3B1E16DE01D0997E /* MKTStructReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTStructReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.m; sourceTree = ""; }; - 712F548A01DB50EB28795FE309B808B7 /* MKTMockitoCore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMockitoCore.m; path = Source/OCMockito/Core/MKTMockitoCore.m; sourceTree = ""; }; - 732C09647A1595A77A68B7E771EF2006 /* MKTClassReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTClassReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.h; sourceTree = ""; }; - 73E8D848016C63C2F4E672F9F39BAE81 /* MKTLongLongArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTLongLongArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.h; sourceTree = ""; }; - 7585A0B00554D868DE31B537DF34D0CB /* HCSubstringMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCSubstringMatcher.m; path = Source/Library/Text/HCSubstringMatcher.m; sourceTree = ""; }; - 7612833D4D9B0694826B1C7DD7B00F67 /* HCIsNot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNot.m; path = Source/Library/Logical/HCIsNot.m; sourceTree = ""; }; - 765A1A6A77B82DF1348BC203DB8700E1 /* HCIsCollectionContainingInAnyOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInAnyOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h; sourceTree = ""; }; - 7728EFFA552082A9DCB502FB2286C937 /* OCHamcrest.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCHamcrest.debug.xcconfig; sourceTree = ""; }; - 77D4F4AE23915C4B14B3B927567A3F8C /* MKTStructArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTStructArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTStructArgumentGetter.h; sourceTree = ""; }; - 7A9CE8C344883AB5517B9289D3CE62BC /* MKTReturnValueSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTReturnValueSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.m; sourceTree = ""; }; - 7BC1E67223D24F99FBEA4CEA7EEE41B1 /* HCIsCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCloseTo.m; path = Source/Library/Number/HCIsCloseTo.m; sourceTree = ""; }; - 7C360162E92AD2029386138F2644805C /* MKT_TPDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKT_TPDWeakProxy.m; path = "Source/ThirdParty/TPDWeakProxy-1.1.0/TPDWeakProxy/MKT_TPDWeakProxy.m"; sourceTree = ""; }; - 7C437764409E8FE79D38459CB315D6E4 /* HCIsAnything.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsAnything.m; path = Source/Library/Logical/HCIsAnything.m; sourceTree = ""; }; - 7DDE13FAD087C4C94416C87926291DA9 /* OCMockito.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OCMockito.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E8B6B3EC8CF9EF224F4012BA559561C /* HCStringEndsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringEndsWith.m; path = Source/Library/Text/HCStringEndsWith.m; sourceTree = ""; }; - 7FF893E6E27D0CBC633522E472808186 /* HCTestFailureReporterChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailureReporterChain.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m; sourceTree = ""; }; - 801866461A95BB6BB06D7ACA13B0F7BF /* MKTLongArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTLongArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.h; sourceTree = ""; }; - 80D698976F97CA2D552BCDCA05FCCD60 /* MKTAtMostTimes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTAtMostTimes.m; path = Source/OCMockito/Verifying/MKTAtMostTimes.m; sourceTree = ""; }; - 810F2E6B79A2F247C23FC14EE71FE26D /* Pods-MonsterCards-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCards-acknowledgements.plist"; sourceTree = ""; }; - 81AAB22CC8D8D414A37DF85D06679267 /* MKTUnsignedLongArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedLongArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedLongArgumentGetter.h; sourceTree = ""; }; - 81C0DC5B18405FA9D8F1CCAD8F6AEAE8 /* MKTArgumentGetterChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTArgumentGetterChain.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.h; sourceTree = ""; }; - 8398143F67390EAF146864CF91A8624C /* MKTVerificationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTVerificationMode.h; path = Source/OCMockito/Verifying/MKTVerificationMode.h; sourceTree = ""; }; - 84154B65BFEB374DB9854DC227635944 /* Pods-MonsterCardsTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MonsterCardsTests-dummy.m"; sourceTree = ""; }; - 84BA696AA619B6D0F7EA279404DB530E /* MKTTestLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTTestLocation.h; path = Source/OCMockito/Core/MKTTestLocation.h; sourceTree = ""; }; - 84DB22F6F637646B96962798407CD285 /* MKTCharArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTCharArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTCharArgumentGetter.h; sourceTree = ""; }; - 85194C9F20D4DE8555D24BFBE51573E7 /* MKTExactTimes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTExactTimes.h; path = Source/OCMockito/Verifying/MKTExactTimes.h; sourceTree = ""; }; - 8536450243E3C741A2199972639521B7 /* HCIsCollectionContainingInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInOrder.m; sourceTree = ""; }; - 85459195E748A490BCD08A471BDD5481 /* OCMockito.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = OCMockito.modulemap; sourceTree = ""; }; - 85CFD448D9D20C68710FAD8CCA67A71A /* HCStringContainsInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContainsInOrder.m; path = Source/Library/Text/HCStringContainsInOrder.m; sourceTree = ""; }; - 8640CD298B3FD74592C355F11CC4B877 /* MKTFloatArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTFloatArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.h; sourceTree = ""; }; - 8696FF9B0821118217B616791FD05FCE /* Pods-MonsterCardsTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MonsterCardsTests-acknowledgements.markdown"; sourceTree = ""; }; - 86ECF9340D3AAB01F0B3067438D46B19 /* MKTArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetter.m; sourceTree = ""; }; - 873ABF4AB8A7991B752747062FCB51AC /* MKTNumberOfInvocationsChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTNumberOfInvocationsChecker.m; path = Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.m; sourceTree = ""; }; - 8768CC38C15E8D2828A93EE7E9E490F0 /* MKTObjectReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.h; sourceTree = ""; }; - 88EBDA32FA00ED85D46F2295D74014DA /* NSInvocation+OCMockito.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+OCMockito.m"; path = "Source/OCMockito/Invocation/NSInvocation+OCMockito.m"; sourceTree = ""; }; - 8A9ADE98BFB51C4BC678151474E3EBD9 /* HCUnsignedShortReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedShortReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m; sourceTree = ""; }; - 8C8C81419E6D62EF0816BC942BB02CD8 /* MKTReturnValueSetterChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTReturnValueSetterChain.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.m; sourceTree = ""; }; - 8CA8D8BAF7CD4B2A7EA0EF327E80BEE2 /* MKTBaseMockObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTBaseMockObject.m; path = Source/OCMockito/Mocking/MKTBaseMockObject.m; sourceTree = ""; }; - 8CD7E1137210E2720DBC38CAC205A782 /* MKTCallStackElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTCallStackElement.m; path = Source/OCMockito/Invocation/MKTCallStackElement.m; sourceTree = ""; }; - 8D4B8DC415B66B703626B9AC6C7B8369 /* HCIsTypeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsTypeOf.h; path = Source/Library/Object/HCIsTypeOf.h; sourceTree = ""; }; - 8E065739ADEF8013C3C2148C748DDB7D /* HCObjectReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCObjectReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m; sourceTree = ""; }; - 8E3F1B7ACC2FC096F1720E65C897C5C2 /* MKTProtocolMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTProtocolMock.h; path = Source/OCMockito/Mocking/MKTProtocolMock.h; sourceTree = ""; }; - 8E693B636DFDFDFAF93F34658B76D57F /* MKTAnswer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAnswer.h; path = Source/OCMockito/Stubbing/MKTAnswer.h; sourceTree = ""; }; - 8F7EDB84755BA039B7EB74DB2B177280 /* HCSelfDescribing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSelfDescribing.h; path = Source/Core/HCSelfDescribing.h; sourceTree = ""; }; - 8FF49DD53ED624F5A0AA80BBBBDBC439 /* HCUnsignedLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h; sourceTree = ""; }; - 9019F0652E4A94C9696DABA14F41A520 /* HCDoubleReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDoubleReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h; sourceTree = ""; }; - 907F58A470288CFDAC15F6D91459EB9C /* MKTBoolArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTBoolArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTBoolArgumentGetter.m; sourceTree = ""; }; - 90B9385E2A53C20DA4295573EFE1EEEF /* Pods-MonsterCards-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCards-Info.plist"; sourceTree = ""; }; - 90CBD512C8E0889278945E954D072F41 /* MKTFilterCallStack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTFilterCallStack.m; path = Source/OCMockito/Invocation/MKTFilterCallStack.m; sourceTree = ""; }; - 90DA4C38B0C2E813AD63BF807583FB53 /* HCIsDictionaryContainingEntries.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingEntries.m; path = Source/Library/Collection/HCIsDictionaryContainingEntries.m; sourceTree = ""; }; - 91F44675681B10CE64FCE17A5A44F634 /* HCBoolReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBoolReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h; sourceTree = ""; }; - 92F55CA5F8286B06B44D09C3FB03A233 /* MKTUnsignedIntArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedIntArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedIntArgumentGetter.m; sourceTree = ""; }; - 92FCBC51BD8B1191F982CE56D55A9C4D /* HCAnyOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAnyOf.h; path = Source/Library/Logical/HCAnyOf.h; sourceTree = ""; }; - 932AF46CFC7A3A6B937D8C0C19C499D3 /* Pods-MonsterCards.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCards.release.xcconfig"; sourceTree = ""; }; - 9394581F1369B80095EBE1419E6069F4 /* MKTClassObjectMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTClassObjectMock.m; path = Source/OCMockito/Mocking/MKTClassObjectMock.m; sourceTree = ""; }; - 93DFA9CEB9434F5CEF259B8FBCED1B1F /* HCRunloopRunner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRunloopRunner.m; path = Source/Core/Helpers/HCRunloopRunner.m; sourceTree = ""; }; - 94D94CC498AC8824BC63C2B6F21BC578 /* OCMockito-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "OCMockito-Info.plist"; sourceTree = ""; }; - 957CA7FD5A86036E96B76D8935F0DC5B /* HCIntReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIntReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m; sourceTree = ""; }; - 9850D8A995F2F35F0C35E8CA6FEF840F /* OCHamcrest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCHamcrest.h; path = Source/OCHamcrest.h; sourceTree = ""; }; - 98522699DD82870C311B72E916EBF2BE /* OCHamcrest.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = OCHamcrest.modulemap; sourceTree = ""; }; - 98C3C63CA0908F34C5A72F4443CD3C01 /* MKTFloatArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTFloatArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTFloatArgumentGetter.m; sourceTree = ""; }; - 99A28D2A94C88375EAD626ED771CDC26 /* HCLongLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCLongLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h; sourceTree = ""; }; - 9A12FDE019356375BBCFA6581B2170A8 /* MKTStructReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTStructReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTStructReturnSetter.h; sourceTree = ""; }; - 9B0AEFC2DB6ED39C44287A03E5F33D43 /* MKTLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTLocation.m; path = Source/OCMockito/Invocation/MKTLocation.m; sourceTree = ""; }; - 9C5515B3CB3B2F502D3328E746F1B06A /* MKTObjectMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectMock.m; path = Source/OCMockito/Mocking/MKTObjectMock.m; sourceTree = ""; }; - 9C65C64152C04FD20CEF60176C490BB4 /* HCTestFailure.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailure.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailure.m; sourceTree = ""; }; - 9C719025AA0018BF030D009382FF9C96 /* Pods-MonsterCardsTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MonsterCardsTests-umbrella.h"; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DEE98911D994708B4D35823CAF2F216 /* OCMockito.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMockito.h; path = Source/OCMockito/Core/OCMockito.h; sourceTree = ""; }; - 9E185F0EACC15858F21C65B72D636B78 /* MKTAtMostTimes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAtMostTimes.h; path = Source/OCMockito/Verifying/MKTAtMostTimes.h; sourceTree = ""; }; - 9EA4549FC719D29A4F6D8D37BECD26BF /* MKTThrowsException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTThrowsException.h; path = Source/OCMockito/Stubbing/MKTThrowsException.h; sourceTree = ""; }; - 9ECB1081C6206E90D879659EF60350A8 /* HCRequireNonNilObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRequireNonNilObject.h; path = Source/Core/Helpers/HCRequireNonNilObject.h; sourceTree = ""; }; - 9F59F3F0434FEFBB4FDB037D8532C3BC /* OCHamcrest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCHamcrest.release.xcconfig; sourceTree = ""; }; - A0B26C3786C41EA86867FAF702128578 /* HCIsDictionaryContainingValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingValue.h; path = Source/Library/Collection/HCIsDictionaryContainingValue.h; sourceTree = ""; }; - A1239CBBA69233BDD6AD85A47B384CDE /* HCShortReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCShortReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h; sourceTree = ""; }; - A13C27BA36912BCE0EF3BA1A66A150AE /* HCDiagnosingMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDiagnosingMatcher.m; path = Source/Core/HCDiagnosingMatcher.m; sourceTree = ""; }; - A1BD8FBA81108EA83B8A982B9FB74824 /* MKTExactTimes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTExactTimes.m; path = Source/OCMockito/Verifying/MKTExactTimes.m; sourceTree = ""; }; - A1C3B43C8DDB4D8451D16D7F772BBCFC /* MKTLongReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTLongReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.m; sourceTree = ""; }; - A202F7038DF89580D0FE6BD754238A40 /* MKTFloatReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTFloatReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.h; sourceTree = ""; }; - A22E6B20A8830376B58016019EA26EDA /* HCIsCollectionOnlyContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionOnlyContaining.m; path = Source/Library/Collection/HCIsCollectionOnlyContaining.m; sourceTree = ""; }; - A2F9D51794366A72B340EE6DFA57799B /* HCUnsignedLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m; sourceTree = ""; }; - A38F1F105CC9E903B09A16428560AC8D /* MKTNonObjectArgumentMatching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTNonObjectArgumentMatching.h; path = Source/OCMockito/Core/MKTNonObjectArgumentMatching.h; sourceTree = ""; }; - A6E6938F87F891A7772A7B4026ED59DF /* MKTShortReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTShortReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.h; sourceTree = ""; }; - A7042956F1D5F4F414BC76421A11432A /* HCIsNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNil.h; path = Source/Library/Object/HCIsNil.h; sourceTree = ""; }; - A7469F06D3828C18C31E6569A40D5DC6 /* MKTDynamicProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTDynamicProperties.h; path = Source/OCMockito/Mocking/MKTDynamicProperties.h; sourceTree = ""; }; - A89EBE400C96D83CAC3B8C73DF6DDDEC /* HCIsCollectionContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContaining.h; path = Source/Library/Collection/HCIsCollectionContaining.h; sourceTree = ""; }; - A8D514ACCE5F36DD82C7C62549DEC79F /* HCIsEqualToNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualToNumber.m; path = Source/Library/Number/HCIsEqualToNumber.m; sourceTree = ""; }; - A8D638C1E26020B2CFA81955277F22B3 /* HCHasProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasProperty.h; path = Source/Library/Object/HCHasProperty.h; sourceTree = ""; }; - A96E0E8F901A72ACD6F39C2FF1B6A573 /* HCReturnValueGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCReturnValueGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h; sourceTree = ""; }; - A9A255A81CA4550C0F3EEC667B070699 /* MKTMockingProgress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMockingProgress.m; path = Source/OCMockito/Core/MKTMockingProgress.m; sourceTree = ""; }; - A9FD53B491EC559392EB12C1AF4D047F /* HCClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCClassMatcher.h; path = Source/Library/Object/HCClassMatcher.h; sourceTree = ""; }; - AAB9DF0E28478192160AB8EC6811D9D2 /* HCTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h; sourceTree = ""; }; - AB0E4FC39671942C571870649F0F9A21 /* MKTClassArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTClassArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTClassArgumentGetter.h; sourceTree = ""; }; - ACFFFBAB2BA0B628DA5A84AC107AA50E /* MKTSelectorArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTSelectorArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.m; sourceTree = ""; }; - AD19E9982D5E734D1032EF05DC5B1F97 /* MKTThrowsException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTThrowsException.m; path = Source/OCMockito/Stubbing/MKTThrowsException.m; sourceTree = ""; }; - AD727EBE516A6C61AD5BEF3204E7C3BD /* OCHamcrest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OCHamcrest.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B0B794D497B95C93EA694FB5B3CAA16A /* HCIsEqualCompressingWhiteSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualCompressingWhiteSpace.m; path = Source/Library/Text/HCIsEqualCompressingWhiteSpace.m; sourceTree = ""; }; - B0D745B85DCC5C30B2E1C136361909D3 /* HCIsDictionaryContainingValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingValue.m; path = Source/Library/Collection/HCIsDictionaryContainingValue.m; sourceTree = ""; }; - B10CEBA7BD70FD21F55C7B62EE88E3EF /* Pods-MonsterCards-MonsterCardsUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MonsterCards-MonsterCardsUITests.modulemap"; sourceTree = ""; }; - B2AEC6447906AEFB1CF6F9B0ECA301E5 /* HCIsTrueFalse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsTrueFalse.m; path = Source/Library/Number/HCIsTrueFalse.m; sourceTree = ""; }; - B2E678C69FB2A45B80D3A8EDE85F1DDC /* HCTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m; sourceTree = ""; }; - B3D921AE4B051F447D0B6B48CDD60D27 /* MKTUnsignedCharReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedCharReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedCharReturnSetter.m; sourceTree = ""; }; - B5E5FB9ACABA8BD4BAAFF1D3FE0906C1 /* Pods-MonsterCardsTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCardsTests-Info.plist"; sourceTree = ""; }; - B6A751D230AC2B78734B21993A927BCA /* MKTSingletonSwizzler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTSingletonSwizzler.m; path = Source/OCMockito/Mocking/MKTSingletonSwizzler.m; sourceTree = ""; }; - B8367BBBF4D142CAFEFC1116C1D51EC2 /* HCCollect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCCollect.h; path = Source/Core/Helpers/HCCollect.h; sourceTree = ""; }; - B8B8CBC4DDAFAE06C2D69D1D6048E517 /* MKTObjectArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.m; sourceTree = ""; }; - BA81D249DE2DCF35FE132923832B63F6 /* OCHamcrest-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "OCHamcrest-Info.plist"; sourceTree = ""; }; - BC5EEA20F92E7BA00140098761E804CA /* HCEvery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCEvery.m; path = Source/Library/Collection/HCEvery.m; sourceTree = ""; }; - BD01ABDA4BE87D80D5A9B9C1E63425A1 /* HCUnsignedCharReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedCharReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h; sourceTree = ""; }; - C016CCAC267DE1A28312C12DFF47F85D /* HCClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCClassMatcher.m; path = Source/Library/Object/HCClassMatcher.m; sourceTree = ""; }; - C0340AF877EFAB221B6F5D3E94A26873 /* Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist"; sourceTree = ""; }; - C08D49E1A88FFC4410273AB164781864 /* MKTLongArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTLongArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTLongArgumentGetter.m; sourceTree = ""; }; - C1835F2EAFA904DF40CCC8A23D8FF8B0 /* OCHamcrest-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "OCHamcrest-dummy.m"; sourceTree = ""; }; - C2B34606F998B7575B73A3D15954018F /* HCStringDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringDescription.h; path = Source/Core/HCStringDescription.h; sourceTree = ""; }; - C3C4494B4939FF3D1820CF17437E8EB7 /* Pods-MonsterCards-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MonsterCards-acknowledgements.markdown"; sourceTree = ""; }; - C454F8C00EF5E9FFC391FA282445CC60 /* Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown"; sourceTree = ""; }; - C58AE3E63FCE7B1758DBBE1D1C38BB39 /* MKTVerificationData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTVerificationData.h; path = Source/OCMockito/Verifying/MKTVerificationData.h; sourceTree = ""; }; - C5F7F23E1BE2809EE4D749C34164EFF7 /* MKTDynamicProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTDynamicProperties.m; path = Source/OCMockito/Mocking/MKTDynamicProperties.m; sourceTree = ""; }; - C60E4F725E1CB2116B6E7C88D81FD288 /* OCMockito.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMockito.m; path = Source/OCMockito/Core/OCMockito.m; sourceTree = ""; }; - C7510606B6F0EB6A7B0E29667AE8A9D3 /* MKTLongReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTLongReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTLongReturnSetter.h; sourceTree = ""; }; - C7A38AF4A4625748B79BF5AD096910BF /* MKTObjectReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTObjectReturnSetter.m; sourceTree = ""; }; - C973C5166E14C2B7A847EB016CE1A5EA /* HCUnsignedIntReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedIntReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h; sourceTree = ""; }; - C9C01738313ACD89E9768B737A71D896 /* MKTArgumentGetterChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTArgumentGetterChain.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTArgumentGetterChain.m; sourceTree = ""; }; - CA6C0B1B678EBAEB826C065F5923DCD0 /* MKTShortArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTShortArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.h; sourceTree = ""; }; - CB1A5CE204B393A0CA27985021AF714E /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MonsterCards-MonsterCardsUITests.release.xcconfig"; sourceTree = ""; }; - CBD86395BE4EB3CE9E5D99C2FE09F97F /* HCArgumentCaptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCArgumentCaptor.h; path = Source/Library/Object/HCArgumentCaptor.h; sourceTree = ""; }; - CC30C1058FE9C50C848DA495FB7036E4 /* HCNumberAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCNumberAssert.h; path = Source/Library/Number/HCNumberAssert.h; sourceTree = ""; }; - CD143063B07B1E23CF91C80AB43DFE1E /* HCBoolReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBoolReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m; sourceTree = ""; }; - CE50CC9964C2E5BCA40BE1C1246A0457 /* MKTUnsignedLongReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedLongReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongReturnSetter.m; sourceTree = ""; }; - CE7953303F73675BFA44165DC0E26B82 /* MKTFilterCallStack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTFilterCallStack.h; path = Source/OCMockito/Invocation/MKTFilterCallStack.h; sourceTree = ""; }; - D051BD45BE36582FA4E2D7129242385D /* MKTIntArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTIntArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.h; sourceTree = ""; }; - D090E88473BF7C14D6F652C53B6E62D4 /* HCIsDictionaryContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContaining.m; path = Source/Library/Collection/HCIsDictionaryContaining.m; sourceTree = ""; }; - D0BB07666E0A1CAF3F959BBF7A123081 /* HCBaseMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseMatcher.h; path = Source/Core/HCBaseMatcher.h; sourceTree = ""; }; - D0BC998DFA3AD3C7727902C32D7B023C /* MKTUnsignedShortArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTUnsignedShortArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTUnsignedShortArgumentGetter.m; sourceTree = ""; }; - D183B16503E7E68A9E9B8BE77AB07DFF /* HCIsEmptyCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEmptyCollection.h; path = Source/Library/Collection/HCIsEmptyCollection.h; sourceTree = ""; }; - D1D4CEC433F252BAA6E88C7F6452B73F /* MKTLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTLocation.h; path = Source/OCMockito/Invocation/MKTLocation.h; sourceTree = ""; }; - D460A5436A5E4153406D082733140750 /* MKTClassReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTClassReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTClassReturnSetter.m; sourceTree = ""; }; - D54441B89453B0E34C285B8D687059F9 /* HCIs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIs.h; path = Source/Library/Decorator/HCIs.h; sourceTree = ""; }; - D620C88FC6781BB9560C47740B880782 /* MKTAtLeastTimes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAtLeastTimes.h; path = Source/OCMockito/Verifying/MKTAtLeastTimes.h; sourceTree = ""; }; - D628B61620DB6EB0ED2B3759A1D601E8 /* HCFloatReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCFloatReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h; sourceTree = ""; }; - D637DB99FCC2A1CBD1DAFECF6D8211E7 /* Pods-MonsterCards.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MonsterCards.modulemap"; sourceTree = ""; }; - D69DE9A7FDFBA904D451536B0B6F96C1 /* HCIsEqual.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqual.h; path = Source/Library/Object/HCIsEqual.h; sourceTree = ""; }; - D7C554A7AC2D9FD9BE1ACC0A210D1D2A /* HCAssertThat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAssertThat.h; path = Source/Core/HCAssertThat.h; sourceTree = ""; }; - D8091FD4252078664713E9429EA020CF /* MKTVerificationData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTVerificationData.m; path = Source/OCMockito/Verifying/MKTVerificationData.m; sourceTree = ""; }; - D81351931406A73263288B05C493A7C2 /* HCObjectReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCObjectReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h; sourceTree = ""; }; - D896C9EEE2A6626F4E6E2A4B1E60C28F /* HCOrderingComparison.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCOrderingComparison.m; path = Source/Library/Number/HCOrderingComparison.m; sourceTree = ""; }; - D947CE2C6E92F9E4D72941C01E2F1B9A /* HCStringStartsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringStartsWith.m; path = Source/Library/Text/HCStringStartsWith.m; sourceTree = ""; }; - DB35A320FA5D77588D90D14C26FE5615 /* HCXCTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCXCTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h; sourceTree = ""; }; - DDDFECD0040D1732869BECAF0E382319 /* HCIsDictionaryContainingKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingKey.h; path = Source/Library/Collection/HCIsDictionaryContainingKey.h; sourceTree = ""; }; - DEF12651806E15F983894A3855670CBD /* HCUnsignedLongLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedLongLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h; sourceTree = ""; }; - DF10E12C4DE292F2E990E68340006DDF /* MKTMatchingInvocationsFinder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMatchingInvocationsFinder.h; path = Source/OCMockito/Invocation/MKTMatchingInvocationsFinder.h; sourceTree = ""; }; - E013CFA79F6F0CE1C0B54BF3EC0E4E5E /* MKTReturnValueSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTReturnValueSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetter.h; sourceTree = ""; }; - E0DE1344B442C69D0420A46FC37E5ADC /* HCIsDictionaryContainingKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingKey.m; path = Source/Library/Collection/HCIsDictionaryContainingKey.m; sourceTree = ""; }; - E175F49EE37A7857D4EF8B1EBBCBA704 /* HCFloatReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCFloatReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m; sourceTree = ""; }; - E1F4FA881C7079D43BB7A9C4B895782A /* MKTSingletonSwizzler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTSingletonSwizzler.h; path = Source/OCMockito/Mocking/MKTSingletonSwizzler.h; sourceTree = ""; }; - E2313D2E2EABA4F71EFD3341B7A6E81A /* MKTStubbedInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTStubbedInvocationMatcher.h; path = Source/OCMockito/Stubbing/MKTStubbedInvocationMatcher.h; sourceTree = ""; }; - E281B9CD86CE2C3467AE9FB5A3DD9EC3 /* HCUnsignedCharReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedCharReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m; sourceTree = ""; }; - E39410740663C2E0A14F4081687DC91A /* MKTOngoingStubbing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTOngoingStubbing.h; path = Source/OCMockito/Stubbing/MKTOngoingStubbing.h; sourceTree = ""; }; - E3E01A9E71DAD44F66EB69713F8D39A9 /* MKTSelectorArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTSelectorArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTSelectorArgumentGetter.h; sourceTree = ""; }; - E3FEB3E11884160D8606669A40E1D0B5 /* MKTAtLeastTimes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTAtLeastTimes.m; path = Source/OCMockito/Verifying/MKTAtLeastTimes.m; sourceTree = ""; }; - E4B1685C03F14987E2EA51F32F0E9817 /* MKTReturnsValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTReturnsValue.m; path = Source/OCMockito/Stubbing/MKTReturnsValue.m; sourceTree = ""; }; - E4F7E266FADE4B56CBD62161CEB074B1 /* MKTIntArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTIntArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTIntArgumentGetter.m; sourceTree = ""; }; - E55C8F60934B9E3486B5400144D51B87 /* MKTBaseMockObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTBaseMockObject.h; path = Source/OCMockito/Mocking/MKTBaseMockObject.h; sourceTree = ""; }; - E624982025C01963D77155028B6479C6 /* MKTReturnValueSetterChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTReturnValueSetterChain.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTReturnValueSetterChain.h; sourceTree = ""; }; - E638A8B5FFF49E7FC2DA85139374A7CE /* MKTShortReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTShortReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTShortReturnSetter.m; sourceTree = ""; }; - E7A67A1A44F2960A12360B506A358C52 /* MKTInvocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocation.h; path = Source/OCMockito/Invocation/MKTInvocation.h; sourceTree = ""; }; - E8294C7DDB7FB24726F50BBB9D28E5A1 /* OCHamcrest-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCHamcrest-umbrella.h"; sourceTree = ""; }; - E8306C8B11C03982ED702C3E91FD9FD0 /* HCInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCInvocationMatcher.m; path = Source/Core/Helpers/HCInvocationMatcher.m; sourceTree = ""; }; - E9D9780CA9FCEC917E117D6777B35BB1 /* HCIsEqualCompressingWhiteSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualCompressingWhiteSpace.h; path = Source/Library/Text/HCIsEqualCompressingWhiteSpace.h; sourceTree = ""; }; - EA12E949C744BD577BDBF65DDF8CC435 /* MKTFloatReturnSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTFloatReturnSetter.m; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTFloatReturnSetter.m; sourceTree = ""; }; - EA7EDDDA5BC1BC0E456B810249400191 /* HCHasDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasDescription.h; path = Source/Library/Object/HCHasDescription.h; sourceTree = ""; }; - EBC11A631E69A7151B32E94EDA69A134 /* MKTClassObjectMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTClassObjectMock.h; path = Source/OCMockito/Mocking/MKTClassObjectMock.h; sourceTree = ""; }; - EEFC62B3798DBBA384D124E151D0F66C /* MKTPointerArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTPointerArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTPointerArgumentGetter.h; sourceTree = ""; }; - EF258D86B6D6346812957BCD93695AE3 /* HCCollect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCCollect.m; path = Source/Core/Helpers/HCCollect.m; sourceTree = ""; }; - EF5DC0800B9EDCD568E8A0080E437D81 /* MKTTestLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTTestLocation.m; path = Source/OCMockito/Core/MKTTestLocation.m; sourceTree = ""; }; - F287D8D338B96291DF6E8C0C83250F7F /* MKTLongLongReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTLongLongReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTLongLongReturnSetter.h; sourceTree = ""; }; - F2CC95774F6F1213CF68852FAB2A9250 /* MKTNumberOfInvocationsChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTNumberOfInvocationsChecker.h; path = Source/OCMockito/Verifying/MKTNumberOfInvocationsChecker.h; sourceTree = ""; }; - F2F77FAFE27EF46F643D67889728A577 /* NSInvocation+OCHamcrest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+OCHamcrest.h"; path = "Source/Core/Helpers/NSInvocation+OCHamcrest.h"; sourceTree = ""; }; - F3E7DA0EEB24C37343A7D75DF4A73514 /* HCIsNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNil.m; path = Source/Library/Object/HCIsNil.m; sourceTree = ""; }; - F3EB3A072B8C98D740AB96A2E8E84D5A /* Pods-MonsterCards-MonsterCardsUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MonsterCards-MonsterCardsUITests-Info.plist"; sourceTree = ""; }; - F4046E1A0C30486F4E309D40944EAD25 /* MKTLongLongArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTLongLongArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTLongLongArgumentGetter.m; sourceTree = ""; }; - F406AE154752E4C1115CE738E4FD81EF /* HCTestFailure.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailure.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailure.h; sourceTree = ""; }; - F4370BB69BE59DB9293665A09CB4376E /* HCXCTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCXCTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m; sourceTree = ""; }; - F437F8EA2F4F80AE8B362B1426F240CE /* MKTShortArgumentGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTShortArgumentGetter.m; path = Source/OCMockito/Helpers/ArgumentGetters/MKTShortArgumentGetter.m; sourceTree = ""; }; - F4485BD63D4146F51B7A990D580C0D36 /* MKTObjectArgumentGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectArgumentGetter.h; path = Source/OCMockito/Helpers/ArgumentGetters/MKTObjectArgumentGetter.h; sourceTree = ""; }; - F49226BB7D1E996426B97D5CD3BEA20A /* MKTAtLeastNumberOfInvocationsChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAtLeastNumberOfInvocationsChecker.h; path = Source/OCMockito/Verifying/MKTAtLeastNumberOfInvocationsChecker.h; sourceTree = ""; }; - F566BC2D6E2FB121D49B779418D68E6A /* MKTUnsignedLongLongReturnSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTUnsignedLongLongReturnSetter.h; path = Source/OCMockito/Helpers/ReturnValueSetters/MKTUnsignedLongLongReturnSetter.h; sourceTree = ""; }; - F6BAE999C32491BA132692CE0D32AD26 /* HCConformsToProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCConformsToProtocol.m; path = Source/Library/Object/HCConformsToProtocol.m; sourceTree = ""; }; - F7E2A688E8857F1B64A972EE63951BF8 /* HCSenTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSenTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h; sourceTree = ""; }; - F89117F44AD93D49B4A1F16A1BBDE2E8 /* HCSubstringMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSubstringMatcher.h; path = Source/Library/Text/HCSubstringMatcher.h; sourceTree = ""; }; - F8B4307580176F1666012922CD068E35 /* HCIntReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIntReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h; sourceTree = ""; }; - F8D0B09986BD2A23932BF5F7FC81A045 /* HCBaseDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseDescription.h; path = Source/Core/HCBaseDescription.h; sourceTree = ""; }; - F8F4AC31B4F530372255E84F8C2BF20A /* OCMockito.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCMockito.debug.xcconfig; sourceTree = ""; }; - F924445CF95A74938C7388E9F4370AE9 /* HCStringContainsInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContainsInOrder.h; path = Source/Library/Text/HCStringContainsInOrder.h; sourceTree = ""; }; - FA04F455620B0CE7ACFA33960D1467D0 /* HCIsEqualIgnoringCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualIgnoringCase.h; path = Source/Library/Text/HCIsEqualIgnoringCase.h; sourceTree = ""; }; - FCF2DF282EEAB03CD61A2E43644D9290 /* MKTInvocationContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocationContainer.m; path = Source/OCMockito/Stubbing/MKTInvocationContainer.m; sourceTree = ""; }; - FD0D54259FF67E141B1901E1F97E4B4D /* HCEvery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCEvery.h; path = Source/Library/Collection/HCEvery.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 2FC51FF4674922ECD994EEF685AF5D9C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 26C7860E85997D7D1197607E2277D7D1 /* Foundation.framework in Frameworks */, - 6279C99C1D064A82A041398EE966BA86 /* OCHamcrest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9116E775AD924975711919BBB67E31B8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B6ACC315E3575101FC7A7A75DADD8665 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A09E36DBE13690DA55DADE1D2606EEE2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6AB0AB9F781FA05AC37A7A3C0CE66A3D /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BD7DA0835355BD835D3EEE4EEBA11F9C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6C9EAA0FE1130D13921A7DBC94CBF553 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DB3B67822A49A40509BD61FA848FD5B6 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BA525D6B55D2D1A2C1E6B5EE5E121E4C /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0C84EBF413C89006C4701B1CB5ABA424 /* Pods-MonsterCards */ = { - isa = PBXGroup; - children = ( - D637DB99FCC2A1CBD1DAFECF6D8211E7 /* Pods-MonsterCards.modulemap */, - C3C4494B4939FF3D1820CF17437E8EB7 /* Pods-MonsterCards-acknowledgements.markdown */, - 810F2E6B79A2F247C23FC14EE71FE26D /* Pods-MonsterCards-acknowledgements.plist */, - 529737285A943113A232DF663BDD975A /* Pods-MonsterCards-dummy.m */, - 90B9385E2A53C20DA4295573EFE1EEEF /* Pods-MonsterCards-Info.plist */, - 704354BA923B2E7FD3159A24BF234D07 /* Pods-MonsterCards-umbrella.h */, - 551352E39C1B8344F089D156430E9B13 /* Pods-MonsterCards.debug.xcconfig */, - 932AF46CFC7A3A6B937D8C0C19C499D3 /* Pods-MonsterCards.release.xcconfig */, - ); - name = "Pods-MonsterCards"; - path = "Target Support Files/Pods-MonsterCards"; - sourceTree = ""; - }; - 25F7154ABB8E0F71B16D76813AE28F84 /* iOS */ = { - isa = PBXGroup; - children = ( - 007D801A3A0A0E324725CD8431143BD8 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 4EEADDD04C7BD4B91787C198CC19D22C /* Support Files */ = { - isa = PBXGroup; - children = ( - 85459195E748A490BCD08A471BDD5481 /* OCMockito.modulemap */, - 3E0DB57E72A0782B49D3F4814ABAED49 /* OCMockito-dummy.m */, - 94D94CC498AC8824BC63C2B6F21BC578 /* OCMockito-Info.plist */, - 045DB28517C8EA58CCDC139E15A4CA6A /* OCMockito-prefix.pch */, - 0BF590D47280FDF772591A9EA877F3D6 /* OCMockito-umbrella.h */, - F8F4AC31B4F530372255E84F8C2BF20A /* OCMockito.debug.xcconfig */, - 484DD12B558ADD56C07E97EE1EF8F170 /* OCMockito.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/OCMockito"; - sourceTree = ""; - }; - 4FB9017EFFADCBE275DDDB74E6DDA887 /* Pods-MonsterCards-MonsterCardsUITests */ = { - isa = PBXGroup; - children = ( - B10CEBA7BD70FD21F55C7B62EE88E3EF /* Pods-MonsterCards-MonsterCardsUITests.modulemap */, - C454F8C00EF5E9FFC391FA282445CC60 /* Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown */, - C0340AF877EFAB221B6F5D3E94A26873 /* Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist */, - 3548D27B147D9EB5EB8E27D698482369 /* Pods-MonsterCards-MonsterCardsUITests-dummy.m */, - 31B0C6DA157D0EB229226DF7FF122028 /* Pods-MonsterCards-MonsterCardsUITests-frameworks.sh */, - F3EB3A072B8C98D740AB96A2E8E84D5A /* Pods-MonsterCards-MonsterCardsUITests-Info.plist */, - 1CE8542716C33029CD29A4F008FC51A2 /* Pods-MonsterCards-MonsterCardsUITests-umbrella.h */, - 056C81AEEE03ED285AA14C3491D257EE /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */, - CB1A5CE204B393A0CA27985021AF714E /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */, - ); - name = "Pods-MonsterCards-MonsterCardsUITests"; - path = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests"; - sourceTree = ""; - }; - 5416400A529F5358B7EA5C00D3CECE75 /* OCHamcrest */ = { - isa = PBXGroup; - children = ( - 2C90246A0036AA0F2032626B50C44EA9 /* HCAllOf.h */, - 40074D7AED992C4CA8F8E339AFF944A5 /* HCAllOf.m */, - 92FCBC51BD8B1191F982CE56D55A9C4D /* HCAnyOf.h */, - 5D9C31FABA1E532E2DF36E696888E27A /* HCAnyOf.m */, - CBD86395BE4EB3CE9E5D99C2FE09F97F /* HCArgumentCaptor.h */, - 592DCA7BB3111ABF7B1298324C5DB56B /* HCArgumentCaptor.m */, - D7C554A7AC2D9FD9BE1ACC0A210D1D2A /* HCAssertThat.h */, - 3B6E6DF5C04893FABD0EE412429CAC5D /* HCAssertThat.m */, - F8D0B09986BD2A23932BF5F7FC81A045 /* HCBaseDescription.h */, - 1C94B7AA30C516765BC3AFDDD944530F /* HCBaseDescription.m */, - D0BB07666E0A1CAF3F959BBF7A123081 /* HCBaseMatcher.h */, - 02EFC5FFFDE7AAEA0ADD71736996FFF4 /* HCBaseMatcher.m */, - 91F44675681B10CE64FCE17A5A44F634 /* HCBoolReturnGetter.h */, - CD143063B07B1E23CF91C80AB43DFE1E /* HCBoolReturnGetter.m */, - 115F66A544E70A0704D1EFE773B6F6A4 /* HCCharReturnGetter.h */, - 6EBB82F8627ABF2AB502B110AC96100C /* HCCharReturnGetter.m */, - A9FD53B491EC559392EB12C1AF4D047F /* HCClassMatcher.h */, - C016CCAC267DE1A28312C12DFF47F85D /* HCClassMatcher.m */, - B8367BBBF4D142CAFEFC1116C1D51EC2 /* HCCollect.h */, - EF258D86B6D6346812957BCD93695AE3 /* HCCollect.m */, - 3A58798FFD63433A2DC5DB80FBA6459F /* HCConformsToProtocol.h */, - F6BAE999C32491BA132692CE0D32AD26 /* HCConformsToProtocol.m */, - 12ED103768B5C3E59B3D08ACBB1E0046 /* HCDescribedAs.h */, - 6900393B465D6921C292E903EEC32C1F /* HCDescribedAs.m */, - 6F25CC20C533A6EB4F38A65315C3A93B /* HCDescription.h */, - 6509B0466A9E8566693B27F3D720F896 /* HCDiagnosingMatcher.h */, - A13C27BA36912BCE0EF3BA1A66A150AE /* HCDiagnosingMatcher.m */, - 9019F0652E4A94C9696DABA14F41A520 /* HCDoubleReturnGetter.h */, - 2A2161245E185CCE243DA3D3DB4E8A90 /* HCDoubleReturnGetter.m */, - FD0D54259FF67E141B1901E1F97E4B4D /* HCEvery.h */, - BC5EEA20F92E7BA00140098761E804CA /* HCEvery.m */, - D628B61620DB6EB0ED2B3759A1D601E8 /* HCFloatReturnGetter.h */, - E175F49EE37A7857D4EF8B1EBBCBA704 /* HCFloatReturnGetter.m */, - 6E8B57E0E4D34A609056D4F2567E0463 /* HCGenericTestFailureReporter.h */, - 29592D6C91F92EA62595F1214C7171A0 /* HCGenericTestFailureReporter.m */, - 4F94BD177A5DA2F0C3361AE06BE23C77 /* HCHasCount.h */, - 3B41B07476993B622F2DA6EE6C12878A /* HCHasCount.m */, - EA7EDDDA5BC1BC0E456B810249400191 /* HCHasDescription.h */, - 12EAED0BC67FA189C27C8F4E6173CC1C /* HCHasDescription.m */, - A8D638C1E26020B2CFA81955277F22B3 /* HCHasProperty.h */, - 5DB108F42179EFC48AE416AECA985501 /* HCHasProperty.m */, - F8B4307580176F1666012922CD068E35 /* HCIntReturnGetter.h */, - 957CA7FD5A86036E96B76D8935F0DC5B /* HCIntReturnGetter.m */, - 21301EC3688A9A071D836F3D977B605E /* HCInvocationMatcher.h */, - E8306C8B11C03982ED702C3E91FD9FD0 /* HCInvocationMatcher.m */, - D54441B89453B0E34C285B8D687059F9 /* HCIs.h */, - 466DCB25F4DFF1E46ECE1A8A1FACAFB8 /* HCIs.m */, - 308638B5A178D2DB437DD4A77368E02B /* HCIsAnything.h */, - 7C437764409E8FE79D38459CB315D6E4 /* HCIsAnything.m */, - 436E43E5E1772B0DFE8B0FC7D4999C78 /* HCIsCloseTo.h */, - 7BC1E67223D24F99FBEA4CEA7EEE41B1 /* HCIsCloseTo.m */, - A89EBE400C96D83CAC3B8C73DF6DDDEC /* HCIsCollectionContaining.h */, - 22DA62B7B321F17AC6E36AF664082E51 /* HCIsCollectionContaining.m */, - 765A1A6A77B82DF1348BC203DB8700E1 /* HCIsCollectionContainingInAnyOrder.h */, - 40DF8028297082B83984B1BBC81028F4 /* HCIsCollectionContainingInAnyOrder.m */, - 2E94D97424388D22FBF3742D69F039AC /* HCIsCollectionContainingInOrder.h */, - 8536450243E3C741A2199972639521B7 /* HCIsCollectionContainingInOrder.m */, - 251E8C872D2825C28F49B1990137E016 /* HCIsCollectionContainingInRelativeOrder.h */, - 061256FA10FF86124EC40F139DF44B72 /* HCIsCollectionContainingInRelativeOrder.m */, - 20B8DB81E4C91BF0810519B6BFCB3737 /* HCIsCollectionOnlyContaining.h */, - A22E6B20A8830376B58016019EA26EDA /* HCIsCollectionOnlyContaining.m */, - 3E60BB4D20F2A1A3EF0EA94DEDC37226 /* HCIsDictionaryContaining.h */, - D090E88473BF7C14D6F652C53B6E62D4 /* HCIsDictionaryContaining.m */, - 4E2BD740DE1B84AA06B0F6CDD9272C5D /* HCIsDictionaryContainingEntries.h */, - 90DA4C38B0C2E813AD63BF807583FB53 /* HCIsDictionaryContainingEntries.m */, - DDDFECD0040D1732869BECAF0E382319 /* HCIsDictionaryContainingKey.h */, - E0DE1344B442C69D0420A46FC37E5ADC /* HCIsDictionaryContainingKey.m */, - A0B26C3786C41EA86867FAF702128578 /* HCIsDictionaryContainingValue.h */, - B0D745B85DCC5C30B2E1C136361909D3 /* HCIsDictionaryContainingValue.m */, - D183B16503E7E68A9E9B8BE77AB07DFF /* HCIsEmptyCollection.h */, - 111C1B293FAE8443619252C488AFB789 /* HCIsEmptyCollection.m */, - D69DE9A7FDFBA904D451536B0B6F96C1 /* HCIsEqual.h */, - 572EAD83F471E7F9BB9A04741CD17CD7 /* HCIsEqual.m */, - E9D9780CA9FCEC917E117D6777B35BB1 /* HCIsEqualCompressingWhiteSpace.h */, - B0B794D497B95C93EA694FB5B3CAA16A /* HCIsEqualCompressingWhiteSpace.m */, - FA04F455620B0CE7ACFA33960D1467D0 /* HCIsEqualIgnoringCase.h */, - 07F4BB29822D8B212B182F4B4B03FCD0 /* HCIsEqualIgnoringCase.m */, - 6E8CE7DD1D30153B5AD5C1CAD58933BD /* HCIsEqualToNumber.h */, - A8D514ACCE5F36DD82C7C62549DEC79F /* HCIsEqualToNumber.m */, - 0A4260D5C243F2A8B09A94F2508498E0 /* HCIsIn.h */, - 1E2AFBD6FCB8143FACC8192C423940AB /* HCIsIn.m */, - 6BBC8E0F13D9CA3CADBA9BCA0D35AC30 /* HCIsInstanceOf.h */, - 2752DF9F1761F64AB71B969B0517A87F /* HCIsInstanceOf.m */, - A7042956F1D5F4F414BC76421A11432A /* HCIsNil.h */, - F3E7DA0EEB24C37343A7D75DF4A73514 /* HCIsNil.m */, - 5AAC733885BA6A203647044C6526696E /* HCIsNot.h */, - 7612833D4D9B0694826B1C7DD7B00F67 /* HCIsNot.m */, - 3D5CCBF28758495E16A6F54CD6B1709B /* HCIsSame.h */, - 6285D2EAAA6C08360F10C86E04B765E3 /* HCIsSame.m */, - 3B7551364E734142910761112DD1EBEC /* HCIsTrueFalse.h */, - B2AEC6447906AEFB1CF6F9B0ECA301E5 /* HCIsTrueFalse.m */, - 8D4B8DC415B66B703626B9AC6C7B8369 /* HCIsTypeOf.h */, - 3514676781216A31840D3367AE870722 /* HCIsTypeOf.m */, - 99A28D2A94C88375EAD626ED771CDC26 /* HCLongLongReturnGetter.h */, - 0A1EBA997CF7C9388D26D1ACC66AE8B4 /* HCLongLongReturnGetter.m */, - 4F4468038A53A4E62772D3CE30C169A0 /* HCLongReturnGetter.h */, - 081615EDD706D6D9D71741A5D532762C /* HCLongReturnGetter.m */, - 60917429A02D22A583C0B23DC95EA619 /* HCMatcher.h */, - CC30C1058FE9C50C848DA495FB7036E4 /* HCNumberAssert.h */, - 2F5FECF01852FF018CD57C24B635EEF6 /* HCNumberAssert.m */, - D81351931406A73263288B05C493A7C2 /* HCObjectReturnGetter.h */, - 8E065739ADEF8013C3C2148C748DDB7D /* HCObjectReturnGetter.m */, - 32EC260CE31FA061B78C8F38AEA93B96 /* HCOrderingComparison.h */, - D896C9EEE2A6626F4E6E2A4B1E60C28F /* HCOrderingComparison.m */, - 9ECB1081C6206E90D879659EF60350A8 /* HCRequireNonNilObject.h */, - 17FB0581EEE8D21EB74D81C8FB623919 /* HCRequireNonNilObject.m */, - 1497C224AE3BEC0772BAB3B839DCD4DC /* HCReturnTypeHandlerChain.h */, - 421EBC4EA258BE435D5627187F9923FA /* HCReturnTypeHandlerChain.m */, - A96E0E8F901A72ACD6F39C2FF1B6A573 /* HCReturnValueGetter.h */, - 462CC631461FF0F792689156760B4CFA /* HCReturnValueGetter.m */, - 08E0DFD1C1DA3EF7E7A1159BE7112B7E /* HCRunloopRunner.h */, - 93DFA9CEB9434F5CEF259B8FBCED1B1F /* HCRunloopRunner.m */, - 8F7EDB84755BA039B7EB74DB2B177280 /* HCSelfDescribing.h */, - F7E2A688E8857F1B64A972EE63951BF8 /* HCSenTestFailureReporter.h */, - 42C2C9797F1DCE7ACA6935B537A36EAF /* HCSenTestFailureReporter.m */, - A1239CBBA69233BDD6AD85A47B384CDE /* HCShortReturnGetter.h */, - 6FC881BC5AF31E1ED2C1B5A0813A0C89 /* HCShortReturnGetter.m */, - 6765FE3E095A10CCA04B316EB3FD0E81 /* HCStringContains.h */, - 5BD4447D27068D9840D768D1650C8E62 /* HCStringContains.m */, - F924445CF95A74938C7388E9F4370AE9 /* HCStringContainsInOrder.h */, - 85CFD448D9D20C68710FAD8CCA67A71A /* HCStringContainsInOrder.m */, - C2B34606F998B7575B73A3D15954018F /* HCStringDescription.h */, - 6F872B73FCED382A0048C7E512E978FB /* HCStringDescription.m */, - 381B0683777C9C9E7E4338161EA448C4 /* HCStringEndsWith.h */, - 7E8B6B3EC8CF9EF224F4012BA559561C /* HCStringEndsWith.m */, - 589782DCDE095D4F1130D0C3B8A7CF7F /* HCStringStartsWith.h */, - D947CE2C6E92F9E4D72941C01E2F1B9A /* HCStringStartsWith.m */, - F89117F44AD93D49B4A1F16A1BBDE2E8 /* HCSubstringMatcher.h */, - 7585A0B00554D868DE31B537DF34D0CB /* HCSubstringMatcher.m */, - F406AE154752E4C1115CE738E4FD81EF /* HCTestFailure.h */, - 9C65C64152C04FD20CEF60176C490BB4 /* HCTestFailure.m */, - AAB9DF0E28478192160AB8EC6811D9D2 /* HCTestFailureReporter.h */, - B2E678C69FB2A45B80D3A8EDE85F1DDC /* HCTestFailureReporter.m */, - 5A4143D42B3E84CC031BF0DCE10D9309 /* HCTestFailureReporterChain.h */, - 7FF893E6E27D0CBC633522E472808186 /* HCTestFailureReporterChain.m */, - 231441CCBAC14BE463F54A8F059ECBD6 /* HCThrowsException.h */, - 35AA24F7451D1D549C6D719969227E73 /* HCThrowsException.m */, - BD01ABDA4BE87D80D5A9B9C1E63425A1 /* HCUnsignedCharReturnGetter.h */, - E281B9CD86CE2C3467AE9FB5A3DD9EC3 /* HCUnsignedCharReturnGetter.m */, - C973C5166E14C2B7A847EB016CE1A5EA /* HCUnsignedIntReturnGetter.h */, - 2E361895501CA52BB097C79F0F4BE0CF /* HCUnsignedIntReturnGetter.m */, - DEF12651806E15F983894A3855670CBD /* HCUnsignedLongLongReturnGetter.h */, - 206375FFA964013385748454D28BB1B6 /* HCUnsignedLongLongReturnGetter.m */, - 8FF49DD53ED624F5A0AA80BBBBDBC439 /* HCUnsignedLongReturnGetter.h */, - A2F9D51794366A72B340EE6DFA57799B /* HCUnsignedLongReturnGetter.m */, - 6BB92E0E60BFC98484622AADC36943C8 /* HCUnsignedShortReturnGetter.h */, - 8A9ADE98BFB51C4BC678151474E3EBD9 /* HCUnsignedShortReturnGetter.m */, - 2F2F1271D254511FF8828377A5661BD2 /* HCWrapInMatcher.h */, - 2E2A45A1C15CCE3AD2136871E73C9242 /* HCWrapInMatcher.m */, - DB35A320FA5D77588D90D14C26FE5615 /* HCXCTestFailureReporter.h */, - F4370BB69BE59DB9293665A09CB4376E /* HCXCTestFailureReporter.m */, - F2F77FAFE27EF46F643D67889728A577 /* NSInvocation+OCHamcrest.h */, - 27F37A006BF149397DE1FDAF316B7803 /* NSInvocation+OCHamcrest.m */, - 9850D8A995F2F35F0C35E8CA6FEF840F /* OCHamcrest.h */, - E084CB31F4A8BF24F3AD78410A64310F /* Support Files */, - ); - path = OCHamcrest; - sourceTree = ""; - }; - 5A778027D8AA5EB7A0528682CE692D7F /* Frameworks */ = { - isa = PBXGroup; - children = ( - AD727EBE516A6C61AD5BEF3204E7C3BD /* OCHamcrest.framework */, - 25F7154ABB8E0F71B16D76813AE28F84 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 65FDF2405C9C3421A245FF1BAA90D523 /* Pods */ = { - isa = PBXGroup; - children = ( - 5416400A529F5358B7EA5C00D3CECE75 /* OCHamcrest */, - 82C95E61CC051A38E1B1760DE50B0BA0 /* OCMockito */, - ); - name = Pods; - sourceTree = ""; - }; - 82C95E61CC051A38E1B1760DE50B0BA0 /* OCMockito */ = { - isa = PBXGroup; - children = ( - 07F817FA9995AED3684CC19DAFC23A85 /* MKT_TPDWeakProxy.h */, - 7C360162E92AD2029386138F2644805C /* MKT_TPDWeakProxy.m */, - 8E693B636DFDFDFAF93F34658B76D57F /* MKTAnswer.h */, - 1041B75357FE4417A40F02B99718EA2A /* MKTArgumentGetter.h */, - 86ECF9340D3AAB01F0B3067438D46B19 /* MKTArgumentGetter.m */, - 81C0DC5B18405FA9D8F1CCAD8F6AEAE8 /* MKTArgumentGetterChain.h */, - C9C01738313ACD89E9768B737A71D896 /* MKTArgumentGetterChain.m */, - F49226BB7D1E996426B97D5CD3BEA20A /* MKTAtLeastNumberOfInvocationsChecker.h */, - 4920D12A419167DF2D8531ABD0408C61 /* MKTAtLeastNumberOfInvocationsChecker.m */, - D620C88FC6781BB9560C47740B880782 /* MKTAtLeastTimes.h */, - E3FEB3E11884160D8606669A40E1D0B5 /* MKTAtLeastTimes.m */, - 37D46A9D7B5F034E52DBE429970C830C /* MKTAtMostNumberOfInvocationsChecker.h */, - 23348E5CB510721F100C5513A0C5956C /* MKTAtMostNumberOfInvocationsChecker.m */, - 9E185F0EACC15858F21C65B72D636B78 /* MKTAtMostTimes.h */, - 80D698976F97CA2D552BCDCA05FCCD60 /* MKTAtMostTimes.m */, - E55C8F60934B9E3486B5400144D51B87 /* MKTBaseMockObject.h */, - 8CA8D8BAF7CD4B2A7EA0EF327E80BEE2 /* MKTBaseMockObject.m */, - 6938763A1A07A12C15F7C1353D471391 /* MKTBoolArgumentGetter.h */, - 907F58A470288CFDAC15F6D91459EB9C /* MKTBoolArgumentGetter.m */, - 3CDAA4D816A7367C058B9D5DCE8F668F /* MKTBoolReturnSetter.h */, - 14234E40E334C9012B4C42D5A2E47B20 /* MKTBoolReturnSetter.m */, - 1FAACE62919A576A4BF47A82B23A1AA7 /* MKTCallStackElement.h */, - 8CD7E1137210E2720DBC38CAC205A782 /* MKTCallStackElement.m */, - 84DB22F6F637646B96962798407CD285 /* MKTCharArgumentGetter.h */, - 62A84E3A6452BF7BCDA4ACC79DF3C44D /* MKTCharArgumentGetter.m */, - 0B63E72018F8DCD27388CB9C1F84CDFE /* MKTCharReturnSetter.h */, - 2BF2F90513A67534C2FE246C03A17258 /* MKTCharReturnSetter.m */, - AB0E4FC39671942C571870649F0F9A21 /* MKTClassArgumentGetter.h */, - 0FA62431AB0240FF502CA857D80416D6 /* MKTClassArgumentGetter.m */, - EBC11A631E69A7151B32E94EDA69A134 /* MKTClassObjectMock.h */, - 9394581F1369B80095EBE1419E6069F4 /* MKTClassObjectMock.m */, - 732C09647A1595A77A68B7E771EF2006 /* MKTClassReturnSetter.h */, - D460A5436A5E4153406D082733140750 /* MKTClassReturnSetter.m */, - 6DBFE2CABA8B83DEE912638FE4A55D68 /* MKTDoubleArgumentGetter.h */, - 3F89042174A732A619EDE40650224717 /* MKTDoubleArgumentGetter.m */, - 458BD2863290A21B82FD7CED07513B56 /* MKTDoubleReturnSetter.h */, - 50B487E0A20C9CE23E428337914EF740 /* MKTDoubleReturnSetter.m */, - A7469F06D3828C18C31E6569A40D5DC6 /* MKTDynamicProperties.h */, - C5F7F23E1BE2809EE4D749C34164EFF7 /* MKTDynamicProperties.m */, - 85194C9F20D4DE8555D24BFBE51573E7 /* MKTExactTimes.h */, - A1BD8FBA81108EA83B8A982B9FB74824 /* MKTExactTimes.m */, - 558E1ABEFD37DE62DD0154E12F5F137D /* MKTExecutesBlock.h */, - 444C303DDC591C6E560D356151507DC8 /* MKTExecutesBlock.m */, - CE7953303F73675BFA44165DC0E26B82 /* MKTFilterCallStack.h */, - 90CBD512C8E0889278945E954D072F41 /* MKTFilterCallStack.m */, - 8640CD298B3FD74592C355F11CC4B877 /* MKTFloatArgumentGetter.h */, - 98C3C63CA0908F34C5A72F4443CD3C01 /* MKTFloatArgumentGetter.m */, - A202F7038DF89580D0FE6BD754238A40 /* MKTFloatReturnSetter.h */, - EA12E949C744BD577BDBF65DDF8CC435 /* MKTFloatReturnSetter.m */, - D051BD45BE36582FA4E2D7129242385D /* MKTIntArgumentGetter.h */, - E4F7E266FADE4B56CBD62161CEB074B1 /* MKTIntArgumentGetter.m */, - 2133CFE70D680BF4AA7794C3459171E5 /* MKTIntReturnSetter.h */, - 087B9B2390D1C55B1740AEDA9909ABFE /* MKTIntReturnSetter.m */, - E7A67A1A44F2960A12360B506A358C52 /* MKTInvocation.h */, - 44F69EEC25EFDAA9F7D5A5FB8AC73E58 /* MKTInvocation.m */, - 0B266C09019B3F63F1051024F37771FD /* MKTInvocationContainer.h */, - FCF2DF282EEAB03CD61A2E43644D9290 /* MKTInvocationContainer.m */, - 55D3B5BA02D597325C1B47FC13E4DD62 /* MKTInvocationMatcher.h */, - 3A38F0CE31D536EC0E0A9B3345828412 /* MKTInvocationMatcher.m */, - 2B85AAD38A9E495F5D0C1167CA2D84F7 /* MKTInvocationsChecker.h */, - 5BC22DEB3F87D03E9B03144C593ED633 /* MKTInvocationsChecker.m */, - D1D4CEC433F252BAA6E88C7F6452B73F /* MKTLocation.h */, - 9B0AEFC2DB6ED39C44287A03E5F33D43 /* MKTLocation.m */, - 801866461A95BB6BB06D7ACA13B0F7BF /* MKTLongArgumentGetter.h */, - C08D49E1A88FFC4410273AB164781864 /* MKTLongArgumentGetter.m */, - 73E8D848016C63C2F4E672F9F39BAE81 /* MKTLongLongArgumentGetter.h */, - F4046E1A0C30486F4E309D40944EAD25 /* MKTLongLongArgumentGetter.m */, - F287D8D338B96291DF6E8C0C83250F7F /* MKTLongLongReturnSetter.h */, - 0DBC5E7D6E166C07300DC815A802EF4C /* MKTLongLongReturnSetter.m */, - C7510606B6F0EB6A7B0E29667AE8A9D3 /* MKTLongReturnSetter.h */, - A1C3B43C8DDB4D8451D16D7F772BBCFC /* MKTLongReturnSetter.m */, - DF10E12C4DE292F2E990E68340006DDF /* MKTMatchingInvocationsFinder.h */, - 262887178D59E3BE71DA8A4F77FA08E6 /* MKTMatchingInvocationsFinder.m */, - 086FED0F18625DB02BF14B8D07C03229 /* MKTMissingInvocationChecker.h */, - 1F3E25D867C0D0F5A09D3154F903EE09 /* MKTMissingInvocationChecker.m */, - 00B61151F229419C15B5032E410EA5E5 /* MKTMockingProgress.h */, - A9A255A81CA4550C0F3EEC667B070699 /* MKTMockingProgress.m */, - 1EF334ED943AAE463B1976F1C4B5B116 /* MKTMockitoCore.h */, - 712F548A01DB50EB28795FE309B808B7 /* MKTMockitoCore.m */, - A38F1F105CC9E903B09A16428560AC8D /* MKTNonObjectArgumentMatching.h */, - F2CC95774F6F1213CF68852FAB2A9250 /* MKTNumberOfInvocationsChecker.h */, - 873ABF4AB8A7991B752747062FCB51AC /* MKTNumberOfInvocationsChecker.m */, - 25BC887A7D50946D54F0744DE276C1C6 /* MKTObjectAndProtocolMock.h */, - 460F39594C0CA1F9FED8D53D423CF004 /* MKTObjectAndProtocolMock.m */, - F4485BD63D4146F51B7A990D580C0D36 /* MKTObjectArgumentGetter.h */, - B8B8CBC4DDAFAE06C2D69D1D6048E517 /* MKTObjectArgumentGetter.m */, - 0E505D922B739313AC0C2215D7D81E4D /* MKTObjectMock.h */, - 9C5515B3CB3B2F502D3328E746F1B06A /* MKTObjectMock.m */, - 8768CC38C15E8D2828A93EE7E9E490F0 /* MKTObjectReturnSetter.h */, - C7A38AF4A4625748B79BF5AD096910BF /* MKTObjectReturnSetter.m */, - E39410740663C2E0A14F4081687DC91A /* MKTOngoingStubbing.h */, - 32BF8BE9EF675470A729BA22C1361A6D /* MKTOngoingStubbing.m */, - 333F751C5679F8CB01A6390F104DA084 /* MKTParseCallStack.h */, - 52AFD506CCDC1DCB953C4F35DCA640A6 /* MKTParseCallStack.m */, - EEFC62B3798DBBA384D124E151D0F66C /* MKTPointerArgumentGetter.h */, - 2331CBFB327757FBA88D0D7AF4B70673 /* MKTPointerArgumentGetter.m */, - 4B8F56AB787D63007F14B0C61E33BD06 /* MKTPrinter.h */, - 207D144CA82E0A26F82DB0E9EC77D3E5 /* MKTPrinter.m */, - 8E3F1B7ACC2FC096F1720E65C897C5C2 /* MKTProtocolMock.h */, - 39D41EE12A4E3D17A653D8F3E5B90D07 /* MKTProtocolMock.m */, - 1A9E16709A0241EF15E3184FDAA283BD /* MKTReturnsValue.h */, - E4B1685C03F14987E2EA51F32F0E9817 /* MKTReturnsValue.m */, - E013CFA79F6F0CE1C0B54BF3EC0E4E5E /* MKTReturnValueSetter.h */, - 7A9CE8C344883AB5517B9289D3CE62BC /* MKTReturnValueSetter.m */, - E624982025C01963D77155028B6479C6 /* MKTReturnValueSetterChain.h */, - 8C8C81419E6D62EF0816BC942BB02CD8 /* MKTReturnValueSetterChain.m */, - E3E01A9E71DAD44F66EB69713F8D39A9 /* MKTSelectorArgumentGetter.h */, - ACFFFBAB2BA0B628DA5A84AC107AA50E /* MKTSelectorArgumentGetter.m */, - CA6C0B1B678EBAEB826C065F5923DCD0 /* MKTShortArgumentGetter.h */, - F437F8EA2F4F80AE8B362B1426F240CE /* MKTShortArgumentGetter.m */, - A6E6938F87F891A7772A7B4026ED59DF /* MKTShortReturnSetter.h */, - E638A8B5FFF49E7FC2DA85139374A7CE /* MKTShortReturnSetter.m */, - E1F4FA881C7079D43BB7A9C4B895782A /* MKTSingletonSwizzler.h */, - B6A751D230AC2B78734B21993A927BCA /* MKTSingletonSwizzler.m */, - 77D4F4AE23915C4B14B3B927567A3F8C /* MKTStructArgumentGetter.h */, - 6B9EB0943A6508B78A258A4D1692D213 /* MKTStructArgumentGetter.m */, - 9A12FDE019356375BBCFA6581B2170A8 /* MKTStructReturnSetter.h */, - 712AFDB5E8B9A9BE3B1E16DE01D0997E /* MKTStructReturnSetter.m */, - E2313D2E2EABA4F71EFD3341B7A6E81A /* MKTStubbedInvocationMatcher.h */, - 0C2AE5F1CBE44A8AC158F91E76A9561F /* MKTStubbedInvocationMatcher.m */, - 84BA696AA619B6D0F7EA279404DB530E /* MKTTestLocation.h */, - EF5DC0800B9EDCD568E8A0080E437D81 /* MKTTestLocation.m */, - 9EA4549FC719D29A4F6D8D37BECD26BF /* MKTThrowsException.h */, - AD19E9982D5E734D1032EF05DC5B1F97 /* MKTThrowsException.m */, - 691AF08E70240ABA9D35D3D1E4E8FA24 /* MKTUnsignedCharArgumentGetter.h */, - 01DABDA5B4A117EB894E1A7651BBFB1C /* MKTUnsignedCharArgumentGetter.m */, - 559F60D5CAAC878835B98F05A09A9220 /* MKTUnsignedCharReturnSetter.h */, - B3D921AE4B051F447D0B6B48CDD60D27 /* MKTUnsignedCharReturnSetter.m */, - 4A90BB06D5CC2236A79A6C720310609A /* MKTUnsignedIntArgumentGetter.h */, - 92F55CA5F8286B06B44D09C3FB03A233 /* MKTUnsignedIntArgumentGetter.m */, - 4A93CD9BCB843D55CA727E8D320AF65D /* MKTUnsignedIntReturnSetter.h */, - 01B75014846B68D5E4FC1E4EC926EF6B /* MKTUnsignedIntReturnSetter.m */, - 81AAB22CC8D8D414A37DF85D06679267 /* MKTUnsignedLongArgumentGetter.h */, - 29E3E28E517D5E40573CDD1CF19D0E2D /* MKTUnsignedLongArgumentGetter.m */, - 6C5C0249C92D0C2E0BC1D31DDEDF393C /* MKTUnsignedLongLongArgumentGetter.h */, - 5BA98008ECCAC2D5B872900C6F7EF9C4 /* MKTUnsignedLongLongArgumentGetter.m */, - F566BC2D6E2FB121D49B779418D68E6A /* MKTUnsignedLongLongReturnSetter.h */, - 62E47137A99BDF813A811FCE1DE3F9AF /* MKTUnsignedLongLongReturnSetter.m */, - 0E8D99BCDD5034A685B1132ABEE31787 /* MKTUnsignedLongReturnSetter.h */, - CE50CC9964C2E5BCA40BE1C1246A0457 /* MKTUnsignedLongReturnSetter.m */, - 0C75B924AE86293F7EDE8408E95E7B0B /* MKTUnsignedShortArgumentGetter.h */, - D0BC998DFA3AD3C7727902C32D7B023C /* MKTUnsignedShortArgumentGetter.m */, - 6F2D5CE5E0B330A27CD201D504E1D71E /* MKTUnsignedShortReturnSetter.h */, - 45272A504E2D28004C6939415A77D8FB /* MKTUnsignedShortReturnSetter.m */, - C58AE3E63FCE7B1758DBBE1D1C38BB39 /* MKTVerificationData.h */, - D8091FD4252078664713E9429EA020CF /* MKTVerificationData.m */, - 8398143F67390EAF146864CF91A8624C /* MKTVerificationMode.h */, - 6328E2DA677910CDDA3A692E28C41D00 /* NSInvocation+OCMockito.h */, - 88EBDA32FA00ED85D46F2295D74014DA /* NSInvocation+OCMockito.m */, - 9DEE98911D994708B4D35823CAF2F216 /* OCMockito.h */, - C60E4F725E1CB2116B6E7C88D81FD288 /* OCMockito.m */, - 4EEADDD04C7BD4B91787C198CC19D22C /* Support Files */, - ); - path = OCMockito; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 5A778027D8AA5EB7A0528682CE692D7F /* Frameworks */, - 65FDF2405C9C3421A245FF1BAA90D523 /* Pods */, - D38B0D79F91A53608486086AF5B4AD1C /* Products */, - F65337BFF35068CF5D802CEE699CBD2D /* Targets Support Files */, - ); - sourceTree = ""; - }; - D38B0D79F91A53608486086AF5B4AD1C /* Products */ = { - isa = PBXGroup; - children = ( - 46E9DB656AB852B52134EA8B5DE55D5C /* OCHamcrest.framework */, - 7DDE13FAD087C4C94416C87926291DA9 /* OCMockito.framework */, - 11089B3864BDF5DACB86EBD5EEAB27AE /* Pods_MonsterCards.framework */, - 0AEE95FDC2144C3DDC84BFFF0AD3286D /* Pods_MonsterCards_MonsterCardsUITests.framework */, - 688A32E81F833186D271C1DDEDF196A2 /* Pods_MonsterCardsTests.framework */, - ); - name = Products; - sourceTree = ""; - }; - E084CB31F4A8BF24F3AD78410A64310F /* Support Files */ = { - isa = PBXGroup; - children = ( - 98522699DD82870C311B72E916EBF2BE /* OCHamcrest.modulemap */, - C1835F2EAFA904DF40CCC8A23D8FF8B0 /* OCHamcrest-dummy.m */, - BA81D249DE2DCF35FE132923832B63F6 /* OCHamcrest-Info.plist */, - 47B5C2A311F8CD3FF35437ECDAF2A96F /* OCHamcrest-prefix.pch */, - E8294C7DDB7FB24726F50BBB9D28E5A1 /* OCHamcrest-umbrella.h */, - 7728EFFA552082A9DCB502FB2286C937 /* OCHamcrest.debug.xcconfig */, - 9F59F3F0434FEFBB4FDB037D8532C3BC /* OCHamcrest.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/OCHamcrest"; - sourceTree = ""; - }; - EDE426ED6F0E1FB72A77775608808FD0 /* Pods-MonsterCardsTests */ = { - isa = PBXGroup; - children = ( - 2E437669DB85BB018333237AC38D91FD /* Pods-MonsterCardsTests.modulemap */, - 8696FF9B0821118217B616791FD05FCE /* Pods-MonsterCardsTests-acknowledgements.markdown */, - 22B91E67557209B13B3B9307449E9679 /* Pods-MonsterCardsTests-acknowledgements.plist */, - 84154B65BFEB374DB9854DC227635944 /* Pods-MonsterCardsTests-dummy.m */, - 13E4E182A4FAFEAAAEC6EFB0D9E44EB5 /* Pods-MonsterCardsTests-frameworks.sh */, - B5E5FB9ACABA8BD4BAAFF1D3FE0906C1 /* Pods-MonsterCardsTests-Info.plist */, - 9C719025AA0018BF030D009382FF9C96 /* Pods-MonsterCardsTests-umbrella.h */, - 13CC220F804D92068162216E154A2C1F /* Pods-MonsterCardsTests.debug.xcconfig */, - 1AAE1A2BD70149D0C19447ACC7945148 /* Pods-MonsterCardsTests.release.xcconfig */, - ); - name = "Pods-MonsterCardsTests"; - path = "Target Support Files/Pods-MonsterCardsTests"; - sourceTree = ""; - }; - F65337BFF35068CF5D802CEE699CBD2D /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 0C84EBF413C89006C4701B1CB5ABA424 /* Pods-MonsterCards */, - 4FB9017EFFADCBE275DDDB74E6DDA887 /* Pods-MonsterCards-MonsterCardsUITests */, - EDE426ED6F0E1FB72A77775608808FD0 /* Pods-MonsterCardsTests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0055F3DBCD0A787F92064F2676DDB06C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C5980869746578E3F9DE37BFC194CE7B /* Pods-MonsterCardsTests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7255155263B3E14BB016A7A5E868BEC9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 785C5C4B0462F94602021DC62269E1B5 /* Pods-MonsterCards-MonsterCardsUITests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 73925740DAA55402BE476791055BDACD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 960AE809B6F84A7E201E1D6E3EC21997 /* MKT_TPDWeakProxy.h in Headers */, - 48CCE0FE8DEE43F765585D27EF18478B /* MKTAnswer.h in Headers */, - 3FFCBE09C913D2717E80B00EBA43537C /* MKTArgumentGetter.h in Headers */, - A28C660AF8E3132E19E1AF055F4BE6A4 /* MKTArgumentGetterChain.h in Headers */, - 48A7EBE2B8C7BE624B0C41E3B25A96C5 /* MKTAtLeastNumberOfInvocationsChecker.h in Headers */, - 7C6B61AF43078E58D4C5F5084AD1FC9F /* MKTAtLeastTimes.h in Headers */, - 63EE4C5601F67C91A37ADDA21E4648F2 /* MKTAtMostNumberOfInvocationsChecker.h in Headers */, - BB9AD17BAE3F763736794C00398B5D7D /* MKTAtMostTimes.h in Headers */, - 28EEE26BBFCFF822B8A26F1233BE87B1 /* MKTBaseMockObject.h in Headers */, - 83FE6F14704CA6C8B33AADE4F3D79994 /* MKTBoolArgumentGetter.h in Headers */, - 292F0919E2C83D6BC2867842545C257B /* MKTBoolReturnSetter.h in Headers */, - 795DF7E92814FC4C1C1288898672850F /* MKTCallStackElement.h in Headers */, - FBEA576ACAF9BA84660624EFB3F6FD22 /* MKTCharArgumentGetter.h in Headers */, - 42B1E0631CA3B7885477A35F35CC7096 /* MKTCharReturnSetter.h in Headers */, - A95BEA138372346299459B9FC04B565A /* MKTClassArgumentGetter.h in Headers */, - 7B7CE7C02FE3F0525BCFB074CB6FBA57 /* MKTClassObjectMock.h in Headers */, - 23454080FBB7928B3547BCD0C561F088 /* MKTClassReturnSetter.h in Headers */, - F0E70AC299F0831C0E875C0706B907AC /* MKTDoubleArgumentGetter.h in Headers */, - 007CFCACD1DE9E498C1861D1B0C0BD3E /* MKTDoubleReturnSetter.h in Headers */, - 996356727CBAE60DD0BEE56843FEEBF1 /* MKTDynamicProperties.h in Headers */, - FB7CA42C054C925F7F67D21CF2E417F6 /* MKTExactTimes.h in Headers */, - 1B61706E9591558F16B03527C02BFF91 /* MKTExecutesBlock.h in Headers */, - C717F917396C678FB8F99A95F27B2EF9 /* MKTFilterCallStack.h in Headers */, - BC8293E691AA7B46E489871661C81CD7 /* MKTFloatArgumentGetter.h in Headers */, - A6582DF5666FAD2198F54F080F167568 /* MKTFloatReturnSetter.h in Headers */, - 173CE0C56F8C1DDFD1FA6E906B311B10 /* MKTIntArgumentGetter.h in Headers */, - D92726845686E07EC82EC2653ADD19B1 /* MKTIntReturnSetter.h in Headers */, - 1F56A53B585C6B67BC069E72589C45BF /* MKTInvocation.h in Headers */, - 690E3691D8F8E2FC259909C6E0A64F33 /* MKTInvocationContainer.h in Headers */, - 050D6F8B082950B8B7D6F47F329E27E5 /* MKTInvocationMatcher.h in Headers */, - BC80D34F8897CB758F1F0004467F090E /* MKTInvocationsChecker.h in Headers */, - 81C193765AE203E5EAC50147EB55449B /* MKTLocation.h in Headers */, - A432FFAD80299B04C87DDFC2C2954D06 /* MKTLongArgumentGetter.h in Headers */, - 816E49A41D0CE04FA8AF8BE6942B34C7 /* MKTLongLongArgumentGetter.h in Headers */, - D812A230EC69FD24E4F11BEEA4AFAD52 /* MKTLongLongReturnSetter.h in Headers */, - 9F7AC0D1A5615F7654766CAAA5A3F836 /* MKTLongReturnSetter.h in Headers */, - D79FD0F7E069BDCD3FEC2C7C294B1E15 /* MKTMatchingInvocationsFinder.h in Headers */, - 8DD9CEEA16A8CE23F451843D99177751 /* MKTMissingInvocationChecker.h in Headers */, - E8D442DB031FEEB62433BE96C8AB33DB /* MKTMockingProgress.h in Headers */, - FBEBFF5AF28CE83D7481D44FF7897F8D /* MKTMockitoCore.h in Headers */, - 475A2C2CA379FF544DC96B8DB0311529 /* MKTNonObjectArgumentMatching.h in Headers */, - C0E76C47DE90EC3AA19737C61C272645 /* MKTNumberOfInvocationsChecker.h in Headers */, - 438442E1A3A9E149D456BA8B04FCA5EF /* MKTObjectAndProtocolMock.h in Headers */, - A62EDCD9C0C55A0C303C7F13F6DDA54C /* MKTObjectArgumentGetter.h in Headers */, - 1C91BC105424317143C13B148565BB9D /* MKTObjectMock.h in Headers */, - CD7C20CC0D3BE89833E2B88723F817A2 /* MKTObjectReturnSetter.h in Headers */, - 7E13506EA2F3466772368654AA8F6C38 /* MKTOngoingStubbing.h in Headers */, - F5B6023D722D37FD50408EFF48911585 /* MKTParseCallStack.h in Headers */, - C40A4848255A8F87D6B0AB9F7E57A4B0 /* MKTPointerArgumentGetter.h in Headers */, - E6D25D0C767F65C2A690D163E3D41524 /* MKTPrinter.h in Headers */, - FD0A25135204FAC9F5C5BCAF990E14CB /* MKTProtocolMock.h in Headers */, - 1B1E6CCD7088156EE6D2920649A6E34C /* MKTReturnsValue.h in Headers */, - B0C3D04FC62EC72CD69DEEC9FD9F3DE9 /* MKTReturnValueSetter.h in Headers */, - 9CE301579C8EA60560F27F202B774A1B /* MKTReturnValueSetterChain.h in Headers */, - 8F737156BC90197CA15B0B71844E00DB /* MKTSelectorArgumentGetter.h in Headers */, - 33D152396681BE5A669712E405638A79 /* MKTShortArgumentGetter.h in Headers */, - E11C50FF8F20203F3AAA17501ADB123E /* MKTShortReturnSetter.h in Headers */, - 96C9B828935A43B3034F2CE38BF231CC /* MKTSingletonSwizzler.h in Headers */, - 5073D56FACA487D1D0323D7377851C19 /* MKTStructArgumentGetter.h in Headers */, - 8F06868F19F645BC52F1D4359254B722 /* MKTStructReturnSetter.h in Headers */, - C009C1BAB56D1BF620C12C656698C89D /* MKTStubbedInvocationMatcher.h in Headers */, - CBC2E60933D74BBBBCB459A271C964DB /* MKTTestLocation.h in Headers */, - A6CB0D9A3AD325451BDF7DA26ECF6668 /* MKTThrowsException.h in Headers */, - FBB9799170F0043D6AE4058CC58FA58D /* MKTUnsignedCharArgumentGetter.h in Headers */, - FADF8C53DC1796185FEBA94E1413996C /* MKTUnsignedCharReturnSetter.h in Headers */, - 73D1058E8EF9CDAA4CB06A9B51ABB972 /* MKTUnsignedIntArgumentGetter.h in Headers */, - 0A8BD5E29B81EF33969F0415DA7ACB7F /* MKTUnsignedIntReturnSetter.h in Headers */, - 976C5437030860272AC776041C613F2B /* MKTUnsignedLongArgumentGetter.h in Headers */, - 9C020033F0CFD42D86068EF8898A08EA /* MKTUnsignedLongLongArgumentGetter.h in Headers */, - C82C5863ECDBD0481F99169F0D026588 /* MKTUnsignedLongLongReturnSetter.h in Headers */, - DA262210C2E1B969F63B5A0A5E508BA4 /* MKTUnsignedLongReturnSetter.h in Headers */, - FBAB26DC8C07C206183DA14A036EB05A /* MKTUnsignedShortArgumentGetter.h in Headers */, - EF9B7395CBEF1A9FAA764FFAD8E588FE /* MKTUnsignedShortReturnSetter.h in Headers */, - B1A6829C9948D691B59F995086B4797F /* MKTVerificationData.h in Headers */, - DBBA5986F0B2FFE061AE9C7B5A1CD627 /* MKTVerificationMode.h in Headers */, - C3A69DB7FE8775426246AE1D970ADD9B /* NSInvocation+OCMockito.h in Headers */, - FF1EFF50BE78AE27565E47329FC84571 /* OCMockito-umbrella.h in Headers */, - 92457CFF6B60046C3532729D9EB4E68F /* OCMockito.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84E99EDCABD26825027421333CC60318 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B00063E2A13A7E3C1187B523EC9EC84A /* Pods-MonsterCards-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FBD607D3374FF4B08C948880431343B1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D1E5BC3B65257257D5639E617556E98C /* HCAllOf.h in Headers */, - 96779644B3350ED6B6655D962302C911 /* HCAnyOf.h in Headers */, - 89A09174DF778F0854FBD15614E16B38 /* HCArgumentCaptor.h in Headers */, - CC98BA6A906C0ECCD1871C71FFD4C53E /* HCAssertThat.h in Headers */, - CA1EE97E99C4BE490D78046EC3EBD0D4 /* HCBaseDescription.h in Headers */, - 9C6D8E7EB6A2C54B72EE2925EE804C79 /* HCBaseMatcher.h in Headers */, - BE7049CB0B4277F967CA5E52DE7FB0FA /* HCBoolReturnGetter.h in Headers */, - 3F4F5E740D197C366BDE4D467CBF96C1 /* HCCharReturnGetter.h in Headers */, - F51A47DD70A6514F14D9E9D02744DAAB /* HCClassMatcher.h in Headers */, - 974B554A8734595074EE5428BEED34E3 /* HCCollect.h in Headers */, - 813CA344C9E0275DC02EB3B68F1BF40E /* HCConformsToProtocol.h in Headers */, - 40A926206018ABF3AFF0ADDF94324643 /* HCDescribedAs.h in Headers */, - C5E72C93136F64225F955F745D356C4D /* HCDescription.h in Headers */, - E27DCE811674839FE59B091B059C9A2B /* HCDiagnosingMatcher.h in Headers */, - 2521C50830E7E62A6EB309870963D3BF /* HCDoubleReturnGetter.h in Headers */, - 4B152F3CFE798136C7C1C77C58166079 /* HCEvery.h in Headers */, - 6A98090947417A9148F40868D41101C5 /* HCFloatReturnGetter.h in Headers */, - 6C204CD45445332B0FD1DD70811EE3A5 /* HCGenericTestFailureReporter.h in Headers */, - D2FC4EA5EF068F3518AC9AD92D0F4B22 /* HCHasCount.h in Headers */, - C90B45C579A373B3DEAAF3744E21F1D0 /* HCHasDescription.h in Headers */, - EDE3BC63F127E764B0426AAAEFA3969B /* HCHasProperty.h in Headers */, - 384A035CC298DD97E0401484C91EE4A0 /* HCIntReturnGetter.h in Headers */, - C9A29CC7A252AE2CE96E8B06FDC0BA06 /* HCInvocationMatcher.h in Headers */, - 024B76E463B79D2B3FA07A14997E768D /* HCIs.h in Headers */, - D627CE9B858E835CBA8A281CB78C9FBB /* HCIsAnything.h in Headers */, - 3C421D44F6E0B3B1644D7F7296E0610D /* HCIsCloseTo.h in Headers */, - AF6C73D28E6CE1A8F7B3BE6D96B55916 /* HCIsCollectionContaining.h in Headers */, - 6216AC5E8DB91BF6C47A7636D731B3B6 /* HCIsCollectionContainingInAnyOrder.h in Headers */, - 476A5EF81FD8094181502B5A55651C10 /* HCIsCollectionContainingInOrder.h in Headers */, - DB0968805C2587E40ACC80C743EECDC2 /* HCIsCollectionContainingInRelativeOrder.h in Headers */, - D9A38AA7DE6787C9A7EF4843AA4D6D45 /* HCIsCollectionOnlyContaining.h in Headers */, - A0514CA796CFF6E4DF28FBEC60453AB1 /* HCIsDictionaryContaining.h in Headers */, - ADB6523821D96B7347F2D32FC5CA3DCD /* HCIsDictionaryContainingEntries.h in Headers */, - 6E2DBB311FFA07EB22FB8449639E175E /* HCIsDictionaryContainingKey.h in Headers */, - 68399EA1BD0515475AF2761BAEC3A610 /* HCIsDictionaryContainingValue.h in Headers */, - 66468CFD75F747A2E88DB2BFC4603565 /* HCIsEmptyCollection.h in Headers */, - C8E8235C2E5269E9E2B40282928CA816 /* HCIsEqual.h in Headers */, - A86B8B77B1B26FF18F288A26BF1E6974 /* HCIsEqualCompressingWhiteSpace.h in Headers */, - 03FB2E02AE2B5D6A43C81A5679248527 /* HCIsEqualIgnoringCase.h in Headers */, - DB0DB49EFEE90A19D040DBCC51309B3D /* HCIsEqualToNumber.h in Headers */, - 26606F306B1109CCB5F87433DB7FA0CF /* HCIsIn.h in Headers */, - 4B356B8F499039E373153A378240E04A /* HCIsInstanceOf.h in Headers */, - 9668948A1474DFC7F80BBE356F473157 /* HCIsNil.h in Headers */, - A6039AB9A7C924B413541A9B6E530746 /* HCIsNot.h in Headers */, - 4BAAB9A0B7757952CB9985525FDBDFCA /* HCIsSame.h in Headers */, - F1920988BF4895F6458491D272425929 /* HCIsTrueFalse.h in Headers */, - 6EC2B53CD5D26ED9FD24C14ED7BB4919 /* HCIsTypeOf.h in Headers */, - 6D8C6D536B0FA535D03DFA503F3D014A /* HCLongLongReturnGetter.h in Headers */, - 0B6362177CE78E5EC130E18139E24B8B /* HCLongReturnGetter.h in Headers */, - 2DA738D870214032687E2FDB34A6D880 /* HCMatcher.h in Headers */, - B855505B4523137603A9394B0C49EC9F /* HCNumberAssert.h in Headers */, - 9678DC116C79B7A0D691C88ABCA83020 /* HCObjectReturnGetter.h in Headers */, - CBE56E2B4C064CE2A85AF2A5F9520725 /* HCOrderingComparison.h in Headers */, - 7C20FD5B9ECC4C2314EDBCDD6661B5A1 /* HCRequireNonNilObject.h in Headers */, - ABBFB28E8C4720DD34B22BF7634E76B2 /* HCReturnTypeHandlerChain.h in Headers */, - 82D29B93735FF655E7F8910952ACE5C5 /* HCReturnValueGetter.h in Headers */, - 08FB169085AC496C67A2824F01448F5C /* HCRunloopRunner.h in Headers */, - 1F2B66E4B7808A57C91637523D43452C /* HCSelfDescribing.h in Headers */, - 0D6C006E9856FDFA561540FADEF6FBCA /* HCSenTestFailureReporter.h in Headers */, - 47CABB81555E8F3EB29931B9ED6FFBF8 /* HCShortReturnGetter.h in Headers */, - F729E8DE2F5FD7F645CBD3A41DF1F5CC /* HCStringContains.h in Headers */, - 61A99009293679EA4237AA9B56F60D6B /* HCStringContainsInOrder.h in Headers */, - 1BDBD560BE2664102CC6F31F4CD4082C /* HCStringDescription.h in Headers */, - 68260450D822AD3B2DE3029349E81C98 /* HCStringEndsWith.h in Headers */, - D104E377326C69FDAAC03B0CDC14E87F /* HCStringStartsWith.h in Headers */, - 31A50B6F4CA3361B5C2E881244383689 /* HCSubstringMatcher.h in Headers */, - 7B0F98BDE64CB1B1F21D9D4EAFC5DDD8 /* HCTestFailure.h in Headers */, - 642F6CD92A1AA04369480C340F60D555 /* HCTestFailureReporter.h in Headers */, - 6F103825E351527ECF806631AEA2017E /* HCTestFailureReporterChain.h in Headers */, - 053C477676E052053EC59D397E651967 /* HCThrowsException.h in Headers */, - FC37BF3C0C2AA42F1938481BA6E1FD79 /* HCUnsignedCharReturnGetter.h in Headers */, - E8D2FFCA392095D8AD042000C27C2AFB /* HCUnsignedIntReturnGetter.h in Headers */, - 5D301890CAA04EB8F7DEBD915EEAEE24 /* HCUnsignedLongLongReturnGetter.h in Headers */, - C97C1A415CC68AAD55C3D79D132AABDE /* HCUnsignedLongReturnGetter.h in Headers */, - 66AA3F4543A7956E7F6F16F3E6B775C5 /* HCUnsignedShortReturnGetter.h in Headers */, - 0B4324A994045E035E758562466C1CF5 /* HCWrapInMatcher.h in Headers */, - 7D79809388BA9B0624A0457D2CF3CC78 /* HCXCTestFailureReporter.h in Headers */, - 5C4A9A26CF5B4A2B7F04412FFF10396C /* NSInvocation+OCHamcrest.h in Headers */, - 2E33E9C8A54CB5FBA05D5B9C2104211A /* OCHamcrest-umbrella.h in Headers */, - D3EABE1367054ABFB68243209F16E34B /* OCHamcrest.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 613D56AD79E41D1B648BF5F3C022630B /* Pods-MonsterCardsTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4CB375B6EBD2757FAB902EF80F432D2C /* Build configuration list for PBXNativeTarget "Pods-MonsterCardsTests" */; - buildPhases = ( - 0055F3DBCD0A787F92064F2676DDB06C /* Headers */, - 53DA6537AF623A0925E48412407A738F /* Sources */, - BD7DA0835355BD835D3EEE4EEBA11F9C /* Frameworks */, - 19060E0BD878D0C6686AE34FA2827A9E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 44C9612A96190417F63F8C2157FB517F /* PBXTargetDependency */, - 71B9A2D742EA674DB8CFAB8FD0BB6E33 /* PBXTargetDependency */, - 0272773450678B680EA52EA3FBA32150 /* PBXTargetDependency */, - ); - name = "Pods-MonsterCardsTests"; - productName = "Pods-MonsterCardsTests"; - productReference = 688A32E81F833186D271C1DDEDF196A2 /* Pods_MonsterCardsTests.framework */; - productType = "com.apple.product-type.framework"; - }; - 6A406131E2AA05E2651ADFAF69491389 /* Pods-MonsterCards */ = { - isa = PBXNativeTarget; - buildConfigurationList = 283B32CD6358D4F0AD65BD3EDA581DBD /* Build configuration list for PBXNativeTarget "Pods-MonsterCards" */; - buildPhases = ( - 84E99EDCABD26825027421333CC60318 /* Headers */, - E909C1C03D6980B700FEC1D2466D10AB /* Sources */, - DB3B67822A49A40509BD61FA848FD5B6 /* Frameworks */, - 7BE9B9E9F8E0C842C283323BA5529B52 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-MonsterCards"; - productName = "Pods-MonsterCards"; - productReference = 11089B3864BDF5DACB86EBD5EEAB27AE /* Pods_MonsterCards.framework */; - productType = "com.apple.product-type.framework"; - }; - 8094467761B2E923813531849AE7B97A /* OCHamcrest */ = { - isa = PBXNativeTarget; - buildConfigurationList = C7C24E615FD1232819E0BDE08F7A9854 /* Build configuration list for PBXNativeTarget "OCHamcrest" */; - buildPhases = ( - FBD607D3374FF4B08C948880431343B1 /* Headers */, - 5BB4C09680F755B8F9CE22D0FAD67AE6 /* Sources */, - 9116E775AD924975711919BBB67E31B8 /* Frameworks */, - C24582BDC512733BD8A0AF332E8E92D5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = OCHamcrest; - productName = OCHamcrest; - productReference = 46E9DB656AB852B52134EA8B5DE55D5C /* OCHamcrest.framework */; - productType = "com.apple.product-type.framework"; - }; - AACA30CC7F0FBF6ECAE6A3C4719640F1 /* OCMockito */ = { - isa = PBXNativeTarget; - buildConfigurationList = A2932B2C2D8516A2CD3F99539435AD23 /* Build configuration list for PBXNativeTarget "OCMockito" */; - buildPhases = ( - 73925740DAA55402BE476791055BDACD /* Headers */, - A8049938B768EAD29F8D2CF76D805212 /* Sources */, - 2FC51FF4674922ECD994EEF685AF5D9C /* Frameworks */, - F476C85560460A81355364D39B780A85 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 4F2975C8A0D3CFFB95FB27C3DC4AF6CB /* PBXTargetDependency */, - ); - name = OCMockito; - productName = OCMockito; - productReference = 7DDE13FAD087C4C94416C87926291DA9 /* OCMockito.framework */; - productType = "com.apple.product-type.framework"; - }; - DB08E2A07830229B54562C73451C370C /* Pods-MonsterCards-MonsterCardsUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4435C1C1CE7F3DF37C4BB39C320929A8 /* Build configuration list for PBXNativeTarget "Pods-MonsterCards-MonsterCardsUITests" */; - buildPhases = ( - 7255155263B3E14BB016A7A5E868BEC9 /* Headers */, - 9FB2D7E6778BC86B3685E0A6F4E19AAD /* Sources */, - A09E36DBE13690DA55DADE1D2606EEE2 /* Frameworks */, - 3F84F8E2BCCA5DD709DA937D62702357 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 9C267F9403445A3EED5BF258E07EA6B0 /* PBXTargetDependency */, - 19A8E5AD7B59BA7929A415B334F46BA2 /* PBXTargetDependency */, - ); - name = "Pods-MonsterCards-MonsterCardsUITests"; - productName = "Pods-MonsterCards-MonsterCardsUITests"; - productReference = 0AEE95FDC2144C3DDC84BFFF0AD3286D /* Pods_MonsterCards_MonsterCardsUITests.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BFDFE7DC352907FC980B868725387E98 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1200; - }; - buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 10.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = D38B0D79F91A53608486086AF5B4AD1C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8094467761B2E923813531849AE7B97A /* OCHamcrest */, - AACA30CC7F0FBF6ECAE6A3C4719640F1 /* OCMockito */, - 6A406131E2AA05E2651ADFAF69491389 /* Pods-MonsterCards */, - DB08E2A07830229B54562C73451C370C /* Pods-MonsterCards-MonsterCardsUITests */, - 613D56AD79E41D1B648BF5F3C022630B /* Pods-MonsterCardsTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 19060E0BD878D0C6686AE34FA2827A9E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3F84F8E2BCCA5DD709DA937D62702357 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BE9B9E9F8E0C842C283323BA5529B52 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C24582BDC512733BD8A0AF332E8E92D5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F476C85560460A81355364D39B780A85 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 53DA6537AF623A0925E48412407A738F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 06FFF54B9956171BD9472D9291423144 /* Pods-MonsterCardsTests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5BB4C09680F755B8F9CE22D0FAD67AE6 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 863772A6EE57049E2007FDCAD9C6A630 /* HCAllOf.m in Sources */, - 5BF9B7A15063FCA7D36CBFAAD810CADF /* HCAnyOf.m in Sources */, - 9188773F107A021B33AE8805DE4F9858 /* HCArgumentCaptor.m in Sources */, - D0277F3AA8E43D773899C715FA094826 /* HCAssertThat.m in Sources */, - 34E805EFA72682AB7C5B05EA9D0D307E /* HCBaseDescription.m in Sources */, - 346BBA5395BA3D644DEF2E11681BD1BC /* HCBaseMatcher.m in Sources */, - 78AB4554BB596F2459D8B27D5918F5AA /* HCBoolReturnGetter.m in Sources */, - 95573254BBB3F3D4E2E6FA9B15F4FE43 /* HCCharReturnGetter.m in Sources */, - C9BB324F47B4C930BBF9CB0AE644FC48 /* HCClassMatcher.m in Sources */, - 71B0FC0118CC4421904123A85E3E3D84 /* HCCollect.m in Sources */, - 19250D4658FAAE01098BF0F9D024408C /* HCConformsToProtocol.m in Sources */, - F1352F92DEA590ADAE9BBF0F2A5CC7C8 /* HCDescribedAs.m in Sources */, - 4F266690C5B9672CEEC4F08CE23DC76B /* HCDiagnosingMatcher.m in Sources */, - 8B52B5CA95BCCEA39331CE433225F40D /* HCDoubleReturnGetter.m in Sources */, - 79C7106C5B303A3FE86911820C4B7A17 /* HCEvery.m in Sources */, - 4FD71B974D5DB38E841A9B2130BD2031 /* HCFloatReturnGetter.m in Sources */, - A1AA7C5B623D7A3D14CA3585B5E6F74F /* HCGenericTestFailureReporter.m in Sources */, - EAFE52965E1EF4DAA297E1261C7B480D /* HCHasCount.m in Sources */, - BFF10FAE3F49C56480BFA67CFC66EABF /* HCHasDescription.m in Sources */, - 6A394ACDD5098D71EB2E739A19144609 /* HCHasProperty.m in Sources */, - 1E72B91030D22AAC3BD87BB102494033 /* HCIntReturnGetter.m in Sources */, - C34E5BF7667891DA239A70241BB8787F /* HCInvocationMatcher.m in Sources */, - 8FE460FF81A85BADA777AE75F1DE8E05 /* HCIs.m in Sources */, - BF98850EEDD30F10D396408E3FF6DFBE /* HCIsAnything.m in Sources */, - C77002A345A31289F097C151DA56C730 /* HCIsCloseTo.m in Sources */, - 2C852CEA74C9330186E553DEBC7250E2 /* HCIsCollectionContaining.m in Sources */, - 0EF4B577B19F7EF7A4DAD254CB364CC5 /* HCIsCollectionContainingInAnyOrder.m in Sources */, - 26975DACB89D02E43C89CDFDE2538A19 /* HCIsCollectionContainingInOrder.m in Sources */, - FAEA2BCC1BDC2A2B0806F97A63909F33 /* HCIsCollectionContainingInRelativeOrder.m in Sources */, - 67C16B2404EE5CA49EEB4E4C65A48E9D /* HCIsCollectionOnlyContaining.m in Sources */, - B8D6D7BE7FED5F6877845BD90C43076D /* HCIsDictionaryContaining.m in Sources */, - E1F4E7F7F887CB99A05EDD12129D8D9B /* HCIsDictionaryContainingEntries.m in Sources */, - 75CA58A6B185B7BD441882BB94F156E4 /* HCIsDictionaryContainingKey.m in Sources */, - 740AE91269EDAC807DDA6CF8A75B6E34 /* HCIsDictionaryContainingValue.m in Sources */, - 3D73D3DBF73BE2556CE0505E138D52E8 /* HCIsEmptyCollection.m in Sources */, - DE278B7AC58162F003E444BB690988CB /* HCIsEqual.m in Sources */, - F40A8A074A38D117C9A4E83AAF000B40 /* HCIsEqualCompressingWhiteSpace.m in Sources */, - 24ED8A49EE0A0C6D20DD073E0834D9E3 /* HCIsEqualIgnoringCase.m in Sources */, - 322F2973A1EDE086B9DA59EF7446BF11 /* HCIsEqualToNumber.m in Sources */, - AD870B82A46051F18895EE2AAE014889 /* HCIsIn.m in Sources */, - 0B5B334011EF1B488EA03CC79A618C17 /* HCIsInstanceOf.m in Sources */, - D1F28DE86CDC94309235FD1AA73C7026 /* HCIsNil.m in Sources */, - 16036080395AA27596094E1032E833C0 /* HCIsNot.m in Sources */, - 33152241D7378A62B68AEC4CF718B46B /* HCIsSame.m in Sources */, - BCACF1A26BCDC7D9FE727E515A207DE3 /* HCIsTrueFalse.m in Sources */, - DBF4C50D2B9794519E461D5511116F59 /* HCIsTypeOf.m in Sources */, - 598FBA999C9B6D901424C568FEA6DE23 /* HCLongLongReturnGetter.m in Sources */, - 3DADAAD7FB2C71B7DD6ED54A274EA581 /* HCLongReturnGetter.m in Sources */, - CD4338E07BB253356EE153E9EB4B11BC /* HCNumberAssert.m in Sources */, - 78E82F408FF82023E7F8B190D7E01B38 /* HCObjectReturnGetter.m in Sources */, - 1ADE23BEA27AA947A3B33FD6BDE3799A /* HCOrderingComparison.m in Sources */, - D1E90544DD7596099F934505B7CD971A /* HCRequireNonNilObject.m in Sources */, - C95CB935F3653CE08A4DAE8C41A7B1DF /* HCReturnTypeHandlerChain.m in Sources */, - 041B3B24700B7D7C26DB68E5DE980BA6 /* HCReturnValueGetter.m in Sources */, - C26339769DE6B70C8F36108FA9E82EC4 /* HCRunloopRunner.m in Sources */, - 5FD39A4832484B83B5CD465CA311F8F9 /* HCSenTestFailureReporter.m in Sources */, - ABF3C3C5DC65CB7D23707D489919F133 /* HCShortReturnGetter.m in Sources */, - 391ECA650097E58277098CDA7BC10BC2 /* HCStringContains.m in Sources */, - 1419344017A2CF917B2C4CB1AF57468C /* HCStringContainsInOrder.m in Sources */, - 1C1CA4744E2842E1EDEAA3C5C9BCAAF3 /* HCStringDescription.m in Sources */, - ACD0EBBBCB3430BDB1465F673496A390 /* HCStringEndsWith.m in Sources */, - FC596A849369029B0E4387C8411481C8 /* HCStringStartsWith.m in Sources */, - ABF75AB1EC0FBCA7558EBA622DE136B0 /* HCSubstringMatcher.m in Sources */, - 000D6AE9D229BC3F590DD0ADB1980D7A /* HCTestFailure.m in Sources */, - D51C0CD5CDBFD8B3F0FE1427AFE9A8DF /* HCTestFailureReporter.m in Sources */, - 10184F01D9DC99F32C4385D01B3D3A15 /* HCTestFailureReporterChain.m in Sources */, - 43167D2EC4F181461BD3AF7EA6E131D7 /* HCThrowsException.m in Sources */, - 26381969909F3D73632939D66F249DA2 /* HCUnsignedCharReturnGetter.m in Sources */, - 16E12F7DED167D441BFFFC1B002F15C4 /* HCUnsignedIntReturnGetter.m in Sources */, - B0CFB88146703B3B2AD0D1FBC0377903 /* HCUnsignedLongLongReturnGetter.m in Sources */, - 274B39E65659441AE99814A8405EABDE /* HCUnsignedLongReturnGetter.m in Sources */, - B243AB06E1F2507AA0F484FC1DDAA194 /* HCUnsignedShortReturnGetter.m in Sources */, - 16574C1CE1FF653DFC10700594AFF3AD /* HCWrapInMatcher.m in Sources */, - D66668C8D4B46716C04A9FCAC4A1E86B /* HCXCTestFailureReporter.m in Sources */, - 2A35381F01D76BF3AF0DC617B447E90E /* NSInvocation+OCHamcrest.m in Sources */, - E089B9D3659EC84826CD3C10C3C27723 /* OCHamcrest-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9FB2D7E6778BC86B3685E0A6F4E19AAD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AA0C9F2458A7AD9F0F7B7EABA4BEEAD2 /* Pods-MonsterCards-MonsterCardsUITests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A8049938B768EAD29F8D2CF76D805212 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5AF7CA09EB576EA2A19C9E31D9381828 /* MKT_TPDWeakProxy.m in Sources */, - 5AA2FA9999F045EDFDADD750A6DB65B0 /* MKTArgumentGetter.m in Sources */, - 2911C262344AD0563321F5AC71474213 /* MKTArgumentGetterChain.m in Sources */, - 11149CCB2A9A50704E02070CF5756C04 /* MKTAtLeastNumberOfInvocationsChecker.m in Sources */, - 796CFF523641A040AFD811530127E85F /* MKTAtLeastTimes.m in Sources */, - AA0F8C396A110A865044DEBD99EE9FDF /* MKTAtMostNumberOfInvocationsChecker.m in Sources */, - 1E3F280A971FBD6A9CAF3A15143EE6E7 /* MKTAtMostTimes.m in Sources */, - 90D4C852C5C3D549F368BE9DA573D875 /* MKTBaseMockObject.m in Sources */, - 5C77C6E837AAF1167CE4356F5471BAF5 /* MKTBoolArgumentGetter.m in Sources */, - 4DDDD7D819B2FD6A26E6347987792F13 /* MKTBoolReturnSetter.m in Sources */, - 4634AC3EE7CAC64A0EE9997413A63DDC /* MKTCallStackElement.m in Sources */, - 2B91F5CC95A53EA986042D1BD3D53185 /* MKTCharArgumentGetter.m in Sources */, - 1D1548B8F214EA762EB426CB349AEEFC /* MKTCharReturnSetter.m in Sources */, - 1E546795686D6FA2194E6DC1FD6C15E4 /* MKTClassArgumentGetter.m in Sources */, - 1C09FD0BF350C2FD844880797FF6CE6C /* MKTClassObjectMock.m in Sources */, - 67347AAF7D2BCE70198A1D8540790A21 /* MKTClassReturnSetter.m in Sources */, - FE82EE9AC3F568191FE2FB991F41331E /* MKTDoubleArgumentGetter.m in Sources */, - D027A03F5B2A88D4A7EAB5101F7C1AD0 /* MKTDoubleReturnSetter.m in Sources */, - A5609BEC1DA5A7870598A8A41E9643CE /* MKTDynamicProperties.m in Sources */, - FD871B4FB63F541866CB0E383D51655F /* MKTExactTimes.m in Sources */, - 3E28F25F2E2DBCDF542F5FBA2EBD17A0 /* MKTExecutesBlock.m in Sources */, - E304846EEA81098F20D04EC84AFA503E /* MKTFilterCallStack.m in Sources */, - 8E3F963AC815855ECF84FFF841EF1289 /* MKTFloatArgumentGetter.m in Sources */, - 65396A0F5D3EF41C80038E877E53E767 /* MKTFloatReturnSetter.m in Sources */, - E082BEFB05F79CAC0A4821950E73F67F /* MKTIntArgumentGetter.m in Sources */, - DF4DA15A858088BFBF7523F33887F69E /* MKTIntReturnSetter.m in Sources */, - 392DAC72FAEDB310E13E68AC6AB36C90 /* MKTInvocation.m in Sources */, - ACC6DDE28E4F5D57D2095B246E14DAAB /* MKTInvocationContainer.m in Sources */, - D2BEB8CAE604F2D924B98FFFE8952295 /* MKTInvocationMatcher.m in Sources */, - 1D05F6683DED2C604FF00FAB992E111B /* MKTInvocationsChecker.m in Sources */, - E72FF673EE58D635D8E18BD7E4E543BB /* MKTLocation.m in Sources */, - A12EAC86AD08061397D637888623A105 /* MKTLongArgumentGetter.m in Sources */, - 88E2CED4CEF76CEC623CFE3B1EF18268 /* MKTLongLongArgumentGetter.m in Sources */, - 09DC129AD1DC0D71C6CB9AFCB0C9F41E /* MKTLongLongReturnSetter.m in Sources */, - F22429D68DDEE2184B0AEB98F40C8F63 /* MKTLongReturnSetter.m in Sources */, - F27FE51C4752E24304E8F42FE4993D1E /* MKTMatchingInvocationsFinder.m in Sources */, - 0890F81E354DFE1754875ED86A440E39 /* MKTMissingInvocationChecker.m in Sources */, - 6C116019E55219DE5A5E06B780D72787 /* MKTMockingProgress.m in Sources */, - 14DAC98DD61451E4A4A396D16DA8AACE /* MKTMockitoCore.m in Sources */, - 63F7E8A5FE8BF4EBE9B6DAD3E5FF3B13 /* MKTNumberOfInvocationsChecker.m in Sources */, - E2B41F7E69EB1AFB51F2DB6647A72EA2 /* MKTObjectAndProtocolMock.m in Sources */, - E01A3873A41D95F05C0B31BF6D30A7AF /* MKTObjectArgumentGetter.m in Sources */, - 53CAB1BD2AF24E54EB9BB7FEB0DE74EC /* MKTObjectMock.m in Sources */, - CD3E10B421D7BE2C05F304D642DC4945 /* MKTObjectReturnSetter.m in Sources */, - B83D883402AEC18120033F3404E353C6 /* MKTOngoingStubbing.m in Sources */, - BA54CDCB57402D73D5DA632D891BDAEC /* MKTParseCallStack.m in Sources */, - 72C2BE1059638420BA271DCEF5F530EC /* MKTPointerArgumentGetter.m in Sources */, - 07ECDC2719E67DD355FB0325627FA7DC /* MKTPrinter.m in Sources */, - F9AF6E11CD2CAA25EC4FBDF94DD8F2A4 /* MKTProtocolMock.m in Sources */, - C4DF90EB88F5CAE14EFB4D4FC5EA0FCF /* MKTReturnsValue.m in Sources */, - 5B61EF6263EF1665ACD489F89A32BA46 /* MKTReturnValueSetter.m in Sources */, - 3430EB598C0B5589772BE5A5E7C63910 /* MKTReturnValueSetterChain.m in Sources */, - C6FE9416C547905C1D957D6515FE4DE2 /* MKTSelectorArgumentGetter.m in Sources */, - 898C5E260B70246E2446BF9369B722AC /* MKTShortArgumentGetter.m in Sources */, - FD9BD470897D28963744F23F19EE31CF /* MKTShortReturnSetter.m in Sources */, - B9E9E4C4B2254C5D2BAE95A44BE6FFF5 /* MKTSingletonSwizzler.m in Sources */, - 68E1041F416D4DE86787EA149F83C307 /* MKTStructArgumentGetter.m in Sources */, - E346C33012EBC4D12329C42A4765A213 /* MKTStructReturnSetter.m in Sources */, - 8C6A9A1F74DFCF7A30DEBB9408E9D865 /* MKTStubbedInvocationMatcher.m in Sources */, - E52E8929EE9D34A76662F233E6ECFB0F /* MKTTestLocation.m in Sources */, - BE26604F948BA38EA039F4539132CFCF /* MKTThrowsException.m in Sources */, - 1ED6BADF11E390B9AC5D8D73DD887D60 /* MKTUnsignedCharArgumentGetter.m in Sources */, - 75ADB2384221380DD610C47F388A9DC0 /* MKTUnsignedCharReturnSetter.m in Sources */, - 2B28295A93B8A50D8D4388B396B3A90F /* MKTUnsignedIntArgumentGetter.m in Sources */, - 0C0B7EC23570E84975084D3CFA1B3BAD /* MKTUnsignedIntReturnSetter.m in Sources */, - 326797EE2A2C6B1F2E9A2653A634DC9F /* MKTUnsignedLongArgumentGetter.m in Sources */, - F9E1A871D3A2C5F571FFAB6EB7C74B72 /* MKTUnsignedLongLongArgumentGetter.m in Sources */, - BBB324A1EE3B5262044B8BF362371384 /* MKTUnsignedLongLongReturnSetter.m in Sources */, - 903CB755900E592163BBC79C1EA1B8AE /* MKTUnsignedLongReturnSetter.m in Sources */, - 93273382A3E4B53183466202E893BC13 /* MKTUnsignedShortArgumentGetter.m in Sources */, - B15A588C8E8BD49A101AE2EFA345B7F1 /* MKTUnsignedShortReturnSetter.m in Sources */, - B53A0BC7F7444A22094BDDDBCC5BD3F0 /* MKTVerificationData.m in Sources */, - 23B08FED481426587D18EAEB44B92E1A /* NSInvocation+OCMockito.m in Sources */, - 2E505965867024705AA426A062D7FF0A /* OCMockito-dummy.m in Sources */, - 80176F6E2E24FBAF29A8C55242D3C709 /* OCMockito.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E909C1C03D6980B700FEC1D2466D10AB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8C3907C34232366E1C68AF158E38E6FA /* Pods-MonsterCards-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 0272773450678B680EA52EA3FBA32150 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-MonsterCards"; - target = 6A406131E2AA05E2651ADFAF69491389 /* Pods-MonsterCards */; - targetProxy = 9F285A817613B5A578845AE89FF89FC6 /* PBXContainerItemProxy */; - }; - 19A8E5AD7B59BA7929A415B334F46BA2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = OCMockito; - target = AACA30CC7F0FBF6ECAE6A3C4719640F1 /* OCMockito */; - targetProxy = B5E11172E52A8768A65CC5BF84E18079 /* PBXContainerItemProxy */; - }; - 44C9612A96190417F63F8C2157FB517F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = OCHamcrest; - target = 8094467761B2E923813531849AE7B97A /* OCHamcrest */; - targetProxy = 66AE573E1C9F9BA80D87DF6912970F33 /* PBXContainerItemProxy */; - }; - 4F2975C8A0D3CFFB95FB27C3DC4AF6CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = OCHamcrest; - target = 8094467761B2E923813531849AE7B97A /* OCHamcrest */; - targetProxy = 4DF46247F137333B9EE7BC1A5218905D /* PBXContainerItemProxy */; - }; - 71B9A2D742EA674DB8CFAB8FD0BB6E33 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = OCMockito; - target = AACA30CC7F0FBF6ECAE6A3C4719640F1 /* OCMockito */; - targetProxy = 1CF1631232C3163EA0BB2AE43FAAE62E /* PBXContainerItemProxy */; - }; - 9C267F9403445A3EED5BF258E07EA6B0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = OCHamcrest; - target = 8094467761B2E923813531849AE7B97A /* OCHamcrest */; - targetProxy = 4717827AB2FABA6AE183A8230B5D0B23 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 01A370C01345E07EC89979282AC5B29A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F59F3F0434FEFBB4FDB037D8532C3BC /* OCHamcrest.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/OCHamcrest/OCHamcrest-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/OCHamcrest/OCHamcrest-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/OCHamcrest/OCHamcrest.modulemap"; - PRODUCT_MODULE_NAME = OCHamcrest; - PRODUCT_NAME = OCHamcrest; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 0F0A6843860170E7176E69BE790EFFB0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1AAE1A2BD70149D0C19447ACC7945148 /* Pods-MonsterCardsTests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 131356BE54884448CA49C07BEDF4BB2A /* 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; - 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 = ( - "POD_CONFIGURATION_DEBUG=1", - "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 = 12.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 19020844660C5A2768F8B81A82786A78 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 13CC220F804D92068162216E154A2C1F /* Pods-MonsterCardsTests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 1A6826FC00BEC091A88C1C07DE5EBDC7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F8F4AC31B4F530372255E84F8C2BF20A /* OCMockito.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/OCMockito/OCMockito-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/OCMockito/OCMockito-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/OCMockito/OCMockito.modulemap"; - PRODUCT_MODULE_NAME = OCMockito; - PRODUCT_NAME = OCMockito; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 27F62EB2F822905591611515261331D6 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 056C81AEEE03ED285AA14C3491D257EE /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3A1C92C5ADE1046E3639BC72DCF5D899 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7728EFFA552082A9DCB502FB2286C937 /* OCHamcrest.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/OCHamcrest/OCHamcrest-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/OCHamcrest/OCHamcrest-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/OCHamcrest/OCHamcrest.modulemap"; - PRODUCT_MODULE_NAME = OCHamcrest; - PRODUCT_NAME = OCHamcrest; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 6C884859FE07788046277A7389871E45 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CB1A5CE204B393A0CA27985021AF714E /* Pods-MonsterCards-MonsterCardsUITests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 79CEEFBF23D67A06B2E0C8695A6D9B9D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 932AF46CFC7A3A6B937D8C0C19C499D3 /* Pods-MonsterCards.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 7AAC7247414E7E13362E4FFD4B129160 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 484DD12B558ADD56C07E97EE1EF8F170 /* OCMockito.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/OCMockito/OCMockito-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/OCMockito/OCMockito-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/OCMockito/OCMockito.modulemap"; - PRODUCT_MODULE_NAME = OCMockito; - PRODUCT_NAME = OCMockito; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - B87D3EB37095A94BAB5FF8B4E1527B63 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 551352E39C1B8344F089D156430E9B13 /* Pods-MonsterCards.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F090CD07A80273D5A73C8EA19224ADDB /* 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; - 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_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=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 = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 283B32CD6358D4F0AD65BD3EDA581DBD /* Build configuration list for PBXNativeTarget "Pods-MonsterCards" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B87D3EB37095A94BAB5FF8B4E1527B63 /* Debug */, - 79CEEFBF23D67A06B2E0C8695A6D9B9D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4435C1C1CE7F3DF37C4BB39C320929A8 /* Build configuration list for PBXNativeTarget "Pods-MonsterCards-MonsterCardsUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27F62EB2F822905591611515261331D6 /* Debug */, - 6C884859FE07788046277A7389871E45 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 131356BE54884448CA49C07BEDF4BB2A /* Debug */, - F090CD07A80273D5A73C8EA19224ADDB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4CB375B6EBD2757FAB902EF80F432D2C /* Build configuration list for PBXNativeTarget "Pods-MonsterCardsTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 19020844660C5A2768F8B81A82786A78 /* Debug */, - 0F0A6843860170E7176E69BE790EFFB0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A2932B2C2D8516A2CD3F99539435AD23 /* Build configuration list for PBXNativeTarget "OCMockito" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1A6826FC00BEC091A88C1C07DE5EBDC7 /* Debug */, - 7AAC7247414E7E13362E4FFD4B129160 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C7C24E615FD1232819E0BDE08F7A9854 /* Build configuration list for PBXNativeTarget "OCHamcrest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3A1C92C5ADE1046E3639BC72DCF5D899 /* Debug */, - 01A370C01345E07EC89979282AC5B29A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; -} diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-Info.plist b/Pods/Target Support Files/OCHamcrest/OCHamcrest-Info.plist deleted file mode 100644 index 6c07493..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 7.1.2 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m b/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m deleted file mode 100644 index a0a4cff..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_OCHamcrest : NSObject -@end -@implementation PodsDummy_OCHamcrest -@end diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch b/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-umbrella.h b/Pods/Target Support Files/OCHamcrest/OCHamcrest-umbrella.h deleted file mode 100644 index fb8b88d..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest-umbrella.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "OCHamcrest.h" -#import "HCAssertThat.h" -#import "HCBaseDescription.h" -#import "HCBaseMatcher.h" -#import "HCDescription.h" -#import "HCDiagnosingMatcher.h" -#import "HCMatcher.h" -#import "HCSelfDescribing.h" -#import "HCStringDescription.h" -#import "HCCollect.h" -#import "HCInvocationMatcher.h" -#import "HCRequireNonNilObject.h" -#import "HCWrapInMatcher.h" -#import "HCTestFailure.h" -#import "HCTestFailureReporter.h" -#import "HCTestFailureReporterChain.h" -#import "HCEvery.h" -#import "HCHasCount.h" -#import "HCIsCollectionContaining.h" -#import "HCIsCollectionContainingInAnyOrder.h" -#import "HCIsCollectionContainingInOrder.h" -#import "HCIsCollectionContainingInRelativeOrder.h" -#import "HCIsCollectionOnlyContaining.h" -#import "HCIsDictionaryContaining.h" -#import "HCIsDictionaryContainingEntries.h" -#import "HCIsDictionaryContainingKey.h" -#import "HCIsDictionaryContainingValue.h" -#import "HCIsEmptyCollection.h" -#import "HCIsIn.h" -#import "HCDescribedAs.h" -#import "HCIs.h" -#import "HCAllOf.h" -#import "HCAnyOf.h" -#import "HCIsAnything.h" -#import "HCIsNot.h" -#import "HCIsCloseTo.h" -#import "HCIsEqualToNumber.h" -#import "HCIsTrueFalse.h" -#import "HCNumberAssert.h" -#import "HCOrderingComparison.h" -#import "HCArgumentCaptor.h" -#import "HCClassMatcher.h" -#import "HCConformsToProtocol.h" -#import "HCHasDescription.h" -#import "HCHasProperty.h" -#import "HCIsEqual.h" -#import "HCIsInstanceOf.h" -#import "HCIsNil.h" -#import "HCIsSame.h" -#import "HCIsTypeOf.h" -#import "HCThrowsException.h" -#import "HCIsEqualCompressingWhiteSpace.h" -#import "HCIsEqualIgnoringCase.h" -#import "HCStringContains.h" -#import "HCStringContainsInOrder.h" -#import "HCStringEndsWith.h" -#import "HCStringStartsWith.h" -#import "HCSubstringMatcher.h" - -FOUNDATION_EXPORT double OCHamcrestVersionNumber; -FOUNDATION_EXPORT const unsigned char OCHamcrestVersionString[]; - diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest.debug.xcconfig b/Pods/Target Support Files/OCHamcrest/OCHamcrest.debug.xcconfig deleted file mode 100644 index bc496b6..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest.debug.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCHamcrest -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest.modulemap b/Pods/Target Support Files/OCHamcrest/OCHamcrest.modulemap deleted file mode 100644 index eabbec2..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module OCHamcrest { - umbrella header "OCHamcrest-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest.release.xcconfig b/Pods/Target Support Files/OCHamcrest/OCHamcrest.release.xcconfig deleted file mode 100644 index bc496b6..0000000 --- a/Pods/Target Support Files/OCHamcrest/OCHamcrest.release.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCHamcrest -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCMockito/OCMockito-Info.plist b/Pods/Target Support Files/OCMockito/OCMockito-Info.plist deleted file mode 100644 index 2373fda..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 5.1.3 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/OCMockito/OCMockito-dummy.m b/Pods/Target Support Files/OCMockito/OCMockito-dummy.m deleted file mode 100644 index 4b81a4b..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_OCMockito : NSObject -@end -@implementation PodsDummy_OCMockito -@end diff --git a/Pods/Target Support Files/OCMockito/OCMockito-prefix.pch b/Pods/Target Support Files/OCMockito/OCMockito-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/OCMockito/OCMockito-umbrella.h b/Pods/Target Support Files/OCMockito/OCMockito-umbrella.h deleted file mode 100644 index 6a83454..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito-umbrella.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "MKTNonObjectArgumentMatching.h" -#import "OCMockito.h" -#import "NSInvocation+OCMockito.h" -#import "MKTBaseMockObject.h" -#import "MKTClassObjectMock.h" -#import "MKTObjectAndProtocolMock.h" -#import "MKTObjectMock.h" -#import "MKTProtocolMock.h" -#import "MKTOngoingStubbing.h" - -FOUNDATION_EXPORT double OCMockitoVersionNumber; -FOUNDATION_EXPORT const unsigned char OCMockitoVersionString[]; - diff --git a/Pods/Target Support Files/OCMockito/OCMockito.debug.xcconfig b/Pods/Target Support Files/OCMockito/OCMockito.debug.xcconfig deleted file mode 100644 index 04d6db8..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMockito -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMockito -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCMockito/OCMockito.modulemap b/Pods/Target Support Files/OCMockito/OCMockito.modulemap deleted file mode 100644 index 5292940..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module OCMockito { - umbrella header "OCMockito-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/OCMockito/OCMockito.release.xcconfig b/Pods/Target Support Files/OCMockito/OCMockito.release.xcconfig deleted file mode 100644 index 04d6db8..0000000 --- a/Pods/Target Support Files/OCMockito/OCMockito.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMockito -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMockito -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown deleted file mode 100644 index 103c0b1..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.markdown +++ /dev/null @@ -1,59 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## OCHamcrest - -OCHamcrest by Jon Reid, https://qualitycoding.org/ -Copyright 2019 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(BSD License) - - -## OCMockito - -OCMockito by Jon Reid, https://qualitycoding.org/ -Copyright 2020 Quality Coding, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(MIT License) - ------ - -TPDWeakProxy: - -The MIT License (MIT) - -Copyright © 2013 Tetherpad - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist deleted file mode 100644 index 1bd2056..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-acknowledgements.plist +++ /dev/null @@ -1,97 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - OCHamcrest by Jon Reid, https://qualitycoding.org/ -Copyright 2019 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(BSD License) - - License - BSD - Title - OCHamcrest - Type - PSGroupSpecifier - - - FooterText - OCMockito by Jon Reid, https://qualitycoding.org/ -Copyright 2020 Quality Coding, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(MIT License) - ------ - -TPDWeakProxy: - -The MIT License (MIT) - -Copyright © 2013 Tetherpad - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - License - MIT - Title - OCMockito - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-dummy.m b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-dummy.m deleted file mode 100644 index e24176d..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_MonsterCards_MonsterCardsUITests : NSObject -@end -@implementation PodsDummy_Pods_MonsterCards_MonsterCardsUITests -@end diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-input-files.xcfilelist deleted file mode 100644 index a1508a7..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh -${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework -${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-output-files.xcfilelist deleted file mode 100644 index e5a4ee9..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Debug-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCHamcrest.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-input-files.xcfilelist deleted file mode 100644 index a1508a7..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh -${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework -${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-output-files.xcfilelist deleted file mode 100644 index e5a4ee9..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks-Release-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCHamcrest.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh deleted file mode 100755 index 45d70e5..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-frameworks.sh +++ /dev/null @@ -1,209 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=0 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=1 -} - -install_artifact() { - artifact="$1" - base="$(basename "$artifact")" - case $base in - *.framework) - install_framework "$artifact" - ;; - *.dSYM) - # Suppress arch warnings since XCFrameworks will include many dSYM files - install_dsym "$artifact" "false" - ;; - *.bcsymbolmap) - install_bcsymbolmap "$artifact" - ;; - *) - echo "error: Unrecognized artifact "$artifact"" - ;; - esac -} - -copy_artifacts() { - file_list="$1" - while read artifact; do - install_artifact "$artifact" - done <$file_list -} - -ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" -if [ -r "${ARTIFACT_LIST_FILE}" ]; then - copy_artifacts "${ARTIFACT_LIST_FILE}" -fi - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework" - install_framework "${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework" - install_framework "${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-umbrella.h b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-umbrella.h deleted file mode 100644 index 7534145..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_MonsterCards_MonsterCardsUITestsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_MonsterCards_MonsterCardsUITestsVersionString[]; - diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig deleted file mode 100644 index 6031218..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest/OCHamcrest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito/OCMockito.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "OCHamcrest" -framework "OCMockito" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap deleted file mode 100644 index 98a5bc0..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_MonsterCards_MonsterCardsUITests { - umbrella header "Pods-MonsterCards-MonsterCardsUITests-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.release.xcconfig b/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.release.xcconfig deleted file mode 100644 index 6031218..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest/OCHamcrest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito/OCMockito.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "OCHamcrest" -framework "OCMockito" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.markdown b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.markdown deleted file mode 100644 index 102af75..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.markdown +++ /dev/null @@ -1,3 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.plist b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.plist deleted file mode 100644 index 7acbad1..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-acknowledgements.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-dummy.m b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-dummy.m deleted file mode 100644 index f94ae0d..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_MonsterCards : NSObject -@end -@implementation PodsDummy_Pods_MonsterCards -@end diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-umbrella.h b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-umbrella.h deleted file mode 100644 index ec29624..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_MonsterCardsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_MonsterCardsVersionString[]; - diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.debug.xcconfig b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.debug.xcconfig deleted file mode 100644 index b52088a..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.debug.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap deleted file mode 100644 index d89b3a1..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_MonsterCards { - umbrella header "Pods-MonsterCards-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.release.xcconfig b/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.release.xcconfig deleted file mode 100644 index b52088a..0000000 --- a/Pods/Target Support Files/Pods-MonsterCards/Pods-MonsterCards.release.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.markdown deleted file mode 100644 index 103c0b1..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.markdown +++ /dev/null @@ -1,59 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## OCHamcrest - -OCHamcrest by Jon Reid, https://qualitycoding.org/ -Copyright 2019 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(BSD License) - - -## OCMockito - -OCMockito by Jon Reid, https://qualitycoding.org/ -Copyright 2020 Quality Coding, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(MIT License) - ------ - -TPDWeakProxy: - -The MIT License (MIT) - -Copyright © 2013 Tetherpad - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.plist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.plist deleted file mode 100644 index 1bd2056..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-acknowledgements.plist +++ /dev/null @@ -1,97 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - OCHamcrest by Jon Reid, https://qualitycoding.org/ -Copyright 2019 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(BSD License) - - License - BSD - Title - OCHamcrest - Type - PSGroupSpecifier - - - FooterText - OCMockito by Jon Reid, https://qualitycoding.org/ -Copyright 2020 Quality Coding, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(MIT License) - ------ - -TPDWeakProxy: - -The MIT License (MIT) - -Copyright © 2013 Tetherpad - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - License - MIT - Title - OCMockito - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-dummy.m b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-dummy.m deleted file mode 100644 index 490d9d2..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_MonsterCardsTests : NSObject -@end -@implementation PodsDummy_Pods_MonsterCardsTests -@end diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-input-files.xcfilelist deleted file mode 100644 index 550ab15..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh -${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework -${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-output-files.xcfilelist deleted file mode 100644 index e5a4ee9..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Debug-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCHamcrest.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-input-files.xcfilelist deleted file mode 100644 index 550ab15..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh -${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework -${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-output-files.xcfilelist deleted file mode 100644 index e5a4ee9..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks-Release-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCHamcrest.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMockito.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh deleted file mode 100755 index 45d70e5..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-frameworks.sh +++ /dev/null @@ -1,209 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=0 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=1 -} - -install_artifact() { - artifact="$1" - base="$(basename "$artifact")" - case $base in - *.framework) - install_framework "$artifact" - ;; - *.dSYM) - # Suppress arch warnings since XCFrameworks will include many dSYM files - install_dsym "$artifact" "false" - ;; - *.bcsymbolmap) - install_bcsymbolmap "$artifact" - ;; - *) - echo "error: Unrecognized artifact "$artifact"" - ;; - esac -} - -copy_artifacts() { - file_list="$1" - while read artifact; do - install_artifact "$artifact" - done <$file_list -} - -ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" -if [ -r "${ARTIFACT_LIST_FILE}" ]; then - copy_artifacts "${ARTIFACT_LIST_FILE}" -fi - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework" - install_framework "${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/OCHamcrest/OCHamcrest.framework" - install_framework "${BUILT_PRODUCTS_DIR}/OCMockito/OCMockito.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-umbrella.h b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-umbrella.h deleted file mode 100644 index 537a1be..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_MonsterCardsTestsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_MonsterCardsTestsVersionString[]; - diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.debug.xcconfig b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.debug.xcconfig deleted file mode 100644 index 6031218..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest/OCHamcrest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito/OCMockito.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "OCHamcrest" -framework "OCMockito" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap deleted file mode 100644 index e6243f0..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_MonsterCardsTests { - umbrella header "Pods-MonsterCardsTests-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.release.xcconfig b/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.release.xcconfig deleted file mode 100644 index 6031218..0000000 --- a/Pods/Target Support Files/Pods-MonsterCardsTests/Pods-MonsterCardsTests.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/OCHamcrest/OCHamcrest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OCMockito/OCMockito.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "OCHamcrest" -framework "OCMockito" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES