assert 2.19.1 → 2.19.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/assert.gemspec +10 -7
  3. data/lib/assert.rb +18 -6
  4. data/lib/assert/actual_value.rb +8 -6
  5. data/lib/assert/assert_runner.rb +36 -17
  6. data/lib/assert/assertions.rb +83 -50
  7. data/lib/assert/cli.rb +30 -70
  8. data/lib/assert/clirb.rb +55 -0
  9. data/lib/assert/config.rb +20 -8
  10. data/lib/assert/config_helpers.rb +55 -22
  11. data/lib/assert/context.rb +14 -18
  12. data/lib/assert/context/let_dsl.rb +5 -2
  13. data/lib/assert/context/setup_dsl.rb +21 -16
  14. data/lib/assert/context/subject_dsl.rb +6 -7
  15. data/lib/assert/context/suite_dsl.rb +2 -1
  16. data/lib/assert/context/test_dsl.rb +55 -19
  17. data/lib/assert/default_suite.rb +25 -15
  18. data/lib/assert/default_view.rb +47 -30
  19. data/lib/assert/file_line.rb +6 -6
  20. data/lib/assert/macro.rb +1 -1
  21. data/lib/assert/macros/methods.rb +71 -45
  22. data/lib/assert/result.rb +111 -62
  23. data/lib/assert/runner.rb +68 -51
  24. data/lib/assert/stub.rb +42 -3
  25. data/lib/assert/suite.rb +67 -28
  26. data/lib/assert/test.rb +40 -35
  27. data/lib/assert/utils.rb +19 -10
  28. data/lib/assert/version.rb +1 -1
  29. data/lib/assert/view.rb +44 -18
  30. data/lib/assert/view_helpers.rb +100 -92
  31. data/test/helper.rb +3 -1
  32. data/test/support/factory.rb +38 -21
  33. data/test/system/stub_tests.rb +180 -144
  34. data/test/system/test_tests.rb +86 -60
  35. data/test/unit/actual_value_tests.rb +69 -50
  36. data/test/unit/assert_tests.rb +39 -22
  37. data/test/unit/assertions/assert_block_tests.rb +10 -10
  38. data/test/unit/assertions/assert_changes_tests.rb +25 -21
  39. data/test/unit/assertions/assert_empty_tests.rb +14 -12
  40. data/test/unit/assertions/assert_equal_tests.rb +26 -26
  41. data/test/unit/assertions/assert_file_exists_tests.rb +15 -13
  42. data/test/unit/assertions/assert_includes_tests.rb +10 -10
  43. data/test/unit/assertions/assert_instance_of_tests.rb +14 -14
  44. data/test/unit/assertions/assert_is_a_tests.rb +128 -0
  45. data/test/unit/assertions/assert_match_tests.rb +10 -10
  46. data/test/unit/assertions/assert_nil_tests.rb +16 -12
  47. data/test/unit/assertions/assert_raises_tests.rb +27 -20
  48. data/test/unit/assertions/assert_respond_to_tests.rb +10 -10
  49. data/test/unit/assertions/assert_same_tests.rb +24 -24
  50. data/test/unit/assertions/assert_true_false_tests.rb +32 -24
  51. data/test/unit/assertions_tests.rb +14 -9
  52. data/test/unit/config_helpers_tests.rb +15 -10
  53. data/test/unit/config_tests.rb +34 -9
  54. data/test/unit/context/setup_dsl_tests.rb +24 -14
  55. data/test/unit/context/subject_dsl_tests.rb +3 -3
  56. data/test/unit/context/suite_dsl_tests.rb +4 -4
  57. data/test/unit/context/test_dsl_tests.rb +37 -17
  58. data/test/unit/context_info_tests.rb +4 -4
  59. data/test/unit/context_tests.rb +110 -54
  60. data/test/unit/default_suite_tests.rb +10 -6
  61. data/test/unit/factory_tests.rb +2 -2
  62. data/test/unit/file_line_tests.rb +7 -7
  63. data/test/unit/macro_tests.rb +11 -11
  64. data/test/unit/result_tests.rb +47 -41
  65. data/test/unit/runner_tests.rb +29 -16
  66. data/test/unit/suite_tests.rb +37 -15
  67. data/test/unit/test_tests.rb +63 -50
  68. data/test/unit/utils_tests.rb +48 -35
  69. data/test/unit/view_helpers_tests.rb +21 -14
  70. data/test/unit/view_tests.rb +5 -5
  71. metadata +26 -11
  72. data/test/unit/assertions/assert_kind_of_tests.rb +0 -68
