cocoapods-deintegrate 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (314) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -19
  3. data/cocoapods_deintegrate.gemspec +1 -1
  4. data/lib/cocoapods_deintegrate.rb +1 -1
  5. data/lib/pod/command/deintegrate.rb +27 -15
  6. data/spec/command/deintegrate_spec.rb +47 -1
  7. data/spec/fixtures/Project/Frameworks/Podfile +12 -0
  8. data/spec/fixtures/Project/Frameworks/Podfile.lock +42 -0
  9. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKAttribute.h +210 -0
  10. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKQuerySet.h +155 -0
  11. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QueryKit.h +19 -0
  12. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/NSString+QCKSelectorName.h +17 -0
  13. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QCKDSL.h +211 -0
  14. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/Quick.h +13 -0
  15. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickConfiguration.h +30 -0
  16. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickSpec.h +48 -0
  17. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKAttribute.h +210 -0
  18. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKQuerySet.h +155 -0
  19. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QueryKit.h +19 -0
  20. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/NSString+QCKSelectorName.h +17 -0
  21. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QCKDSL.h +211 -0
  22. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/Quick.h +13 -0
  23. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickConfiguration.h +30 -0
  24. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickSpec.h +48 -0
  25. data/spec/fixtures/Project/Frameworks/Pods/Manifest.lock +42 -0
  26. data/spec/fixtures/Project/Frameworks/Pods/Pods.xcodeproj/project.pbxproj +995 -0
  27. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/LICENSE +23 -0
  28. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Attribute.swift +124 -0
  29. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Expression.swift +41 -0
  30. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.h +210 -0
  31. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.m +315 -0
  32. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.swift +13 -0
  33. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.h +155 -0
  34. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.m +314 -0
  35. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.swift +28 -0
  36. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Predicate.swift +21 -0
  37. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QueryKit.h +19 -0
  38. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QuerySet.swift +237 -0
  39. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/README.md +151 -0
  40. data/spec/fixtures/Project/Frameworks/Pods/Quick/LICENSE +201 -0
  41. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Callsite.swift +28 -0
  42. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/Configuration.swift +147 -0
  43. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.h +30 -0
  44. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.m +83 -0
  45. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/DSL.swift +227 -0
  46. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.h +211 -0
  47. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.m +70 -0
  48. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/World+DSL.swift +100 -0
  49. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Example.swift +103 -0
  50. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleGroup.swift +97 -0
  51. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleMetadata.swift +22 -0
  52. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Failure.swift +16 -0
  53. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Filter.swift +29 -0
  54. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/Closures.swift +35 -0
  55. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/ExampleHooks.swift +36 -0
  56. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/SuiteHooks.swift +34 -0
  57. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.h +17 -0
  58. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.m +33 -0
  59. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Quick.h +13 -0
  60. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.h +48 -0
  61. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.m +142 -0
  62. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/World.swift +197 -0
  63. data/spec/fixtures/Project/Frameworks/Pods/Quick/README.md +979 -0
  64. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Info.plist +26 -0
  65. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-Private.xcconfig +9 -0
  66. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-dummy.m +5 -0
  67. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-prefix.pch +5 -0
  68. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-umbrella.h +9 -0
  69. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.modulemap +6 -0
  70. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.xcconfig b/data/spec/fixtures/Project/Frameworks/Pods/Target Support → Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.xcconfig +0 -0
  71. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Info.plist +26 -0
  72. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
  73. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
  74. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
  75. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +74 -0
  76. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-frameworks.sh +55 -0
  77. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
  78. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-umbrella.h +6 -0
  79. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +9 -0
  80. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.modulemap +6 -0
  81. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +9 -0
  82. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Info.plist +26 -0
  83. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-Private.xcconfig +9 -0
  84. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-dummy.m +5 -0
  85. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-prefix.pch +5 -0
  86. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-umbrella.h +11 -0
  87. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.modulemap +6 -0
  88. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.xcconfig +2 -0
  89. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Info.plist +26 -0
  90. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +208 -0
  91. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +238 -0
  92. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
  93. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
  94. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-frameworks.sh +55 -0
  95. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
  96. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-umbrella.h +6 -0
  97. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +9 -0
  98. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.modulemap +6 -0
  99. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +9 -0
  100. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.pbxproj +557 -0
  101. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  102. data/spec/fixtures/Project/Frameworks/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
  103. data/spec/fixtures/Project/Frameworks/TestProject/AppDelegate.swift +46 -0
  104. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  105. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/Main.storyboard +25 -0
  106. data/spec/fixtures/Project/Frameworks/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  107. data/spec/fixtures/Project/Frameworks/TestProject/Info.plist +40 -0
  108. data/spec/fixtures/Project/Frameworks/TestProject/ViewController.swift +25 -0
  109. data/spec/fixtures/Project/Frameworks/TestProjectTests/Info.plist +24 -0
  110. data/spec/fixtures/Project/Frameworks/TestProjectTests/TestProjectTests.swift +36 -0
  111. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.pbxproj +420 -0
  112. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  113. data/spec/fixtures/Project/None/TestProject/AppDelegate.swift +46 -0
  114. data/spec/fixtures/Project/None/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  115. data/spec/fixtures/Project/None/TestProject/Base.lproj/Main.storyboard +25 -0
  116. data/spec/fixtures/Project/None/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  117. data/spec/fixtures/Project/None/TestProject/Info.plist +40 -0
  118. data/spec/fixtures/Project/None/TestProject/ViewController.swift +25 -0
  119. data/spec/fixtures/Project/None/TestProjectTests/Info.plist +24 -0
  120. data/spec/fixtures/Project/None/TestProjectTests/TestProjectTests.swift +36 -0
  121. data/spec/fixtures/Project/StaticLibraries/Podfile +12 -0
  122. data/spec/fixtures/Project/StaticLibraries/Podfile.lock +13 -0
  123. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/LICENSE +19 -0
  124. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/README.md +308 -0
  125. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.h +42 -0
  126. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.m +17 -0
  127. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.h +25 -0
  128. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.m +60 -0
  129. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDefines.h +17 -0
  130. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.h +13 -0
  131. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.m +42 -0
  132. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.h +45 -0
  133. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.m +214 -0
  134. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.h +13 -0
  135. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.m +42 -0
  136. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPMatcher.h +20 -0
  137. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.h +11 -0
  138. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.m +20 -0
  139. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.h +27 -0
  140. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.m +15 -0
  141. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.h +64 -0
  142. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.m +187 -0
  143. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSObject+Expecta.h +14 -0
  144. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.h +8 -0
  145. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.m +21 -0
  146. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.h +4 -0
  147. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.m +9 -0
  148. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.h +7 -0
  149. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m +49 -0
  150. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.h +3 -0
  151. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.m +24 -0
  152. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.h +6 -0
  153. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.m +20 -0
  154. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  155. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.m +20 -0
  156. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.h +10 -0
  157. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.m +24 -0
  158. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.h +6 -0
  159. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.m +30 -0
  160. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.h +7 -0
  161. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.m +27 -0
  162. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.h +5 -0
  163. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.m +27 -0
  164. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.h +6 -0
  165. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.m +20 -0
  166. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  167. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.m +20 -0
  168. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.h +5 -0
  169. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.m +16 -0
  170. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.h +5 -0
  171. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.m +27 -0
  172. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.h +4 -0
  173. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.m +57 -0
  174. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.h +3 -0
  175. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.m +24 -0
  176. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.h +5 -0
  177. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.m +49 -0
  178. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.h +3 -0
  179. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.m +33 -0
  180. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.h +5 -0
  181. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.m +38 -0
  182. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.h +3 -0
  183. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.m +49 -0
  184. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.h +5 -0
  185. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.m +24 -0
  186. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.h +10 -0
  187. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.m +36 -0
  188. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.h +4 -0
  189. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.m +63 -0
  190. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.h +4 -0
  191. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.m +30 -0
  192. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.h +3 -0
  193. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.m +35 -0
  194. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.h +3 -0
  195. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.m +28 -0
  196. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers.h +24 -0
  197. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBackwardCompatibility.h +42 -0
  198. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBlockDefinedMatcher.h +25 -0
  199. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDefines.h +17 -0
  200. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDoubleTuple.h +13 -0
  201. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPExpect.h +45 -0
  202. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPFloatTuple.h +13 -0
  203. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcher.h +20 -0
  204. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcherHelpers.h +4 -0
  205. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beCloseTo.h +7 -0
  206. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beFalsy.h +3 -0
  207. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  208. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  209. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  210. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  211. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  212. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beKindOf.h +5 -0
  213. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThan.h +6 -0
  214. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  215. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beNil.h +5 -0
  216. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  217. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  218. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beTruthy.h +3 -0
  219. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beginWith.h +5 -0
  220. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+conformTo.h +3 -0
  221. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+contain.h +5 -0
  222. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+endWith.h +3 -0
  223. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+equal.h +5 -0
  224. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+haveCountOf.h +10 -0
  225. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+notify.h +4 -0
  226. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raise.h +4 -0
  227. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  228. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+respondTo.h +3 -0
  229. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers.h +24 -0
  230. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPUnsupportedObject.h +11 -0
  231. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/Expecta.h +27 -0
  232. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/ExpectaSupport.h +64 -0
  233. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSObject+Expecta.h +14 -0
  234. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSValue+Expecta.h +8 -0
  235. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  236. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBackwardCompatibility.h +42 -0
  237. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h +25 -0
  238. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDefines.h +17 -0
  239. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDoubleTuple.h +13 -0
  240. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPExpect.h +45 -0
  241. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPFloatTuple.h +13 -0
  242. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcher.h +20 -0
  243. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h +4 -0
  244. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h +7 -0
  245. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h +3 -0
  246. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  247. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  248. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  249. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  250. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  251. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h +5 -0
  252. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h +6 -0
  253. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  254. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h +5 -0
  255. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  256. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  257. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h +3 -0
  258. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h +5 -0
  259. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h +3 -0
  260. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+contain.h +5 -0
  261. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h +3 -0
  262. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+equal.h +5 -0
  263. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h +10 -0
  264. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+notify.h +4 -0
  265. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raise.h +4 -0
  266. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  267. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h +3 -0
  268. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers.h +24 -0
  269. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h +11 -0
  270. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/Expecta.h +27 -0
  271. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/ExpectaSupport.h +64 -0
  272. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSObject+Expecta.h +14 -0
  273. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSValue+Expecta.h +8 -0
  274. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  275. data/spec/fixtures/Project/StaticLibraries/Pods/Manifest.lock +13 -0
  276. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/LICENSE +23 -0
  277. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  278. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.m +51 -0
  279. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/README.md +57 -0
  280. data/spec/fixtures/Project/StaticLibraries/Pods/Pods.xcodeproj/project.pbxproj +943 -0
  281. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-Private.xcconfig +5 -0
  282. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-dummy.m +5 -0
  283. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-prefix.pch +5 -0
  284. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat.xcconfig b/data/spec/fixtures/Project/StaticLibraries/Pods/Target Support → Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat.xcconfig +0 -0
  285. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
  286. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
  287. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
  288. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +14 -0
  289. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
  290. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +6 -0
  291. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +6 -0
  292. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-Private.xcconfig +5 -0
  293. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-dummy.m +5 -0
  294. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-prefix.pch +5 -0
  295. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta.xcconfig +1 -0
  296. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +26 -0
  297. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +56 -0
  298. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
  299. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
  300. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
  301. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +6 -0
  302. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +6 -0
  303. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.pbxproj +525 -0
  304. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  305. data/spec/fixtures/Project/StaticLibraries/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
  306. data/spec/fixtures/Project/StaticLibraries/TestProject/AppDelegate.swift +46 -0
  307. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  308. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/Main.storyboard +25 -0
  309. data/spec/fixtures/Project/StaticLibraries/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  310. data/spec/fixtures/Project/StaticLibraries/TestProject/Info.plist +40 -0
  311. data/spec/fixtures/Project/StaticLibraries/TestProject/ViewController.swift +25 -0
  312. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/Info.plist +24 -0
  313. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/TestProjectTests.swift +36 -0
  314. metadata +620 -7
