Module: ExtraAssertions

Included in:
ZipFsFileNonmutatingTest
Defined in:
lib/hotplate/gems/rubyzip-1.1.7/test/test_helper.rb

Instance Method Summary collapse

Instance Method Details

#assert_forwarded(anObject, method, retVal, *expectedArgs) ⇒ Object



211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/test_helper.rb', line 211

def assert_forwarded(anObject, method, retVal, *expectedArgs)
  callArgs = nil
  setCallArgsProc = proc { |args| callArgs = args }
  anObject.instance_eval <<-"end_eval"
    alias #{method}_org #{method}
    def #{method}(*args)
      ObjectSpace._id2ref(#{setCallArgsProc.object_id}).call(args)
      ObjectSpace._id2ref(#{retVal.object_id})
      end
  end_eval

  assert_equal(retVal, yield) # Invoke test
  assert_equal(expectedArgs, callArgs)
ensure
  anObject.instance_eval "undef #{method}; alias #{method} #{method}_org"
end