Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: ab7005794f
Fetching contributors…

Cannot retrieve contributors at this time

file 55 lines (49 sloc) 2.124 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
require File.dirname(__FILE__) + "/spec_helper"

describe "have_many_to_one_matcher" do

  before :all do
    define_model :item
    define_model :comment do
      many_to_one :item
    end
  end

  subject{ Comment }

  describe "messages" do
    describe "without option" do
      it "should contain a description" do
        @matcher = have_many_to_one :item
        @matcher.description.should == "have a many_to_one association :item"
      end
      it "should set failure messages" do
        @matcher = have_many_to_one :item
        @matcher.matches? subject
        @matcher.failure_message.should == "expected Comment to " + @matcher.description
        @matcher.negative_failure_message.should == "expected Comment to not " + @matcher.description
      end
    end
    describe "with options" do
      it "should contain a description" do
        @matcher = have_many_to_one :item, :class_name => "Item"
        @matcher.description.should == 'have a many_to_one association :item with :class_name => "Item"'
      end
      it "should set failure messages" do
        @matcher = have_many_to_one :item, :class_name => "Item"
        @matcher.matches? subject
        @matcher.failure_message.should == "expected Comment to " + @matcher.description
        @matcher.negative_failure_message.should == "expected Comment to not " + @matcher.description
      end
      it "should explicit used options if different than expected" do
        @matcher = have_many_to_one :item, :class_name => "Price"
        @matcher.matches? subject
        explanation = ' expected :class_name == "Price" but found "Item" instead'
        @matcher.failure_message.should == "expected Comment to " + @matcher.description + explanation
        @matcher.negative_failure_message.should == "expected Comment to not " + @matcher.description + explanation
      end
    end
  end

  describe "matchers" do
    it{ should have_many_to_one(:item) }
    it{ should have_many_to_one(:item, :class_name => "Item") }
    it{ should_not have_many_to_one(:price) }
    it{ should_not have_many_to_one(:item, :class_name => "Price") }
  end

end
Something went wrong with that request. Please try again.