@@ -10,9 +10,9 @@ require "test/support/inherited_stuff"
10
10
  class Assert::Suite
11
11
  class UnitTests < Assert::Context
12
12
  desc "Assert::Suite"
13
- subject { unit_class }
13
+ subject{ unit_class }
14
14
 
15
- let(:unit_class) { Assert::Suite }
15
+ let(:unit_class){ Assert::Suite }
16
16
 
17
17
  should "include the config helpers" do
18
18
  assert_that(subject).includes(Assert::ConfigHelpers)
@@ -21,9 +21,9 @@ class Assert::Suite
21
21
 
22
22
  class InitTests < UnitTests
23
23
  desc "when init"
24
- subject { unit_class.new(config1) }
24
+ subject{ unit_class.new(config1) }
25
25
 
26
- let(:config1) { Factory.modes_off_config }
26
+ let(:config1){ Factory.modes_off_config }
27
27
 
28
28
  should have_readers :config, :setups, :teardowns
29
29
  should have_accessors :start_time, :end_time
@@ -74,8 +74,10 @@ class Assert::Suite
74
74
  Assert.stub(subject, :result_count){ count }
75
75
 
76
76
  assert_that(subject.run_time).equals(time)
77
- assert_that(subject.test_rate).equals((subject.test_count / subject.run_time))
78
- assert_that(subject.result_rate).equals((subject.result_count / subject.run_time))
77
+ assert_that(subject.test_rate)
78
+ .equals((subject.test_count / subject.run_time))
79
+ assert_that(subject.result_rate)
80
+ .equals((subject.result_count / subject.run_time))
79
81
  end
80
82
 
81
83
  should "add setup procs" do
@@ -106,17 +108,37 @@ class Assert::Suite
106
108
  tests1.each{ |test| subject.on_test(test) }
107
109
  end
108
110
 
109
- let(:ci1) { proc{ Factory.context_info(Factory.modes_off_context_class) } }
110
- let(:tests1) {
111
+ let(:ci1){ proc{ Factory.context_info(Factory.modes_off_context_class) } }
112
+ let(:tests1) do
113
+ # rubocop:disable Lint/BinaryOperatorWithIdenticalOperands
111
114
  [
112
- Factory.test("should nothing", ci1.call){ },
113
- Factory.test("should pass", ci1.call){ assert(1==1); refute(1==0) },
114
- Factory.test("should fail", ci1.call){ ignore; assert(1==0); refute(1==1) },
115
- Factory.test("should ignore", ci1.call){ ignore },
116
- Factory.test("should skip", ci1.call){ skip; ignore; assert(1==1) },
117
- Factory.test("should error", ci1.call){ raise Exception; ignore; assert(1==1) }
115
+ Factory.test("should nothing", ci1.call) do
116
+ end,
117
+ Factory.test("should pass", ci1.call) do
118
+ assert(1 == 1)
119
+ refute(1 == 0)
120
+ end,
121
+ Factory.test("should fail", ci1.call) do
122
+ ignore
123
+ assert(1 == 0)
124
+ refute(1 == 1)
125
+ end,
126
+ Factory.test("should ignore", ci1.call) do
127
+ ignore
128
+ end,
129
+ Factory.test("should skip", ci1.call) do
130
+ skip
131
+ ignore
132
+ assert(1 == 1)
133
+ end,
134
+ Factory.test("should error", ci1.call) do
135
+ raise Exception
136
+ ignore # rubocop:disable Lint/UnreachableCode
137
+ assert(1 == 1)
138
+ end,
118
139
  ]
119
- }
140
+ # rubocop:enable Lint/BinaryOperatorWithIdenticalOperands
141
+ end
120
142
 
