spec/postal_code_spec.rb in govkit-ca-0.0.6 vs spec/postal_code_spec.rb in govkit-ca-0.0.7
- old
+ new
@@ -1,106 +1,88 @@
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
-module GovKit::CA::PostalCode
- describe GovKit::CA::PostalCode do
- describe '#valid?' do
- it 'should return false if the postal code is not properly formatted' do
- [ 'A1A1A', # too short
- 'A1A1A1A', # too long
- "A1A1A1\nA1A1A1", # multiline
- 'AAAAAA', # no digits
- '111111', # no letters
- '1A1A1A', # wrong order
- 'Z1Z1Z1', # Z as first letter
- 'Q1Q1Q1', # Q as letter
- 'a1a1a1', # lowercase
- ].each do |postal_code|
- subject.valid?(postal_code).should be_false
- end
+describe GovKit::CA::PostalCode do
+ describe '#valid?' do
+ it 'should return false if the postal code is not properly formatted' do
+ [ 'A1A1A', # too short
+ 'A1A1A1A', # too long
+ "A1A1A1\nA1A1A1", # multiline
+ 'AAAAAA', # no digits
+ '111111', # no letters
+ '1A1A1A', # wrong order
+ 'Z1Z1Z1', # Z as first letter
+ 'Q1Q1Q1', # Q as letter
+ 'a1a1a1', # lowercase
+ ].each do |postal_code|
+ subject.valid?(postal_code).should be_false
end
+ end
- it 'should return true if the postal code is properly formatted' do
- [ 'A1Z1Z1', # Z not as first letter
- 'H0H0H0', # doesn't exist
- 'A1A1A1', # does exist
- ].each do |postal_code|
- subject.valid?(postal_code).should be_true
- end
+ it 'should return true if the postal code is properly formatted' do
+ [ 'A1Z1Z1', # Z not as first letter
+ 'H0H0H0', # doesn't exist
+ 'A1A1A1', # does exist
+ ].each do |postal_code|
+ subject.valid?(postal_code).should be_true
end
end
+ end
- describe '#find_electoral_districts_by_postal_code' do
- before :all do
- { 'ElectionsCa' => 'elections_ca',
- 'CBCCa' => 'cbc_ca',
- 'NDPCa' => 'ndp_ca',
- # GreenPartyCa is broken.
- #'GreenPartyCa' => 'greenparty_ca',
- }.each do |const,path|
- %w(A1A1A1 K0A1K0 H0H0H0).each do |postal_code|
- strategy = GovKit::CA::PostalCode::Strategy.const_get(const).new(postal_code)
- unless FakeWeb.allow_net_connect?
- FakeWeb.register_uri strategy.class.http_method, "#{strategy.class.base_uri}#{strategy.send(:path)}", :response => fixture_path(path, "#{postal_code}.response")
- end
- end
- end
+ describe '#find_electoral_districts_by_postal_code' do
+ it 'should return the electoral districts within a postal code' do
+ { 'A1A1A1' => [10007],
+ 'K0A1K0' => [35012, 35025, 35040, 35052],
+ }.each do |postal_code,electoral_districts|
+ subject.find_electoral_districts_by_postal_code(postal_code).should == electoral_districts
end
+ end
- it 'should return the electoral districts within a postal code' do
- { 'A1A1A1' => [10007],
- 'K0A1K0' => [35012, 35025, 35040, 35052],
- }.each do |postal_code,electoral_districts|
- subject.find_electoral_districts_by_postal_code(postal_code).should == electoral_districts
- end
- end
+ it 'should raise an error if the postal code cannot be determined' do
+ lambda{subject.find_electoral_districts_by_postal_code('H0H0H0')}.should raise_error(GovKit::CA::ResourceNotFound)
+ end
- it 'should raise an error if the postal code cannot be determined' do
- lambda{subject.find_electoral_districts_by_postal_code('H0H0H0')}.should raise_error(GovKit::CA::ResourceNotFound)
- end
+ it 'should raise an error if the postal code is invalid' do
+ lambda{subject.find_electoral_districts_by_postal_code('AAAAAA')}.should raise_error(GovKit::CA::InvalidRequest)
+ end
+ end
- it 'should raise an error if the postal code is invalid' do
- lambda{subject.find_electoral_districts_by_postal_code('AAAAAA')}.should raise_error(GovKit::CA::InvalidRequest)
+ describe '#find_province_by_postal_code' do
+ it 'should return the province that a postal code belongs to' do
+ { 'A' => 'Newfoundland and Labrador',
+ 'B' => 'Nova Scotia',
+ 'C' => 'Prince Edward Island',
+ 'E' => 'New Brunswick',
+ 'G' => 'Quebec',
+ 'H' => 'Quebec',
+ 'J' => 'Quebec',
+ 'K' => 'Ontario',
+ 'L' => 'Ontario',
+ 'M' => 'Ontario',
+ 'N' => 'Ontario',
+ 'P' => 'Ontario',
+ 'R' => 'Manitoba',
+ 'S' => 'Saskatchewan',
+ 'T' => 'Alberta',
+ 'V' => 'British Columbia',
+ 'X0A' => 'Nunavut',
+ 'X0B' => 'Nunavut',
+ 'X0C' => 'Nunavut',
+ 'X0E' => 'Northwest Territories',
+ 'X0G' => 'Northwest Territories',
+ 'X1A' => 'Northwest Territories',
+ 'Y' => 'Yukon',
+ }.each do |postal_code, province|
+ subject.find_province_by_postal_code(postal_code).should == province
end
end
- describe '#find_province_by_postal_code' do
- it 'should return the province that a postal code belongs to' do
- { 'A' => 'Newfoundland and Labrador',
- 'B' => 'Nova Scotia',
- 'C' => 'Prince Edward Island',
- 'E' => 'New Brunswick',
- 'G' => 'Quebec',
- 'H' => 'Quebec',
- 'J' => 'Quebec',
- 'K' => 'Ontario',
- 'L' => 'Ontario',
- 'M' => 'Ontario',
- 'N' => 'Ontario',
- 'P' => 'Ontario',
- 'R' => 'Manitoba',
- 'S' => 'Saskatchewan',
- 'T' => 'Alberta',
- 'V' => 'British Columbia',
- 'X0A' => 'Nunavut',
- 'X0B' => 'Nunavut',
- 'X0C' => 'Nunavut',
- 'X0E' => 'Northwest Territories',
- 'X0G' => 'Northwest Territories',
- 'X1A' => 'Northwest Territories',
- 'Y' => 'Yukon',
- }.each do |postal_code, province|
- subject.find_province_by_postal_code(postal_code).should == province
- end
- end
-
- it 'should raise an error if the province cannot be determined' do
- lambda{subject.find_province_by_postal_code('X1B1B1')}.should raise_error(GovKit::CA::ResourceNotFound)
- end
+ it 'should raise an error if the province cannot be determined' do
+ lambda{subject.find_province_by_postal_code('X1B1B1')}.should raise_error(GovKit::CA::ResourceNotFound)
end
+ end
- describe '#format_postal_code' do
- it 'should format a postal code' do
- subject.format_postal_code("+a1a 1a1\n").should == 'A1A1A1'
- end
+ describe '#format_postal_code' do
+ it 'should format a postal code' do
+ subject.format_postal_code("+a1a 1a1\n").should == 'A1A1A1'
end
end
end