forked from tapajos/highrise
-
Notifications
You must be signed in to change notification settings - Fork 0
/
base_spec.rb
38 lines (30 loc) · 1.45 KB
/
base_spec.rb
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
require File.dirname(__FILE__) + '/../spec_helper'
describe Highrise::Base do
before(:each) do
@base = Highrise::Base.new
end
it "should be instance of ActiveResource::Base" do
@base.kind_of?(ActiveResource::Base).should be_true
end
describe "dynamic finder methods" do
before(:each) do
@john_doe = Highrise::Person.new(:id => 1, :first_name => "John", :last_name => "Doe")
@john_baker = Highrise::Person.new(:id => 2, :first_name => "John", :last_name => "Baker")
@joe_smith = Highrise::Person.new(:id => 3, :first_name => "Joe", :last_name => "Smith")
end
it "should find one when using find_by_(attribute)" do
Highrise::Person.should_receive(:find).with(:all).and_return([@john_doe, @john_baker, @joe_smith])
Highrise::Person.find_by_first_name("John").should == @john_doe
end
it "should find all when using find_all_by_(attribute)" do
Highrise::Person.should_receive(:find).with(:all).and_return([@john_doe, @john_baker, @joe_smith])
Highrise::Person.find_all_by_first_name("John").should == [@john_doe, @john_baker]
end
it "should raise an argument when no arguments passed to method missing" do
lambda { Highrise::Person.find_all_by_first_name }.should raise_error(ArgumentError)
end
it "should fallback to regular method missing if method doesnt match regex" do
lambda { Highrise::Person.any_other_method }.should raise_error(NoMethodError)
end
end
end