121
143
  should "know its tests-to-run attrs" do
122
144
  assert_that(subject.tests_to_run_count).equals(tests1.size)
@@ -10,14 +10,16 @@ require "assert/result"
10
10
  class Assert::Test
11
11
  class UnitTests < Assert::Context
12
12
  desc "Assert::Test"
13
- subject { unit_class }
13
+ subject{ unit_class }
14
14
 
15
- let(:unit_class) { Assert::Test }
15
+ let(:unit_class){ Assert::Test }
16
16
 
17
- let(:context_class1) { Factory.modes_off_context_class { desc "context class" } }
18
- let(:context_info1) { Factory.context_info(context_class1) }
19
- let(:config1) { Factory.modes_off_config }
20
- let(:test_code1) { proc { assert(true) } }
17
+ let(:context_class1) do
18
+ Factory.modes_off_context_class{ desc "context class" }
19
+ end
20
+ let(:context_info1){ Factory.context_info(context_class1) }
21
+ let(:config1){ Factory.modes_off_config }
22
+ let(:test_code1){ proc{ assert(true) } }
21
23
 
22
24
  should have_imeths :name_file_line_context_data, :for_block
23
25
 
@@ -50,24 +52,26 @@ class Assert::Test
50
52
 
51
53
  class InitWithDataTests < UnitTests
52
54
  desc "when init with data"
53
- subject { unit_class.new(meta_data1.merge(run_data1)) }
55
+ subject{ unit_class.new(meta_data1.merge(run_data1)) }
54
56
 
55
- let(:file_line1) { Assert::FileLine.new(Factory.string, Factory.integer.to_s) }
56
- let(:meta_data1) {
57
+ let(:file_line1) do
58
+ Assert::FileLine.new(Factory.string, Factory.integer.to_s)
59
+ end
60
+ let(:meta_data1) do
57
61
  {
58
- :file_line => file_line1.to_s,
59
- :name => Factory.string,
60
- :output => Factory.string,
61
- :run_time => Factory.float(1.0),
62
+ file_line: file_line1.to_s,
63
+ name: Factory.string,
64
+ output: Factory.string,
65
+ run_time: Factory.float(1.0),
62
66
  }
63
- }
64
- let(:run_data1) {
67
+ end
68
+ let(:run_data1) do
65
69
  {
66
- :context_info => context_info1,
67
- :config => config1,
68
- :code => test_code1
70
+ context_info: context_info1,
71
+ config: config1,
72
+ code: test_code1,
69
73
  }
70
- }
74
+ end
71
75
 
72
76
  should have_imeths :file_line, :file_name, :line_num
73
77
  should have_imeths :name, :output, :run_time
@@ -107,9 +111,12 @@ class Assert::Test
107
111
  end
108
112
 
109
113
  should "have a custom inspect that only shows limited attributes" do
110
- attrs = [:name, :context_info].collect do |method|
111
- "@#{method}=#{subject.send(method).inspect}"
112
- end.join(" ")
114
+ attrs =
115
+ [:name, :context_info]
116
+ .map{ |method|
117
+ "@#{method}=#{subject.send(method).inspect}"
118
+ }
119
+ .join(" ")
113
120
  exp = "#<#{subject.class}:#{"0x0%x" % (subject.object_id << 1)} #{attrs}>"
114
121
  assert_that(subject.inspect).equals(exp)
115
122
  end
