Sha256: e3bd6de1a691d03498c70dc5f6e3137b24bfe6fcefd04cea69d45d89f2074a21

Contents?: true

Size: 1.49 KB

Versions: 7

Compression:

Stored size: 1.49 KB

Contents

require File.dirname(__FILE__) + '/../test_helper'

class CartItemTest < Test::Unit::TestCase
  fixtures :products

  PRICE = 10
  PRICE_EFFECT = 5
      
  def setup
    @cart_item = CartItem.new    
  end

  def test_invalid_with_empty_attributes
    assert !@cart_item.valid?
    assert @cart_item.errors.invalid?(:product), "product required"
    assert @cart_item.errors.invalid?(:quantity), "quantity required"
  end
  
  def test_invalid_quantity 
    @cart_item.quantity = "foo"
    @cart_item.product = products(:ror_tote)
    assert !@cart_item.valid?
    assert @cart_item.errors.invalid?(:quantity), "quantity must be numeric"

    @cart_item.quantity = 0.5
    assert !@cart_item.valid?
    assert @cart_item.errors.invalid?(:quantity), "quantity must be an integer"

    @cart_item.quantity = -1
    assert !@cart_item.valid?
    assert @cart_item.errors.invalid?(:quantity), "quantity must be positive"
  end
  
  def test_valid_quantity
    @cart_item.quantity = 1
    @cart_item.product = products(:ror_tote)
    assert @cart_item.valid?, "positive integer quantity should be allowed"
  end
  
  def test_increment_quantity
    @cart_item.quantity = 0
    @cart_item.increment_quantity
    assert_equal 1, @cart_item.quantity    
  end

  def test_price
    p = Product.new
    p.stubs(:price).returns PRICE
    p.stubs(:quantity).returns 1
    @cart_item.product = p
    @cart_item.variation = Variation.new(:price_effect => PRICE_EFFECT)  
    assert_equal PRICE + PRICE_EFFECT, @cart_item.price
  end
  
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
railscart-0.0.1 starter-app/vendor/plugins/railscart/test/unit/cart_item_test.rb
railscart-0.0.2 starter_app/vendor/plugins/railscart/test/unit/cart_item_test.rb
railscart-0.0.3 starter_app/vendor/plugins/railscart/test/unit/cart_item_test.rb
railscart-0.0.4 starter_app/vendor/plugins/railscart/test/unit/cart_item_test.rb
spree-0.0.5 starter-app/vendor/plugins/spree/test/unit/cart_item_test.rb
spree-0.0.6 starter-app/vendor/plugins/spree/test/unit/cart_item_test.rb
spree-0.0.7 starter-app/vendor/plugins/spree/test/unit/cart_item_test.rb