Sha256: dd2ee70b2b63514418651747fb46cfc7a72b1ce8a7c2a4883375ff5883e3d5a0

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

require 'test_helper'
require 'mocha'
require 'auto_mocha'

class Product < ActiveRecord::Base
   
  def self.released_since(cutoff_date)
    find(:all, :conditions => ['release_date > :date', {:date => cutoff_date}])
  end
  
  def sales_with_price_exceeding(price_threshold)
    sales.select { |sale| sale.price > price_threshold }
  end
  
end

class AutoMockAcceptanceTest < Test::Unit::TestCase
  
  def test_should_find_all_products_released_since_specified_date
    new_releases = [Product.new]
    Product.expects(:find).with(:all, :conditions => ['release_date > :date', {:date => :cutoff_date}]).returns(new_releases)
    assert_equal new_releases, Product.released_since(:cutoff_date)
  end
  
  def test_should_find_sales_for_this_product_which_exceeded_specified_price
    product = Product.new
    cheap_order = Mocha::Mock.new
    cheap_order.expects(:price).returns(5)
    expensive_order = Mocha::Mock.new
    expensive_order.expects(:price).returns(15)
    orders = [cheap_order, expensive_order]
    product.expects(:sales).returns(orders)
    assert_equal [expensive_order], product.sales_with_price_exceeding(10)
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mocha-0.1 test/auto_mock_acceptance_test.rb
mocha-0.1.1 test/auto_mock_acceptance_test.rb
mocha-0.1.2 test/auto_mock_acceptance_test.rb