@@ -118,13 +125,13 @@ class Assert::Test
118
125
  class PassFailIgnoreHandlingTests < UnitTests
119
126
  include Assert::Test::TestHelpers
120
127
 
121
- subject {
128
+ subject do
122
129
  Factory.test("pass fail ignore test", context_info1) do
123
130
  ignore("something")
124
131
  assert(true)
125
132
  assert(false)
126
133
  end
127
- }
134
+ end
128
135
 
129
136
  setup do
130
137
  subject.context_class.setup do
@@ -184,7 +191,7 @@ class Assert::Test
184
191
  end
185
192
 
186
193
  should "capture fails in the context setup" do
187
- test = Factory.test("setup halt-on-fail test", context_info1){ }
194
+ test = Factory.test("setup halt-on-fail test", context_info1){}
188
195
  test.context_class.setup{ raise Assert::Result::TestFailure }
189
196
  test.run(&test_run_callback)
190
197
 
@@ -192,7 +199,7 @@ class Assert::Test
192
199
  end
193
200
 
194
201
  should "capture fails in the context teardown" do
195
- test = Factory.test("teardown halt-on-fail test", context_info1){ }
202
+ test = Factory.test("teardown halt-on-fail test", context_info1){}
196
203
  test.context_class.teardown{ raise Assert::Result::TestFailure }
197
204
  test.run(&test_run_callback)
198
205
 
@@ -201,11 +208,13 @@ class Assert::Test
201
208
 
202
209
  private
203
210
 
204
- def assert_failed(test)
211
+ def assert_failed(_test)
205
212
  with_backtrace(caller) do
206
- assert_that(test_run_result_count).equals(1, "too many/few fail results")
213
+ assert_that(test_run_result_count)
214
+ .equals(1, "too many/few fail results")
207
215
  test_run_results.each do |result|
208
- assert_that(result).is_kind_of(Assert::Result::Fail, "not a fail result")
216
+ assert_that(result)
217
+ .is_kind_of(Assert::Result::Fail, "not a fail result")
209
218
  end
210
219
  end
211
220
  end
@@ -222,7 +231,7 @@ class Assert::Test
222
231
  end
223
232
 
224
233
  should "capture skips in the context setup" do
225
- test = Factory.test("setup skip test", context_info1){ }
234
+ test = Factory.test("setup skip test", context_info1){}
226
235
  test.context_class.setup{ skip }
227
236
  test.run(&test_run_callback)
228
237
 
@@ -230,7 +239,7 @@ class Assert::Test
230
239
  end
231
240
 
232
241
  should "capture skips in the context teardown" do
233
- test = Factory.test("teardown skip test", context_info1){ }
242
+ test = Factory.test("teardown skip test", context_info1){}
234
243
  test.context_class.teardown{ skip }
235
244
  test.run(&test_run_callback)
236
245
 
@@ -239,11 +248,13 @@ class Assert::Test
239
248
 
240
249
  private
241
250
 
242
- def assert_skipped(test)
251
+ def assert_skipped(_test)
243
252
  with_backtrace(caller) do
244
- assert_that(test_run_result_count).equals(1, "too many/few skip results")
253
+ assert_that(test_run_result_count)
254
+ .equals(1, "too many/few skip results")
245
255
  test_run_results.each do |result|
246
- assert_that(result).is_kind_of(Assert::Result::Skip, "not a skip result")
256
+ assert_that(result)
257
+ .is_kind_of(Assert::Result::Skip, "not a skip result")
247
258
  end
248
259
  end
249
260
  end
@@ -262,7 +273,7 @@ class Assert::Test
262
273
  end
263
274
 
264
275
  should "capture errors in the context setup" do
265
- test = Factory.test("setup error test", context_info1){ }
276
+ test = Factory.test("setup error test", context_info1){}
266
277
  test.context_class.setup{ raise "an error" }
267
278
  test.run(&test_run_callback)
