Sha256: f4b8e946e990cbf7dbb432184fb1a5cda203c34f139f14993455e940fafafd6d

Contents?: true

Size: 764 Bytes

Versions: 2

Compression:

Stored size: 764 Bytes

Contents

require 'spec_helper'

describe PromotionRule do
  before(:all) do
    class MyRule < PromotionRule
      def self.unregister
        @@rule_classes.delete(self)
      end
    end
  end

  after do
    MyRule.unregister
  end

  it "should allow registering rules" do
    PromotionRule.rule_classes.should_not include(MyRule)
    MyRule.rule_classes.should_not include(MyRule)

    MyRule.register

    PromotionRule.rule_classes.should include(MyRule)
    MyRule.rule_classes.should include(MyRule)
  end

  it "should allow to get rule class names" do
    MyRule.register

    MyRule.rule_class_names.should include("MyRule")
  end

  it "should force developer to implement eligible? method" do
    lambda { MyRule.new.eligible? }.should raise_error
  end

end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
MyCommerceapi-1.0.0 promo/spec/models/promotion_rule_spec.rb
MyCommerce-0.0.3 promo/spec/models/promotion_rule_spec.rb