Sha256: 247ad1737706a49a412945b3fc6a97590fe6ccb4c4b689da8f6b281abcbfab7f
Contents?: true
Size: 1.88 KB
Versions: 2
Compression:
Stored size: 1.88 KB
Contents
require 'spec_helper' describe BookingSync::Base do it { subject.should be_a_kind_of ActiveResource::Base } describe "dynamic finder methods" do context "without pagination" do before do @rental_one = BookingSync::Base.new(:id => 1, :name => "A rental") @rental_two = BookingSync::Base.new(:id => 2, :name => "A rental") @rental_three = BookingSync::Base.new(:id => 3, :name => "Another rental") BookingSync::Base.should_receive(:find).with(:all).and_return([@rental_one, @rental_two, @rental_three]) end it ".find_by_(attribute) finds one" do BookingSync::Base.find_by_name("A rental").should == @rental_one end it ".find_all_by_(attribute) finds all" do BookingSync::Base.find_all_by_name("A rental").should == [@rental_one, @rental_two] end end context "with pagination" do before do class PaginatedBaseClass < BookingSync::Base; include BookingSync::Pagination; end @john_doe = PaginatedBaseClass.new(:id => 1, :first_name => "John") @john_baker = PaginatedBaseClass.new(:id => 2, :first_name => "John") @joe_smith = PaginatedBaseClass.new(:id => 3, :first_name => "Joe") PaginatedBaseClass.should_receive(:find_all_across_pages).and_return([@john_doe, @john_baker, @joe_smith]) end it ".find_by_(attribute) finds one" do PaginatedBaseClass.find_by_first_name("John").should == @john_doe end it ".find_all_by_(attribute) finds all" do PaginatedBaseClass.find_all_by_first_name("John").should == [@john_doe, @john_baker] end end it "expects arguments to the finder" do expect { BookingSync::Base.find_all_by_first_name }.to raise_error(ArgumentError) end it "falls back to regular method missing" do expect { BookingSync::Base.any_other_method }.to raise_error(NoMethodError) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bookingsync-0.3.0 | spec/bookingsync/base_spec.rb |
bookingsync-0.2.0 | spec/bookingsync/base_spec.rb |