@@ -0,0 +1,100 @@
1
+ /**
2
+ Adds methods to World to support top-level DSL functions (Swift) and
3
+ macros (Objective-C). These functions map directly to the DSL that test
4
+ writers use in their specs.
5
+ */
6
+ extension World {
7
+ public func beforeSuite(closure: BeforeSuiteClosure) {
8
+ suiteHooks.appendBefore(closure)
9
+ }
10
+
11
+ public func afterSuite(closure: AfterSuiteClosure) {
12
+ suiteHooks.appendAfter(closure)
13
+ }
14
+
15
+ public func sharedExamples(name: String, closure: SharedExampleClosure) {
16
+ registerSharedExample(name, closure: closure)
17
+ }
18
+
19
+ public func describe(description: String, closure: () -> (), flags: FilterFlags) {
20
+ var group = ExampleGroup(description: description, flags: flags)
21
+ currentExampleGroup!.appendExampleGroup(group)
22
+ currentExampleGroup = group
23
+ closure()
24
+ currentExampleGroup = group.parent
25
+ }
26
+
27
+ public func context(description: String, closure: () -> (), flags: FilterFlags) {
28
+ self.describe(description, closure: closure, flags: flags)
29
+ }
30
+
31
+ public func fdescribe(description: String, closure: () -> (), flags: FilterFlags) {
32
+ var focusedFlags = flags
33
+ focusedFlags[Filter.focused] = true
34
+ self.describe(description, closure: closure, flags: focusedFlags)
35
+ }
36
+
37
+ public func xdescribe(description: String, closure: () -> (), flags: FilterFlags) {
38
+ var pendingFlags = flags
39
+ pendingFlags[Filter.pending] = true
40
+ self.describe(description, closure: closure, flags: pendingFlags)
41
+ }
42
+
43
+ public func beforeEach(closure: BeforeExampleClosure) {
44
+ currentExampleGroup!.hooks.appendBefore(closure)
45
+ }
46
+
47
+ public func beforeEach(#closure: BeforeExampleWithMetadataClosure) {
48
+ currentExampleGroup!.hooks.appendBefore(closure)
49
+ }
50
+
51
+ public func afterEach(closure: AfterExampleClosure) {
52
+ currentExampleGroup!.hooks.appendAfter(closure)
53
+ }
54
+
55
+ public func afterEach(#closure: AfterExampleWithMetadataClosure) {
56
+ currentExampleGroup!.hooks.appendAfter(closure)
57
+ }
58
+
59
+ @objc(itWithDescription:flags:file:line:closure:)
60
+ public func it(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
61
+ let callsite = Callsite(file: file, line: line)
62
+ let example = Example(description: description, callsite: callsite, flags: flags, closure)
63
+ currentExampleGroup!.appendExample(example)
64
+ }
65
+
66
+ @objc(fitWithDescription:flags:file:line:closure:)
67
+ public func fit(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
68
+ var focusedFlags = flags
69
+ focusedFlags[Filter.focused] = true
70
+ self.it(description, flags: focusedFlags, file: file, line: line, closure: closure)
71
+ }
72
+
73
+ @objc(xitWithDescription:flags:file:line:closure:)
74
+ public func xit(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
75
+ var pendingFlags = flags
76
+ pendingFlags[Filter.pending] = true
77
+ self.it(description, flags: pendingFlags, file: file, line: line, closure: closure)
78
+ }
79
+
80
+ @objc(itBehavesLikeSharedExampleNamed:sharedExampleContext:flags:file:line:)
81
+ public func itBehavesLike(name: String, sharedExampleContext: SharedExampleContext, flags: FilterFlags, file: String, line: Int) {
82
+ let callsite = Callsite(file: file, line: line)
83
+ let closure = World.sharedWorld().sharedExample(name)
84
+
85
+ var group = ExampleGroup(description: name, flags: flags)
86
+ currentExampleGroup!.appendExampleGroup(group)
87
+ currentExampleGroup = group
88
+ closure(sharedExampleContext)
89
+ currentExampleGroup!.walkDownExamples { (example: Example) in
90
+ example.isSharedExample = true
91
+ example.callsite = callsite
92
+ }
93
+
94
+ currentExampleGroup = group.parent
95
+ }
96
+
97
+ public func pending(description: String, closure: () -> ()) {
98
+ NSLog("Pending: %@", description)
99
+ }
100
+ }
@@ -0,0 +1,103 @@
1
+ private var numberOfExamplesRun = 0
2
+
3
+ /**
4
+ Examples, defined with the `it` function, use assertions to
5
+ demonstrate how code should behave. These are like "tests" in XCTest.
6
+ */
7
+ @objc final public class Example: Equatable {
8
+ /**
9
+ A boolean indicating whether the example is a shared example;
10
+ i.e.: whether it is an example defined with `itBehavesLike`.
11
+ */
12
+ public var isSharedExample = false
13
+
14
+ /**
15
+ The site at which the example is defined.
16
+ This must be set correctly in order for Xcode to highlight
17
+ the correct line in red when reporting a failure.
18
+ */
19
+ public var callsite: Callsite
20
+
21
+ weak internal var group: ExampleGroup?
22
+
23
+ private let description: String
24
+ private let closure: () -> ()
25
+ private let flags: FilterFlags
26
+
27
+ internal init(description: String, callsite: Callsite, flags: FilterFlags, closure: () -> ()) {
28
+ self.description = description
29
+ self.closure = closure
30
+ self.callsite = callsite
31
+ self.flags = flags
32
+ }
33
+
34
+ /**
35
+ The example name. A name is a concatenation of the name of
36
+ the example group the example belongs to, followed by the
37
+ description of the example itself.
38
+
39
+ The example name is used to generate a test method selector
40
+ to be displayed in Xcode's test navigator.
41
+ */
42
+ public var name: String {
43
+ switch group!.name {
44
+ case .Some(let groupName): return "\(groupName), \(description)"
45
+ case .None: return description
46
+ }
47
+ }
48
+
49
+ /**
50
+ Executes the example closure, as well as all before and after
51
+ closures defined in the its surrounding example groups.
52
+ */
53
+ public func run() {
54
+ let world = World.sharedWorld()
55
+
56
+ if numberOfExamplesRun == 0 {
57
+ world.suiteHooks.executeBefores()
58
+ }
59
+
60
+ let exampleMetadata = ExampleMetadata(example: self, exampleIndex: numberOfExamplesRun)
61
+ world.currentExampleMetadata = exampleMetadata
62
+
63
+ world.exampleHooks.executeBefores(exampleMetadata)
64
+ for before in group!.befores {
65
+ before(exampleMetadata: exampleMetadata)
66
+ }
67
+
68
+ closure()
69
+
70
+ for after in group!.afters {
71
+ after(exampleMetadata: exampleMetadata)
72
+ }
73
+ world.exampleHooks.executeAfters(exampleMetadata)
74
+
75
+ ++numberOfExamplesRun
76
+
77
+ if !world.isRunningAdditionalSuites && numberOfExamplesRun >= world.exampleCount {
78
+ world.suiteHooks.executeAfters()
79
+ }
80
+ }
81
+
82
+ /**
83
+ Evaluates the filter flags set on this example and on the example groups
84
+ this example belongs to. Flags set on the example are trumped by flags on
85
+ the example group it belongs to. Flags on inner example groups are trumped
86
+ by flags on outer example groups.
87
+ */
88
+ internal var filterFlags: FilterFlags {
89
+ var aggregateFlags = flags
90
+ for (key, value) in group!.filterFlags {
91
+ aggregateFlags[key] = value
92
+ }
93
+ return aggregateFlags
94
+ }
95
+ }
96
+
97
+ /**
98
+ Returns a boolean indicating whether two Example objects are equal.
99
+ If two examples are defined at the exact same callsite, they must be equal.
100
+ */
101
+ public func ==(lhs: Example, rhs: Example) -> Bool {
102
+ return lhs.callsite == rhs.callsite
103
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ Example groups are logical groupings of examples, defined with
3
+ the `describe` and `context` functions. Example groups can share
4
+ setup and teardown code.
5
+ */
6
+ @objc final public class ExampleGroup {
7
+ weak internal var parent: ExampleGroup?
8
+ internal let hooks = ExampleHooks()
9
+
10
+ private let description: String
11
+ private let flags: FilterFlags
12
+ private let isInternalRootExampleGroup: Bool
13
+ private var childGroups = [ExampleGroup]()
14
+ private var childExamples = [Example]()
15
+
16
+ internal init(description: String, flags: FilterFlags, isInternalRootExampleGroup: Bool = false) {
17
+ self.description = description
18
+ self.flags = flags
19
+ self.isInternalRootExampleGroup = isInternalRootExampleGroup
20
+ }
21
+
22
+ /**
23
+ Returns a list of examples that belong to this example group,
24
+ or to any of its descendant example groups.
25
+ */
26
+ public var examples: [Example] {
27
+ var examples = childExamples
28
+ for group in childGroups {
29
+ examples.extend(group.examples)
30
+ }
31
+ return examples
32
+ }
33
+
34
+ internal var name: String? {
35
+ if let parent = parent {
36
+ switch(parent.name) {
37
+ case .Some(let name): return "\(name), \(description)"
38
+ case .None: return description
39
+ }
40
+ } else {
41
+ return isInternalRootExampleGroup ? nil : description
42
+ }
43
+ }
44
+
45
+ internal var filterFlags: FilterFlags {
46
+ var aggregateFlags = flags
47
+ walkUp() { (group: ExampleGroup) -> () in
48
+ for (key, value) in group.flags {
49
+ aggregateFlags[key] = value
50
+ }
51
+ }
52
+ return aggregateFlags
53
+ }
54
+
55
+ internal var befores: [BeforeExampleWithMetadataClosure] {
56
+ var closures = hooks.befores.reverse()
57
+ walkUp() { (group: ExampleGroup) -> () in
58
+ closures.extend(group.hooks.befores.reverse())
59
+ }
60
+ return closures.reverse()
61
+ }
62
+
63
+ internal var afters: [AfterExampleWithMetadataClosure] {
64
+ var closures = hooks.afters
65
+ walkUp() { (group: ExampleGroup) -> () in
66
+ closures.extend(group.hooks.afters)
67
+ }
68
+ return closures
69
+ }
70
+
71
+ internal func walkDownExamples(callback: (example: Example) -> ()) {
72
+ for example in childExamples {
73
+ callback(example: example)
74
+ }
75
+ for group in childGroups {
76
+ group.walkDownExamples(callback)
77
+ }
78
+ }
79
+
80
+ internal func appendExampleGroup(group: ExampleGroup) {
81
+ group.parent = self
82
+ childGroups.append(group)
83
+ }
84
+
85
+ internal func appendExample(example: Example) {
86
+ example.group = self
87
+ childExamples.append(example)
88
+ }
89
+
90
+ private func walkUp(callback: (group: ExampleGroup) -> ()) {
91
+ var group = self
92
+ while let parent = group.parent {
93
+ callback(group: parent)
94
+ group = parent
95
+ }
96
+ }
97
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ A class that encapsulates information about an example,
3
+ including the index at which the example was executed, as
4
+ well as the example itself.
5
+ */
6
+ @objc final public class ExampleMetadata {
7
+ /**
8
+ The example for which this metadata was collected.
9
+ */
10
+ public let example: Example
11
+
12
+ /**
13
+ The index at which this example was executed in the
14
+ test suite.
15
+ */
16
+ public let exampleIndex: Int
17
+
18
+ internal init(example: Example, exampleIndex: Int) {
19
+ self.example = example
20
+ self.exampleIndex = exampleIndex
21
+ }
22
+ }
@@ -0,0 +1,16 @@
1
+ import Foundation
2
+
3
+ @objc final class Failure {
4
+ let callsite: Callsite
5
+ let exception: NSException
6
+
7
+ init(exception: NSException, callsite: Callsite) {
8
+ self.exception = exception
9
+ self.callsite = callsite
10
+ }
11
+
12
+ @objc(failureWithException:callsite:)
13
+ class func failure(exception: NSException, callsite: Callsite) -> Failure {
14
+ return Failure(exception: exception, callsite: callsite)
15
+ }
16
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ A mapping of string keys to booleans that can be used to
3
+ filter examples or example groups. For example, a "focused"
4
+ example would have the flags [Focused: true].
5
+ */
6
+ public typealias FilterFlags = [String: Bool]
7
+
8
+ /**
9
+ A namespace for filter flag keys, defined primarily to make the
10
+ keys available in Objective-C.
11
+ */
12
+ @objc(QCKFilter) final public class Filter {
13
+ /**
14
+ Example and example groups with [Focused: true] are included in test runs,
15
+ excluding all other examples without this flag. Use this to only run one or
16
+ two tests that you're currently focusing on.
17
+ */
18
+ public class var focused: String {
19
+ return "focused"
20
+ }
21
+
22
+ /**
23
+ Example and example groups with [Pending: true] are excluded from test runs.
24
+ Use this to temporarily suspend examples that you know do not pass yet.
25
+ */
26
+ public class var pending: String {
27
+ return "pending"
28
+ }
29
+ }
@@ -0,0 +1,35 @@
1
+ // MARK: Example Hooks
2
+
3
+ /**
4
+ A closure executed before an example is run.
5
+ */
6
+ public typealias BeforeExampleClosure = () -> ()
7
+
8
+ /**
9
+ A closure executed before an example is run. The closure is given example metadata,
10
+ which contains information about the example that is about to be run.
11
+ */
12
+ public typealias BeforeExampleWithMetadataClosure = (exampleMetadata: ExampleMetadata) -> ()
13
+
14
+ /**
15
+ A closure executed after an example is run.
16
+ */
17
+ public typealias AfterExampleClosure = BeforeExampleClosure
18
+
19
+ /**
20
+ A closure executed after an example is run. The closure is given example metadata,
21
+ which contains information about the example that has just finished running.
22
+ */
23
+ public typealias AfterExampleWithMetadataClosure = BeforeExampleWithMetadataClosure
24
+
25
+ // MARK: Suite Hooks
26
+
27
+ /**
28
+ A closure executed before any examples are run.
29
+ */
30
+ public typealias BeforeSuiteClosure = () -> ()
31
+
32
+ /**
33
+ A closure executed after all examples have finished running.
34
+ */
35
+ public typealias AfterSuiteClosure = BeforeSuiteClosure
@@ -0,0 +1,36 @@
1
+ /**
2
+ A container for closures to be executed before and after each example.
3
+ */
4
+ final internal class ExampleHooks {
5
+
6
+ internal var befores: [BeforeExampleWithMetadataClosure] = []
7
+ internal var afters: [AfterExampleWithMetadataClosure] = []
8
+
9
+ internal func appendBefore(closure: BeforeExampleWithMetadataClosure) {
10
+ befores.append(closure)
11
+ }
12
+
13
+ internal func appendBefore(closure: BeforeExampleClosure) {
14
+ befores.append { (exampleMetadata: ExampleMetadata) in closure() }
15
+ }
16
+
17
+ internal func appendAfter(closure: AfterExampleWithMetadataClosure) {
18
+ afters.append(closure)
19
+ }
20
+
21
+ internal func appendAfter(closure: AfterExampleClosure) {
22
+ afters.append { (exampleMetadata: ExampleMetadata) in closure() }
23
+ }
24
+
25
+ internal func executeBefores(exampleMetadata: ExampleMetadata) {
26
+ for before in befores {
27
+ before(exampleMetadata: exampleMetadata)
28
+ }
29
+ }
30
+
31
+ internal func executeAfters(exampleMetadata: ExampleMetadata) {
32
+ for after in afters {
33
+ after(exampleMetadata: exampleMetadata)
34
+ }
35
+ }
36
+ }