268
279
 
@@ -270,7 +281,7 @@ class Assert::Test
270
281
  end
271
282
 
272
283
  should "capture errors in the context teardown" do
273
- test = Factory.test("teardown error test", context_info1){ }
284
+ test = Factory.test("teardown error test", context_info1){}
274
285
  test.context_class.teardown{ raise "an error" }
275
286
  test.run(&test_run_callback)
276
287
 
@@ -279,11 +290,13 @@ class Assert::Test
279
290
 
280
291
  private
281
292
 
282
- def assert_errored(test)
293
+ def assert_errored(_test)
283
294
  with_backtrace(caller) do
284
- assert_that(test_run_result_count).equals(1, "too many/few error results")
295
+ assert_that(test_run_result_count)
296
+ .equals(1, "too many/few error results")
285
297
  test_run_results.each do |result|
286
- assert_that(result).is_kind_of(Assert::Result::Error, "not an error result")
298
+ assert_that(result)
299
+ .is_kind_of(Assert::Result::Error, "not an error result")
287
300
  end
288
301
  end
289
302
  end
@@ -295,27 +308,27 @@ class Assert::Test
295
308
  raise SignalException, "USR1"
296
309
  end
297
310
 
298
- assert_that { test.run }.raises(SignalException)
311
+ assert_that{ test.run }.raises(SignalException)
299
312
  end
300
313
 
301
314
  should "raises signal exceptions in the context setup" do
302
- test = Factory.test("setup signal test", context_info1){ }
315
+ test = Factory.test("setup signal test", context_info1){}
303
316
  test.context_class.setup{ raise SignalException, "INT" }
304
317
 
305
- assert_that { test.run }.raises(SignalException)
318
+ assert_that{ test.run }.raises(SignalException)
306
319
  end
307
320
 
308
321
  should "raises signal exceptions in the context teardown" do
309
- test = Factory.test("teardown signal test", context_info1){ }
322
+ test = Factory.test("teardown signal test", context_info1){}
310
323
  test.context_class.teardown{ raise SignalException, "TERM" }
311
324
 
312
- assert_that { test.run }.raises(SignalException)
325
+ assert_that{ test.run }.raises(SignalException)
313
326
  end
314
327
  end
315
328
 
316
329
  class ComparingTests < UnitTests
317
330
  desc "<=> another test"
318
- subject { Factory.test("mmm") }
331
+ subject{ Factory.test("mmm") }
319
332
 
320
333
  should "return 1 with a test named 'aaa' (greater than it)" do
321
334
  assert_that(subject <=> Factory.test("aaa")).equals(1)
@@ -332,14 +345,14 @@ class Assert::Test
332
345
 
333
346
  class CaptureOutTests < UnitTests
334
347
  desc "when capturing std out"
335
- subject {
348
+ subject do
336
349
  Factory.test("stdout", capture_config1) do
337
350
  puts "std out from the test"
338
351
  assert true
339
352
  end
340
- }
353
+ end
341
354
 
342
- let(:capture_config1) { Assert::Config.new(:capture_output => true) }
355
+ let(:capture_config1){ Assert::Config.new(capture_output: true) }
343
356
 
344
357
  should "capture any io from the test" do
345
358
  subject.run
@@ -349,12 +362,12 @@ class Assert::Test
349
362
 
350
363
  class FullCaptureOutTests < CaptureOutTests
351
364
  desc "across setup, teardown, and meth calls"
352
- subject {
365
+ subject do
353
366
  Factory.test("fullstdouttest", capture_config1) do
354
367
  puts "std out from the test"
355
368
  assert a_method_an_assert_calls
356
369
  end
357
- }
370
+ end
358
371
 
359
372
  setup do
360
373
  subject.context_class.setup{ puts "std out from the setup" }
@@ -9,37 +9,40 @@ require "assert/config"
9
9
  module Assert::Utils
