aruba-win-fix 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +188 -0
  6. data/.simplecov +34 -0
  7. data/.travis.yml +47 -0
  8. data/.yardopts +8 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +83 -0
  11. data/History.md +579 -0
  12. data/LICENSE +20 -0
  13. data/README.md +226 -0
  14. data/Rakefile +49 -0
  15. data/TODO.md +13 -0
  16. data/appveyor.yml +32 -0
  17. data/aruba.gemspec +48 -0
  18. data/bin/aruba +7 -0
  19. data/config/.gitignore +1 -0
  20. data/cucumber.yml +26 -0
  21. data/features/.nav +72 -0
  22. data/features/api/command/find_command.feature +83 -0
  23. data/features/api/command/last_command_started.feature +50 -0
  24. data/features/api/command/last_command_stopped.feature +89 -0
  25. data/features/api/command/run.feature +414 -0
  26. data/features/api/command/run_simple.feature +242 -0
  27. data/features/api/command/send_signal.feature +53 -0
  28. data/features/api/command/stderr.feature +46 -0
  29. data/features/api/command/stdout.feature +46 -0
  30. data/features/api/command/stop.feature +131 -0
  31. data/features/api/command/stop_all_commands.feature +53 -0
  32. data/features/api/command/terminate_all_commands.feature +53 -0
  33. data/features/api/command/which.feature +37 -0
  34. data/features/api/core/expand_path.feature +88 -0
  35. data/features/api/environment/append_environment_variable.feature +128 -0
  36. data/features/api/environment/delete_environment_variable.feature +63 -0
  37. data/features/api/environment/prepend_environment_variable.feature +128 -0
  38. data/features/api/environment/set_environment_variable.feature +376 -0
  39. data/features/api/filesystem/cd.feature +184 -0
  40. data/features/api/filesystem/create_directory.feature +57 -0
  41. data/features/api/filesystem/disk_usage.feature +152 -0
  42. data/features/api/filesystem/does_exist.feature +62 -0
  43. data/features/api/filesystem/fixtures.feature +104 -0
  44. data/features/api/filesystem/is_absolute.feature +48 -0
  45. data/features/api/filesystem/is_directory.feature +53 -0
  46. data/features/api/filesystem/is_file.feature +54 -0
  47. data/features/api/filesystem/is_relative.feature +48 -0
  48. data/features/api/filesystem/move.feature +119 -0
  49. data/features/api/text/extract_text.feature +87 -0
  50. data/features/api/text/replace_variables.feature +45 -0
  51. data/features/api/text/sanitize_text.feature +228 -0
  52. data/features/api/text/unescape_text.feature +127 -0
  53. data/features/cli/console.feature +52 -0
  54. data/features/cli/init.feature +79 -0
  55. data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
  56. data/features/configuration/command_runtime_environment.feature +129 -0
  57. data/features/configuration/console_history_file.feature +38 -0
  58. data/features/configuration/exit_timeout.feature +52 -0
  59. data/features/configuration/fixtures_directories.feature +38 -0
  60. data/features/configuration/fixtures_path_prefix.feature +23 -0
  61. data/features/configuration/home_directory.feature +80 -0
  62. data/features/configuration/io_timeout.feature +30 -0
  63. data/features/configuration/keep_ansi.feature +30 -0
  64. data/features/configuration/log_level.feature +38 -0
  65. data/features/configuration/physical_block_size.feature +53 -0
  66. data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
  67. data/features/configuration/root_directory.feature +30 -0
  68. data/features/configuration/startup_wait_time.feature +48 -0
  69. data/features/configuration/usage.feature +159 -0
  70. data/features/configuration/working_directory.feature +33 -0
  71. data/features/development/build.feature +15 -0
  72. data/features/development/test.feature +24 -0
  73. data/features/getting_started/cleanup.feature +67 -0
  74. data/features/getting_started/install.feature +8 -0
  75. data/features/getting_started/run_commands.feature +177 -0
  76. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  77. data/features/getting_started/writing_good_feature_tests.feature +38 -0
  78. data/features/hooks/after/command.feature +44 -0
  79. data/features/hooks/before/command.feature +71 -0
  80. data/features/matchers/collection/include_an_object.feature +72 -0
  81. data/features/matchers/directory/have_sub_directory.feature +110 -0
  82. data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
  83. data/features/matchers/file/be_existing_executable.feature +88 -0
  84. data/features/matchers/file/be_existing_file.feature +82 -0
  85. data/features/matchers/file/have_file_content.feature +123 -0
  86. data/features/matchers/file/have_file_size.feature +107 -0
  87. data/features/matchers/path/be_an_absolute_path.feature +74 -0
  88. data/features/matchers/path/be_an_existing_path.feature +97 -0
  89. data/features/matchers/path/have_permissions.feature +118 -0
  90. data/features/matchers/timeouts.feature +48 -0
  91. data/features/platforms/jruby.feature +14 -0
  92. data/features/rspec/integration.feature +179 -0
  93. data/features/step_definitions/aruba_dev_steps.rb +56 -0
  94. data/features/step_definitions/hooks.rb +96 -0
  95. data/features/steps/command/debug.feature +92 -0
  96. data/features/steps/command/exit_statuses.feature +136 -0
  97. data/features/steps/command/in_process.feature +485 -0
  98. data/features/steps/command/interactive.feature +90 -0
  99. data/features/steps/command/output.feature +588 -0
  100. data/features/steps/command/run.feature +66 -0
  101. data/features/steps/command/send_signal.feature +104 -0
  102. data/features/steps/command/shell.feature +155 -0
  103. data/features/steps/command/stderr.feature +68 -0
  104. data/features/steps/command/stdout.feature +109 -0
  105. data/features/steps/command/stop.feature +313 -0
  106. data/features/steps/core/announce.feature +283 -0
  107. data/features/steps/environment/append_environment_variable.feature +52 -0
  108. data/features/steps/environment/home_variable.feature +62 -0
  109. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  110. data/features/steps/environment/set_environment_variable.feature +49 -0
  111. data/features/steps/filesystem/append_to_file.feature +45 -0
  112. data/features/steps/filesystem/cd_to_directory.feature +33 -0
  113. data/features/steps/filesystem/check_file_content.feature +61 -0
  114. data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
  115. data/features/steps/filesystem/compare_files.feature +42 -0
  116. data/features/steps/filesystem/copy.feature +45 -0
  117. data/features/steps/filesystem/create_directory.feature +57 -0
  118. data/features/steps/filesystem/create_file.feature +76 -0
  119. data/features/steps/filesystem/existence_of_directory.feature +57 -0
  120. data/features/steps/filesystem/existence_of_file.feature +43 -0
  121. data/features/steps/filesystem/file_content.feature +86 -0
  122. data/features/steps/filesystem/fixtures.feature +64 -0
  123. data/features/steps/filesystem/move.feature +45 -0
  124. data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
  125. data/features/steps/filesystem/non_existence_of_file.feature +80 -0
  126. data/features/steps/filesystem/overwrite_file.feature +72 -0
  127. data/features/steps/filesystem/remove_directory.feature +38 -0
  128. data/features/steps/filesystem/remove_file.feature +38 -0
  129. data/features/steps/filesystem/use_fixture.feature +77 -0
  130. data/features/steps/overview.feature +60 -0
  131. data/features/support/aruba.rb +7 -0
  132. data/features/support/env.rb +33 -0
  133. data/features/support/jruby.rb +5 -0
  134. data/features/support/simplecov_setup.rb +8 -0
  135. data/fixtures/cli-app/.gitignore +9 -0
  136. data/fixtures/cli-app/.rspec +2 -0
  137. data/fixtures/cli-app/README.md +39 -0
  138. data/fixtures/cli-app/Rakefile +1 -0
  139. data/fixtures/cli-app/bin/cli +6 -0
  140. data/fixtures/cli-app/cli-app.gemspec +26 -0
  141. data/fixtures/cli-app/features/support/env.rb +1 -0
  142. data/fixtures/cli-app/lib/cli/app.rb +13 -0
  143. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  144. data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
  145. data/fixtures/cli-app/script/console +14 -0
  146. data/fixtures/cli-app/spec/spec_helper.rb +9 -0
  147. data/fixtures/cli-app/spec/support/aruba.rb +1 -0
  148. data/fixtures/copy/file.txt +1 -0
  149. data/fixtures/empty-app/.gitignore +9 -0
  150. data/fixtures/empty-app/.rspec +2 -0
  151. data/fixtures/empty-app/README.md +24 -0
  152. data/fixtures/empty-app/Rakefile +1 -0
  153. data/fixtures/empty-app/cli-app.gemspec +26 -0
  154. data/fixtures/empty-app/lib/cli/app.rb +13 -0
  155. data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
  156. data/fixtures/getting-started-app/.gitignore +4 -0
  157. data/fixtures/getting-started-app/Gemfile +4 -0
  158. data/fixtures/getting-started-app/README.md +3 -0
  159. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  160. data/fixtures/spawn_process/stderr.sh +3 -0
  161. data/lib/aruba.rb +1 -0
  162. data/lib/aruba/api.rb +34 -0
  163. data/lib/aruba/api/command.rb +307 -0
  164. data/lib/aruba/api/core.rb +191 -0
  165. data/lib/aruba/api/deprecated.rb +897 -0
  166. data/lib/aruba/api/environment.rb +89 -0
  167. data/lib/aruba/api/filesystem.rb +392 -0
  168. data/lib/aruba/api/rvm.rb +44 -0
  169. data/lib/aruba/api/text.rb +56 -0
  170. data/lib/aruba/aruba_path.rb +133 -0
  171. data/lib/aruba/basic_configuration.rb +240 -0
  172. data/lib/aruba/basic_configuration/option.rb +32 -0
  173. data/lib/aruba/cli.rb +26 -0
  174. data/lib/aruba/colorizer.rb +108 -0
  175. data/lib/aruba/command.rb +74 -0
  176. data/lib/aruba/config.rb +108 -0
  177. data/lib/aruba/config/jruby.rb +17 -0
  178. data/lib/aruba/config_wrapper.rb +58 -0
  179. data/lib/aruba/console.rb +70 -0
  180. data/lib/aruba/console/help.rb +35 -0
  181. data/lib/aruba/contracts/absolute_path.rb +20 -0
  182. data/lib/aruba/contracts/enum.rb +26 -0
  183. data/lib/aruba/contracts/is_power_of_two.rb +22 -0
  184. data/lib/aruba/contracts/relative_path.rb +20 -0
  185. data/lib/aruba/cucumber.rb +13 -0
  186. data/lib/aruba/cucumber/command.rb +422 -0
  187. data/lib/aruba/cucumber/core.rb +5 -0
  188. data/lib/aruba/cucumber/environment.rb +42 -0
  189. data/lib/aruba/cucumber/file.rb +201 -0
  190. data/lib/aruba/cucumber/hooks.rb +160 -0
  191. data/lib/aruba/cucumber/rvm.rb +3 -0
  192. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  193. data/lib/aruba/errors.rb +37 -0
  194. data/lib/aruba/event_bus.rb +59 -0
  195. data/lib/aruba/event_bus/name_resolver.rb +168 -0
  196. data/lib/aruba/events.rb +39 -0
  197. data/lib/aruba/extensions/string/strip.rb +25 -0
  198. data/lib/aruba/file_size.rb +63 -0
  199. data/lib/aruba/generators/script_file.rb +46 -0
  200. data/lib/aruba/hooks.rb +56 -0
  201. data/lib/aruba/in_config_wrapper.rb +24 -0
  202. data/lib/aruba/in_process.rb +14 -0
  203. data/lib/aruba/initializer.rb +222 -0
  204. data/lib/aruba/jruby.rb +4 -0
  205. data/lib/aruba/matchers/base/base_matcher.rb +96 -0
  206. data/lib/aruba/matchers/base/object_formatter.rb +114 -0
  207. data/lib/aruba/matchers/collection.rb +1 -0
  208. data/lib/aruba/matchers/collection/all.rb +11 -0
  209. data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
  210. data/lib/aruba/matchers/command.rb +1 -0
  211. data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
  212. data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
  213. data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
  214. data/lib/aruba/matchers/command/have_output.rb +36 -0
  215. data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
  216. data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
  217. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  218. data/lib/aruba/matchers/directory.rb +1 -0
  219. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
  220. data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
  221. data/lib/aruba/matchers/environment.rb +1 -0
  222. data/lib/aruba/matchers/file.rb +1 -0
  223. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
  224. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  225. data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
  226. data/lib/aruba/matchers/file/have_file_content.rb +62 -0
  227. data/lib/aruba/matchers/file/have_file_size.rb +47 -0
  228. data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
  229. data/lib/aruba/matchers/path.rb +1 -0
  230. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
  231. data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
  232. data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
  233. data/lib/aruba/matchers/path/have_permissions.rb +64 -0
  234. data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
  235. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
  236. data/lib/aruba/matchers/string.rb +1 -0
  237. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  238. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  239. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  240. data/lib/aruba/platform.rb +25 -0
  241. data/lib/aruba/platforms/announcer.rb +232 -0
  242. data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
  243. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
  244. data/lib/aruba/platforms/aruba_logger.rb +81 -0
  245. data/lib/aruba/platforms/command_monitor.rb +229 -0
  246. data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
  247. data/lib/aruba/platforms/determine_file_size.rb +22 -0
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
  249. data/lib/aruba/platforms/filesystem_status.rb +68 -0
  250. data/lib/aruba/platforms/local_environment.rb +29 -0
  251. data/lib/aruba/platforms/simple_table.rb +54 -0
  252. data/lib/aruba/platforms/unix_command_string.rb +27 -0
  253. data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
  254. data/lib/aruba/platforms/unix_platform.rb +276 -0
  255. data/lib/aruba/platforms/unix_which.rb +85 -0
  256. data/lib/aruba/platforms/windows_command_string.rb +31 -0
  257. data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
  258. data/lib/aruba/platforms/windows_platform.rb +42 -0
  259. data/lib/aruba/platforms/windows_which.rb +106 -0
  260. data/lib/aruba/processes/basic_process.rb +143 -0
  261. data/lib/aruba/processes/debug_process.rb +69 -0
  262. data/lib/aruba/processes/in_process.rb +125 -0
  263. data/lib/aruba/processes/spawn_process.rb +278 -0
  264. data/lib/aruba/reporting.rb +126 -0
  265. data/lib/aruba/rspec.rb +107 -0
  266. data/lib/aruba/runtime.rb +96 -0
  267. data/lib/aruba/setup.rb +90 -0
  268. data/lib/aruba/spawn_process.rb +11 -0
  269. data/lib/aruba/version.rb +3 -0
  270. data/script/bootstrap +28 -0
  271. data/script/console +16 -0
  272. data/script/test +3 -0
  273. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  274. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  275. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  276. data/spec/aruba/api/runtime_spec.rb +28 -0
  277. data/spec/aruba/api_spec.rb +1209 -0
  278. data/spec/aruba/aruba_path_spec.rb +103 -0
  279. data/spec/aruba/basic_configuration_spec.rb +5 -0
  280. data/spec/aruba/configuration_spec.rb +5 -0
  281. data/spec/aruba/hooks_spec.rb +17 -0
  282. data/spec/aruba/in_config_wrapper_spec.rb +25 -0
  283. data/spec/aruba/jruby_spec.rb +55 -0
  284. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  285. data/spec/aruba/matchers/command_spec.rb +174 -0
  286. data/spec/aruba/matchers/directory_spec.rb +57 -0
  287. data/spec/aruba/matchers/file_spec.rb +127 -0
  288. data/spec/aruba/matchers/path_spec.rb +88 -0
  289. data/spec/aruba/platform/simple_table_spec.rb +23 -0
  290. data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
  291. data/spec/aruba/rspec_spec.rb +15 -0
  292. data/spec/aruba/runtime_spec.rb +29 -0
  293. data/spec/aruba/spawn_process_spec.rb +60 -0
  294. data/spec/event_bus/name_resolver_spec.rb +68 -0
  295. data/spec/event_bus_spec.rb +160 -0
  296. data/spec/spec_helper.rb +23 -0
  297. data/spec/support/configs/.keep +0 -0
  298. data/spec/support/configs/aruba.rb +5 -0
  299. data/spec/support/configs/pry.rb +3 -0
  300. data/spec/support/configs/rspec.rb +15 -0
  301. data/spec/support/helpers/.keep +0 -0
  302. data/spec/support/helpers/reporting.rb +44 -0
  303. data/spec/support/matchers/.keep +0 -0
  304. data/spec/support/matchers/option.rb +35 -0
  305. data/spec/support/shared_contexts/.keep +0 -0
  306. data/spec/support/shared_contexts/aruba.rb +48 -0
  307. data/spec/support/shared_examples/.keep +0 -0
  308. data/spec/support/shared_examples/configuration.rb +116 -0
  309. data/spec/support/shared_examples/directory.rb +7 -0
  310. data/spec/support/shared_examples/file.rb +7 -0
  311. data/templates/css/console.css +24 -0
  312. data/templates/css/filesystem.css +42 -0
  313. data/templates/css/pygments-autumn.css +59 -0
  314. data/templates/files.erb +14 -0
  315. data/templates/images/LICENSE +22 -0
  316. data/templates/images/folder.png +0 -0
  317. data/templates/images/page_white.png +0 -0
  318. data/templates/images/page_white_gherkin.png +0 -0
  319. data/templates/images/page_white_ruby.png +0 -0
  320. data/templates/index.erb +20 -0
  321. data/templates/js/filesystem.js +5 -0
  322. data/templates/js/jquery-1.11.3.min.js +5 -0
  323. data/templates/main.erb +34 -0
  324. metadata +629 -0
