Extensive Namespacing of model specs
[merb_mart.git] / spec / models / address_spec.rb
blobd72cb5d29f59b087ddd6855941df28d922fa56fc
1 require File.join( File.dirname(__FILE__), "..", "spec_helper" )
3 describe Address do
5   describe "associations" do
6     it "should belong to a country"
7     it "should have one order"
8     it "should belong to a customer (OrderUser)"
9   end
10   
11   it "should require a customer"
12   it "should require a zip"
13   it "should require a telephone"
14   it "should require a first name"
15   it "should require a last name"
16   it "should require an address"
17   
18   it "should limit the first name to be a maximum of 50 characters" do
19     address = Address.new
20     [3,50].each do |num|
21       address.first_name = "a" * num
22       address.valid?
23       address.errors.on(:first_name).should be_nil
24     end
25     
26     address.first_name = "a" * 51
27     address.valid?
28     address.errors.on(:first_name).should_not be_nil
29   end
30   
31   it "should limit the last name to be a maximum of 50 characters" do
32     address = Address.new
33     [3,50].each do |num|
34       address.last_name = "z" * num
35       address.valid?
36       address.errors.on(:last_name).should be_nil
37     end
38     
39     address.last_name = "z" * 51
40     address.valid?
41     address.errors.on(:last_name).should_not be_nil
42   end
43   
44   it "should limit the address to a maximum of 255 characters"
45   
46   #it "should not allow PO Box or variants to be entered as an address"
48   #it "should find a shipping address for a customer (OrderUser)" do
49   #  order_address = Address.find_shipping_address_for_user(1)
50   #end
51   
52   it "should provide a name" do
53     address = Address.new
54     address.first_name = "John"
55     address.last_name = "Doe"
56     address.name.should == "John Doe"
57   end
59 end