Create note on discontinued development
[merb_mart.git] / spec / models / address_spec.rb
blobd7256659e89bd2102dda04c9fd9c6091243756f2
1 require File.join( File.dirname(__FILE__), "..", "spec_helper" )
3 describe Address do
5   before(:each) do
6     DataMapper.auto_migrate!
7   end
9   describe "associations" do
10     it "should belong to a country" do
11       address = Address.new
12       address.should respond_to(:country)
13       address.should respond_to(:country=)
14     end
16     it "should belong to a state" do
17       address = Address.new
18       address.should respond_to(:state)
19       address.should respond_to(:state=)
20     end
22     it "should belong to a province (alias for state)" do
23       #state = mock("state")
24       address = Address.new
25       address.should respond_to(:province)
26       address.should respond_to(:province=)
27       #address.province = state
28     end
29   end
31   it "should require a postal_code, last name, first name and address" do
32     Address.create(Address.gen_attrs.except(:postal_code)).should_not be_valid
33     Address.create(Address.gen_attrs.except(:last_name)).should_not be_valid
34     Address.create(Address.gen_attrs.except(:first_name)).should_not be_valid
35     Address.create(Address.gen_attrs.except(:address1)).should_not be_valid
36   end
38   it "should provide the zipcode alias for postal code" do
39     address = Address.gen
40     address.zipcode.should == address.postal_code
41   end
43   it "should limit the first name to be a maximum of 50 characters" do
44     [3,50].each do |num|
45       Address.gen(:first_name => "a" * num).should be_valid
46     end
48     Address.gen(:first_name => "a" * 51).should_not be_valid
49   end
51   it "should limit the last name to be a maximum of 50 characters" do
52     [3,50].each do |num|
53       Address.gen(:last_name => "a" * num).should be_valid
54     end
56     Address.gen(:last_name => "a" * 51).should_not be_valid
57   end
59   it "should limit the address to a maximum of 200 characters" do
60     [3,200].each do |num|
61       Address.gen(:address1 => "a" * num).should be_valid
62     end
64     Address.gen(:address1 => "a" * 201).should_not be_valid
65   end
67   #it "should not allow PO Box or variants to be entered as an address"
69   it "should provide a name" do
70     Address.gen(:first_name => 'John', :last_name => 'Doe').name.should == 'John Doe'
71   end
72 end