Sha256: 71235d0600e55aeeff1f708854f4432151f5064fa835d7ace335d31d6dca241e
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb') describe "Tracking Number Validation" do subject { TestRecord.new } context "when no carrier parameter is given" do before(:each) do TestRecord.reset_callbacks(:validate) TestRecord.validates :tracking_number, :tracking_number => true end it "raises an exception" do lambda { subject.valid? }.should raise_error end end context "when given a ups carrier parameter" do before(:each) do TestRecord.reset_callbacks(:validate) TestRecord.validates :tracking_number, :tracking_number => {:carrier => :ups} end it 'should validate format of tracking number with 1Z################' do subject.tracking_number = '1Z9999999999999999' subject.should be_valid subject.should have(0).errors end it 'should validate format of tracking number with ############' do subject.tracking_number = '999999999999' subject.should be_valid subject.should have(0).errors end it 'should validate format of tracking number with T##########' do subject.tracking_number = 'T9999999999' subject.should be_valid subject.should have(0).errors end it 'should validate format of tracking number with #########' do subject.tracking_number = '999999999' subject.should be_valid subject.should have(0).errors end end describe "for invalid formats" do before :each do TestRecord.reset_callbacks(:validate) TestRecord.validates :tracking_number, :tracking_number => {:carrier => :ups} subject.tracking_number = '999' end it "rejects invalid formats" do subject.should_not be_valid subject.should have(1).error end it "generates an error message of type invalid" do subject.should_not be_valid subject.errors[:tracking_number].should include subject.errors.generate_message(:tracking_number, :invalid) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activevalidators-1.5.0 | spec/validations/tracking_number_spec.rb |