10
10
  class UnitTests < Assert::Context
11
11
  desc "Assert::Utils"
12
- subject { unit_class }
12
+ subject{ unit_class }
13
13
 
14
- let(:unit_class) { Assert::Utils }
14
+ let(:unit_class){ Assert::Utils }
15
15
 
16
- let(:objs1) { [1, "hi there", Hash.new, [:a, :b]] }
16
+ let(:objs1){ [1, "hi there", {}, [:a, :b]] }
17
17
 
18
18
  should have_imeths :show, :show_for_diff
19
19
  should have_imeths :tempfile
20
- should have_imeths :stdlib_pp_proc, :default_use_diff_proc, :syscmd_diff_proc
20
+ should have_imeths :stdlib_pp_proc, :default_use_diff_proc
21
+ should have_imeths :syscmd_diff_proc
21
22
  should have_imeths :git_changed_proc
22
23
  end
23
24
 
24
25
  class ShowTests < UnitTests
25
26
  desc "`show`"
26
27
 
27
- let(:pp_config1) {
28
+ let(:pp_config1) do
28
29
  Assert::Config.new({
29
- :pp_objects => true,
30
- :pp_proc => Proc.new{ |input| "herp derp" }
30
+ pp_objects: true,
31
+ pp_proc: Proc.new{ |_input| "herp derp" },
31
32
  })
32
- }
33
+ end
33
34
 
34
35
  should "use `inspect` to show objs when `pp_objects` setting is false" do
35
36
  objs1.each do |obj|
36
- assert_that(subject.show(obj, Factory.modes_off_config)).equals(obj.inspect)
37
+ assert_that(subject.show(obj, Factory.modes_off_config))
38
+ .equals(obj.inspect)
37
39
  end
38
40
  end
39
41
 
40
42
  should "use `pp_proc` to show objs when `pp_objects` setting is true" do
41
43
  objs1.each do |obj|
42
- assert_that(subject.show(obj, pp_config1)).equals(pp_config1.pp_proc.call(obj))
44
+ assert_that(subject.show(obj, pp_config1))
45
+ .equals(pp_config1.pp_proc.call(obj))
43
46
  end
44
47
  end
45
48
  end
@@ -47,24 +50,27 @@ module Assert::Utils
47
50
  class ShowForDiffTests < ShowTests
48
51
  desc "`show_for_diff`"
49
52
 
50
- let(:w_newlines1) { { :string => "herp derp, derp herp\nherpderpedia" } }
51
- let(:w_obj_id1) { Class.new.new }
53
+ let(:w_newlines1){ { string: "herp derp, derp herp\nherpderpedia" } }
54
+ let(:w_obj_id1){ Class.new.new }
52
55
 
53
56
  should "call show, escaping newlines" do
54
57
  exp_out = "{:string=>\"herp derp, derp herp\nherpderpedia\"}"
55
- assert_that(subject.show_for_diff(w_newlines1, Factory.modes_off_config)).equals(exp_out)
58
+ assert_that(subject.show_for_diff(w_newlines1, Factory.modes_off_config))
59
+ .equals(exp_out)
56
60
  end
57
61
 
58
62
  should "make any obj ids generic" do
59
63
  exp_out = "#<#<Class:0xXXXXXX>:0xXXXXXX>"
60
- assert_that(subject.show_for_diff(w_obj_id1, Factory.modes_off_config)).equals(exp_out)
64
+ assert_that(subject.show_for_diff(w_obj_id1, Factory.modes_off_config))
65
+ .equals(exp_out)
61
66
  end
62
67
  end
63
68
 
64
69
  class TempfileTests < UnitTests
65
70
  desc "`tempfile`"
66
71
 
67
- should "require tempfile, open a tempfile, write the given content, and yield it" do
72
+ should "require tempfile, open a tempfile, write the given content, "\
73
+ "and yield it" do
68
74
  subject.tempfile("a-name", "some-content") do |tmpfile|