@@ -0,0 +1 @@
1
+ Aruba.platform.require_matching_files('../collection/**/*.rb', __FILE__)
@@ -0,0 +1,11 @@
1
+ require 'rspec/expectations'
2
+
3
+ # Aruba
4
+ module Aruba
5
+ # Matchers
6
+ module Matchers
7
+ include ::RSpec::Matchers
8
+
9
+ module_function :all
10
+ end
11
+ end
@@ -0,0 +1,122 @@
1
+ require 'aruba/matchers/base/base_matcher'
2
+
3
+ # Aruba
4
+ module Aruba
5
+ # Matchers
6
+ module Matchers
7
+ # @api private
8
+ # Provides the implementation for `include_an_object`.
9
+ # Not intended to be instantiated directly.
10
+ class IncludeAnObject < BaseMatcher
11
+ protected
12
+
13
+ # @private
14
+ attr_reader :matcher, :failed_objects
15
+ # @private
16
+ attr_accessor :any_succeeded_object
17
+
18
+ public
19
+
20
+ def initialize(matcher)
21
+ @matcher = matcher
22
+ @failed_objects = {}
23
+ @any_succeeded_object = false
24
+ end
25
+
26
+ # @api private
27
+ # @return [String]
28
+ def failure_message
29
+ unless iterable?
30
+ return "#{improve_hash_formatting(super)}, but was not iterable"
31
+ end
32
+
33
+ all_messages = [improve_hash_formatting(super)]
34
+ failed_objects.each do |index, matcher_failure_message|
35
+ all_messages << failure_message_for_item(index, matcher_failure_message)
36
+ end
37
+ all_messages.join("\n\n")
38
+ end
39
+
40
+ # @api private
41
+ # @return [String]
42
+ def description
43
+ improve_hash_formatting "include an object #{description_of matcher}"
44
+ end
45
+
46
+ def does_not_match?(actual)
47
+ @actual = actual
48
+
49
+ return false unless iterable?
50
+
51
+ index_objects
52
+
53
+ any_succeeded_object == false
54
+ end
55
+
56
+ private
57
+
58
+ def match(expected, actual)
59
+ @actual = actual
60
+ @expected = expected
61
+
62
+ return false unless iterable?
63
+
64
+ index_objects
65
+
66
+ any_succeeded_object == true
67
+ end
68
+
69
+ def index_objects
70
+ actual.each_with_index do |actual_item, index|
71
+ cloned_matcher = matcher.clone
72
+ begin
73
+ matches = cloned_matcher.matches?(actual_item)
74
+ rescue StandardError
75
+ matches = nil
76
+ end
77
+
78
+ if matches
79
+ self.any_succeeded_object = true
80
+ break
81
+ else
82
+ failed_objects[index] = cloned_matcher.failure_message
83
+ end
84
+ end
85
+ end
86
+
87
+ def failure_message_for_item(index, failure_message)
88
+ failure_message = indent_multiline_message(add_new_line_if_needed(failure_message))
89
+ indent_multiline_message("object at index #{index} failed to match:#{failure_message}")
90
+ end
91
+
92
+ def add_new_line_if_needed(message)
93
+ message.start_with?("\n") ? message : "\n#{message}"
94
+ end
95
+
96
+ def indent_multiline_message(message)
97
+ message = message.sub(/\n+\z/, '')
98
+ message.lines.map do |line|
99
+ line =~ /\S/ ? ' ' + line : line
100
+ end.join
101
+ end
102
+ end
103
+ end
104
+ end
105
+
106
+ module RSpec
107
+ module Matchers
108
+ # Passes if the provided matcher passes when checked against any
109
+ # element of the collection.
110
+ #
111
+ # @example
112
+ # expect([1, 4, 5]).to include_an_object be_odd
113
+ #
114
+ # @note You can also use this with compound matchers as well.
115
+ #
116
+ # @example
117
+ # expect([1, 4, 'a']).to include_an_object( be_odd.and be_an(Integer) )
118
+ def include_an_object(expected)
119
+ ::Aruba::Matchers::IncludeAnObject.new(expected)
120
+ end
121
+ end
122
+ end
@@ -0,0 +1 @@
1
+ Aruba.platform.require_matching_files('../command/**/*.rb', __FILE__)
@@ -0,0 +1,34 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ require 'aruba/matchers/command/have_exit_status'
4
+ require 'aruba/matchers/command/have_finished_in_time'
5
+
6
+ # @!method be_successfuly_executed
7
+ # This matchers checks if execution of <command> was successful
8
+ #
9
+ # @return [TrueClass, FalseClass] The result
10
+ #
11
+ # false:
12
+ # * if command was not successful
13
+ # true:
14
+ # * if command was successful
15
+ #
16
+ # @example Use matcher
17
+ #
18
+ # RSpec.describe do
19
+ # it { expect(last_command_started).to be_successfully_executed }
20
+ # it { expect(last_command_started).not_to be_successfully_executed }
21
+ # it { expect(last_command_started).to have_failed_running }
22
+ # end
23
+ RSpec::Matchers.define :be_successfully_executed do
24
+ match do |actual|
25
+ @old_actual = actual
26
+ @actual = @old_actual.commandline
27
+
28
+ expect(@old_actual).to have_exit_status(0)
29
+ end
30
+ end
31
+
32
+ if RSpec::Expectations::Version::STRING >= '3.1'
33
+ RSpec::Matchers.define_negated_matcher :have_failed_running, :be_successfully_executed
34
+ end
@@ -0,0 +1,38 @@
1
+ # @!method have_exit_status(status)
2
+ # This matchers checks if <command> has exit status <status>
3
+ #
4
+ # @param [Integer] status
5
+ # The value of the exit status
6
+ #
7
+ # @return [TrueClass, FalseClass] The result
8
+ #
9
+ # false:
10
+ # * if command does not have exit status
11
+ # true:
12
+ # * if command has exit status
13
+ #
14
+ # @example Use matcher
15
+ #
16
+ # RSpec.describe do
17
+ # it { expect(last_command_started).to have_exit_status(0) }
18
+ # end
19
+ RSpec::Matchers.define :have_exit_status do |expected|
20
+ match do |actual|
21
+ @old_actual = actual
22
+
23
+ @old_actual.stop
24
+ @actual = actual.exit_status
25
+
26
+ next false unless @old_actual.respond_to? :exit_status
27
+
28
+ values_match? expected, @actual
29
+ end
30
+
31
+ failure_message do |actual|
32
+ format(%(expected that command "%s" has exit status of "%s", but has "%s".), @old_actual.commandline, expected.to_s, actual.to_s)
33
+ end
34
+
35
+ failure_message_when_negated do |actual|
36
+ format(%(expected that command "%s" does not have exit status of "%s", but has "%s".), @old_actual.commandline, expected.to_s, actual.to_s)
37
+ end
38
+ end
@@ -0,0 +1,37 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method run_too_long
4
+ # This matchers checks if <command> run too long. Say the timeout is 10
5
+ # seconds and it takes <command> to finish in 15. This matchers will succeed.
6
+ #
7
+ # @return [TrueClass, FalseClass] The result
8
+ #
9
+ # false:
10
+ # * if command not to run too long
11
+ # true:
12
+ # * if command run too long
13
+ #
14
+ # @example Use matcher
15
+ #
16
+ # RSpec.describe do
17
+ # it { expect(last_command_started).to run_too_long }
18
+ # it { expect(last_command_started).not_to run_too_long }
19
+ # it { expect(last_command_started).to finish_its_run_in_time }
20
+ # end
21
+ # RSpec::Matchers.define :run_too_long do
22
+ RSpec::Matchers.define :have_finished_in_time do
23
+ match do |actual|
24
+ @old_actual = actual
25
+ @actual = @old_actual.commandline
26
+
27
+ next false unless @old_actual.respond_to? :timed_out?
28
+
29
+ @old_actual.stop
30
+
31
+ @old_actual.timed_out? == false
32
+ end
33
+ end
34
+
35
+ if RSpec::Expectations::Version::STRING >= '3.1'
36
+ RSpec::Matchers.define_negated_matcher :run_too_long, :have_finished_in_time
37
+ end
@@ -0,0 +1,36 @@
1
+ # @!method have_output
2
+ # This matchers checks if <command> has created output
3
+ #
4
+ # @return [TrueClass, FalseClass] The result
5
+ #
6
+ # false:
7
+ # * if command has not created output
8
+ # true:
9
+ # * if command created output
10
+ #
11
+ # @example Use matcher
12
+ #
13
+ # RSpec.describe do
14
+ # it { expect(last_command_started).to have_output }
15
+ # end
16
+ RSpec::Matchers.define :have_output do |expected|
17
+ match do |actual|
18
+ @old_actual = actual
19
+
20
+ next false unless @old_actual.respond_to? :output
21
+
22
+ @old_actual.stop
23
+
24
+ @actual = sanitize_text(actual.output)
25
+
26
+ values_match?(expected, @actual)
27
+ end
28
+
29
+ diffable
30
+
31
+ description { "have output: #{description_of expected}" }
32
+ end
33
+
34
+ if RSpec::Expectations::Version::STRING >= '3.0'
35
+ RSpec::Matchers.alias_matcher :a_command_having_output, :have_output
36
+ end
@@ -0,0 +1,32 @@
1
+ # @!method have_output_on_stderr
2
+ # This matchers checks if <command> has created output on stderr
3
+ #
4
+ # @return [TrueClass, FalseClass] The result
5
+ #
6
+ # false:
7
+ # * if command has not created output on stderr
8
+ # true:
9
+ # * if command created output on stderr
10
+ #
11
+ # @example Use matcher
12
+ #
13
+ # RSpec.describe do
14
+ # it { expect(last_command_started).to have_output_on_stderr }
15
+ # end
16
+ RSpec::Matchers.define :have_output_on_stderr do |expected|
17
+ match do |actual|
18
+ @old_actual = actual
19
+
20
+ next false unless @old_actual.respond_to? :stderr
21
+
22
+ @old_actual.stop
23
+
24
+ @actual = sanitize_text(actual.stderr)
25
+
26
+ values_match?(expected, @actual)
27
+ end
28
+
29
+ diffable
30
+
31
+ description { "have output on stderr: #{description_of expected}" }
32
+ end
@@ -0,0 +1,32 @@
1
+ # @!method have_output_on_stdout
2
+ # This matchers checks if <command> has created output on stdout
3
+ #
4
+ # @return [TrueClass, FalseClass] The result
5
+ #
6
+ # false:
7
+ # * if command has not created output on stdout
8
+ # true:
9
+ # * if command created output on stdout
10
+ #
11
+ # @example Use matcher
12
+ #
13
+ # RSpec.describe do
14
+ # it { expect(last_command_started).to have_output_on_stdout }
15
+ # end
16
+ RSpec::Matchers.define :have_output_on_stdout do |expected|
17
+ match do |actual|
18
+ @old_actual = actual
19
+
20
+ next false unless @old_actual.respond_to? :stdout
21
+
22
+ @old_actual.stop
23
+
24
+ @actual = sanitize_text(actual.stdout)
25
+
26
+ values_match?(expected, @actual)
27
+ end
28
+
29
+ diffable
30
+
31
+ description { "have output on stdout: #{description_of expected}" }
32
+ end
@@ -0,0 +1,28 @@
1
+ # @!method have_output_size(output)
2
+ # This matchers checks if output has size.
3
+ #
4
+ # @param [String] output
5
+ # The content which should be checked
6
+ #
7
+ # @return [TrueClass, FalseClass] The result
8
+ #
9
+ # false:
10
+ # * if output does not have size
11
+ # true:
12
+ # * if output has size
13
+ #
14
+ # @example Use matcher
15
+ #
16
+ # RSpec.describe do
17
+ # it { expect(file1).to have_output_size(256) }
18
+ # end
19
+ RSpec::Matchers.define :have_output_size do |expected|
20
+ match do |actual|
21
+ next false unless actual.respond_to? :size
22
+
23
+ @actual = actual.size
24
+ values_match? expected, @actual
25
+ end
26
+
27
+ description { "output has size #{description_of expected}" }
28
+ end
@@ -0,0 +1 @@
1
+ Aruba.platform.require_matching_files('../directory/**/*.rb', __FILE__)
@@ -0,0 +1,38 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method be_an_existing_directory
4
+ # This matchers checks if <directory> exists in filesystem
5
+ #
6
+ # @return [TrueClass, FalseClass] The result
7
+ #
8
+ # false:
9
+ # * if directory does not exist
10
+ # true:
11
+ # * if directory exists
12
+ #
13
+ # @example Use matcher
14
+ #
15
+ # RSpec.describe do
16
+ # it { expect(directory1).to be_an_existing_directory }
17
+ # end
18
+ RSpec::Matchers.define :be_an_existing_directory do |_|
19
+ match do |actual|
20
+ stop_all_commands
21
+
22
+ next false unless actual.is_a? String
23
+
24
+ directory?(actual)
25
+ end
26
+
27
+ failure_message do |actual|
28
+ format("expected that directory \"%s\" exists", actual)
29
+ end
30
+
31
+ failure_message_when_negated do |actual|
32
+ format("expected that directory \"%s\" does not exist", actual)
33
+ end
34
+ end
35
+
36
+ if RSpec::Expectations::Version::STRING >= '3.0'
37
+ RSpec::Matchers.alias_matcher :an_existing_directory, :be_an_existing_directory
38
+ end
@@ -0,0 +1,53 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method have_sub_directory(sub_directory)
4
+ # This matchers checks if <directory> has given sub-directory
5
+ #
6
+ # @param [Array] sub_directory
7
+ # A list of sub-directory relative to current directory
8
+ #
9
+ # @return [TrueClass, FalseClass] The result
10
+ #
11
+ # false:
12
+ # * if directory does not have sub-directory
13
+ # true:
14
+ # * if directory has sub-directory
15
+ #
16
+ # @example Use matcher with single directory
17
+ #
18
+ # RSpec.describe do
19
+ # it { expect('dir1.d').to have_sub_directory('subdir.1.d') }
20
+ # end
21
+ #
22
+ # @example Use matcher with multiple directories
23
+ #
24
+ # RSpec.describe do
25
+ # it { expect('dir1.d').to have_sub_directory(['subdir.1.d', 'subdir.2.d']) }
26
+ # it { expect(directories).to include a_directory_with_sub_directory(['subdir.1.d', 'subdir.2.d']) }
27
+ # end
28
+ RSpec::Matchers.define :have_sub_directory do |expected|
29
+ match do |actual|
30
+ next false unless directory?(actual)
31
+
32
+ @old_actual = actual
33
+ @actual = list(actual)
34
+
35
+ @expected = Array(expected).map { |p| File.join(@old_actual, p) }
36
+
37
+ (@expected - @actual).empty?
38
+ end
39
+
40
+ diffable
41
+
42
+ failure_message do |actual|
43
+ format("expected that directory \"%s\" has the following sub-directories: %s.", actual.join(', '), expected)
44
+ end
45
+
46
+ failure_message_when_negated do |actual|
47
+ format("expected that directory \"%s\" does not have the following sub-directories: %s.", actual.join(', '), expected)
48
+ end
49
+ end
50
+
51
+ if RSpec::Expectations::Version::STRING >= '3.0'
52
+ RSpec::Matchers.alias_matcher :a_directory_having_sub_directory, :have_sub_directory
53
+ end