Sha256: 539d7ed84b41145485fe77e47b022f5aff31ee8627ec2a0713479e56f3d33741

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

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

class CouponTest < ActiveSupport::TestCase

  context 'A coupon instance that acts_as_muck_coupon' do
    setup do
      @coupon = Factory(:coupon)
    end
    subject { @coupon }

    should_have_many :orders
    should_belong_to :user
    should_belong_to :coupon_type
    
    should_validate_presence_of :code, :amount, :percent, :uses
    should_validate_uniqueness_of :code
   
    #validate :validate_discount
    
    context "named scopes" do
      setup do
        @active_coupon = Factory(:coupon)
        @expired_coupon = Factory(:coupon, :expires_at => 1.week.ago)
        @used_coupon = Factory(:coupon, :use_limit => 1, :uses => 2)
        @referral_coupon = Factory(:coupon, :coupon_type => CouponType.default)
      end
      should_scope_by_newest
      context "active" do
        should "find active coupons" do
          assert Coupon.active.include?(@active_coupon)
        end
        should "not find expired coupons" do
          assert !Coupon.active.include?(@in_active_coupon)
        end
        should "not find used coupons" do
          assert !Coupon.active.include?(@used_coupon)
        end
      end
      context "referrals" do
        should "find referral codes" do
          assert Coupon.referrals.include?(@referral_coupon)
        end
        should "not find default codes" do
          assert !Coupon.active.include?(@active_coupon)
        end
      end
      context "default" do
        should "find default codes" do
          assert Coupon.referrals.include?(@active_coupon)
        end
        should "not find referral code" do
          assert !Coupon.active.include?(@referral_coupon)
        end
      end
    end
    
    context "random_code" do
      should "generate a random code" do
        assert_not_nil Coupon.random_code
      end
    end
    
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
muck-commerce-0.1.9 test/rails_root/test/unit/coupon_test.rb