69
75
  assert_that((require "tempfile")).equals(false)
70
76
  assert tmpfile
@@ -94,8 +100,10 @@ module Assert::Utils
94
100
  class DefaultUseDiffProcTests < UnitTests
95
101
  desc "`default_use_diff_proc`"
96
102
 
97
- let(:longer1) { "i am a really long string output; use diff when working with me" }
98
- let(:newlines1) { "i have\n newlines" }
103
+ let(:longer1) do
104
+ "i am a really long string output; use diff when working with me"
105
+ end
106
+ let(:newlines1){ "i have\n newlines" }
99
107
 
100
108
  should "be true if either output has newlines or is bigger than 29 chars" do
101
109
  proc = subject.default_use_diff_proc
@@ -112,28 +120,33 @@ module Assert::Utils
112
120
  class SyscmdDiffProc < UnitTests
113
121
  desc "`syscmd_diff_proc`"
114
122
 
115
- let(:diff_a_file1) { File.join(ROOT_PATH, "test/support/diff_a.txt") }
116
- let(:diff_b_file1) { File.join(ROOT_PATH, "test/support/diff_b.txt") }
117
- let(:diff_a1) { File.read(diff_a_file1) }
118
- let(:diff_b1) { File.read(diff_b_file1) }
119
-
120
- should "use the diff syscmd to output the diff between the exp/act show output" do
121
- exp_diff_out = `diff --unified=-1 #{diff_a_file1} #{diff_b_file1}`.strip.tap do |out|
122
- out.sub!(/^\-\-\- .+/, "--- expected")
123
- out.sub!(/^\+\+\+ .+/, "+++ actual")
124
- end
125
-
126
- assert_that(subject.syscmd_diff_proc.call(diff_a1, diff_b1)).equals(exp_diff_out)
123
+ let(:diff_a_file1){ File.join(ROOT_PATH, "test/support/diff_a.txt") }
124
+ let(:diff_b_file1){ File.join(ROOT_PATH, "test/support/diff_b.txt") }
125
+ let(:diff_a1){ File.read(diff_a_file1) }
126
+ let(:diff_b1){ File.read(diff_b_file1) }
127
+
128
+ should "use the diff syscmd to output the diff between the exp/act "\
129
+ "show output" do
130
+ exp_diff_out =
131
+ `diff --unified=-1 #{diff_a_file1} #{diff_b_file1}`.strip.tap do |out|
132
+ out.sub!(/^\-\-\- .+/, "--- expected")
133
+ out.sub!(/^\+\+\+ .+/, "+++ actual")
134
+ end
135
+
136
+ assert_that(subject.syscmd_diff_proc.call(diff_a1, diff_b1))
137
+ .equals(exp_diff_out)
127
138
  end
128
139
 
129
140
  should "allow you to specify a custom syscmd" do
130
141
  cust_syscmd = "diff"
131
- exp_diff_out = `#{cust_syscmd} #{diff_a_file1} #{diff_b_file1}`.strip.tap do |out|
132
- out.sub!(/^\-\-\- .+/, "--- expected")
133
- out.sub!(/^\+\+\+ .+/, "+++ actual")
134
- end
135
-
136
- assert_that(subject.syscmd_diff_proc(cust_syscmd).call(diff_a1, diff_b1)).equals(exp_diff_out)
142
+ exp_diff_out =
143
+ `#{cust_syscmd} #{diff_a_file1} #{diff_b_file1}`.strip.tap do |out|
144
+ out.sub!(/^\-\-\- .+/, "--- expected")
145
+ out.sub!(/^\+\+\+ .+/, "+++ actual")
146
+ end
147
+
148
+ assert_that(subject.syscmd_diff_proc(cust_syscmd).call(diff_a1, diff_b1))
149
+ .equals(exp_diff_out)
137
150
  end
138
151
  end
139
152
  end