class DeepDouble::FakeMethod

Public Class Methods

new(stubbed_values) click to toggle source
# File lib/deep_double/fake_method.rb, line 11
def initialize(stubbed_values)
  @stubbed_values = stubbed_values
  validate_stubbed_values
end

Public Instance Methods

call(*args) click to toggle source
# File lib/deep_double/fake_method.rb, line 16
def call(*args)
  result(args)
end

Private Instance Methods

result(args) click to toggle source
# File lib/deep_double/fake_method.rb, line 26
def result(args)
  validate_result_exists(args)
  @stubbed_values.key?(args) ? @stubbed_values[args] : @stubbed_values[:default]
end
result_exists?(args) click to toggle source
# File lib/deep_double/fake_method.rb, line 36
def result_exists?(args)
  @stubbed_values.key?(args) || @stubbed_values.key?(:default)
end
validate_result_exists(args) click to toggle source
# File lib/deep_double/fake_method.rb, line 31
def validate_result_exists(args)
  return if result_exists?(args)
  raise ArgumentError, "FakeMethod not defined for args: #{args}"
end
validate_stubbed_values() click to toggle source
# File lib/deep_double/fake_method.rb, line 22
def validate_stubbed_values
  ValidateStubbedValues.new(@stubbed_values).call
end