class Zen::Service::SpecHelpers::ServiceMocker

Attributes

service[R]
service_class[R]

Public Instance Methods

stub_service(service_class) click to toggle source
# File lib/zen/service/spec_helpers.rb, line 31
def stub_service(service_class) # rubocop:disable Metrics/AbcSize
  @service_class = service_class
  @service = double(service_class.name)

  allow(service_class).to receive(:new).and_return(service)
  allow(service).to receive(:execute).and_return(service)
  allow(service).to receive(:executed?).and_return(true)

  self
end
with_attributes(*attributes) click to toggle source
# File lib/zen/service/spec_helpers.rb, line 42
def with_attributes(*attributes)
  expect(service_class).to receive(:new).with(*attributes).and_return(service)

  self
end
with_stubs(stubs) click to toggle source
# File lib/zen/service/spec_helpers.rb, line 48
def with_stubs(stubs)
  stubs[:success?] = !!stubs[:result] unless stubs.key?(:success)
  stubs[:failure?] = !stubs[:success?]

  stubs.each do |name, value|
    allow(service).to receive(name).and_return(value)
  end

  self
end