Sha256: e8c7c95bf9ff2dd100d0ffe8d49eb48245dba84a89f202f2d7a188b8fbd7a22f

Contents?: true

Size: 1009 Bytes

Versions: 1

Compression:

Stored size: 1009 Bytes

Contents

require './lib/jackpot/cron'
require './lib/jackpot/errors'
require 'rspec'

describe Jackpot::Cron do
  let(:logger) { stub(:info => true) } 

  it "finds every overdue customer and bills their cards" do
    customers = [ mock_customer(true), mock_customer(true) ]
    customer_storage = stub(:overdue => customers) 
    cron = Jackpot::Cron.new(customer_storage, logger)
    cron.run
  end 


  context "when something has failed" do

    it "logs the execption" do
      customers = [ mock_customer(true), failed_customer ]
      customer_storage = stub(:overdue => customers) 
      logger.should_receive(:error)
      cron = Jackpot::Cron.new(customer_storage, logger)
      cron.run
    end 
  end 

end 

def mock_customer(return_value)
  customer = stub(:pay_subscription => return_value)
  customer.should_receive(:pay_subscription).and_return(return_value)
  customer
end 

def failed_customer
  customer = Object.new
  customer.stub(:pay_subscription).and_raise(Jackpot::Error.new)
  customer
end 

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jackpot-0.0.3 spec/lib/cron_spec.rb