blob: 50229bfc0aae21b06f0600dfbf573f44a21b060a (
plain) (
blame)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# postcodes-norway: Access norwegian postcode data from Ruby.
# Copyright (C) 2015 Harald Eilertsen <haraldei@anduin.net>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
require 'minitest/autorun'
require_relative '../lib/norwegian-postcodes'
describe PostCodes::PostCode do
before do
@postcode = PostCodes::PostCode.new('1234', 'MYTOWN', '1378', 'MY MUNICIPALITY', 'G')
end
it "has a county" do
@postcode.county.must_equal [13, '(BERGEN)']
end
it "can print it's original form" do
@postcode.to_s.must_equal "1234\tMYTOWN\t1378\tMY MUNICIPALITY\tG"
end
end
describe 'PostCodes::county' do
it "must give the right county names" do
PostCodes.county(1).must_equal('ØSTFOLD')
PostCodes.county(2).must_equal('AKERSHUS')
PostCodes.county(3).must_equal('OSLO')
PostCodes.county(4).must_equal('HEDMARK')
PostCodes.county(5).must_equal('OPPLAND')
PostCodes.county(6).must_equal('BUSKERUD')
PostCodes.county(7).must_equal('VESTFOLD')
PostCodes.county(8).must_equal('TELEMARK')
PostCodes.county(9).must_equal('AUST-AGDER')
PostCodes.county(10).must_equal('VEST-AGDER')
PostCodes.county(11).must_equal('ROGALAND')
PostCodes.county(12).must_equal('HORDALAND')
PostCodes.county(13).must_equal('(BERGEN)')
PostCodes.county(14).must_equal('SOGN OG FJORDANE')
PostCodes.county(15).must_equal('MØRE OG ROMSDAL')
PostCodes.county(16).must_equal('SØR-TRØNDELAG')
PostCodes.county(17).must_equal('NORD-TRØNDELAG')
PostCodes.county(18).must_equal('NORDLAND')
PostCodes.county(19).must_equal('TROMS')
PostCodes.county(20).must_equal('FINNMARK')
PostCodes.county(21).must_equal('SVALBARD')
PostCodes.county(22).must_equal('JAN MAYEN')
PostCodes.county(23).must_equal('KONTINENTALSOKKELEN')
end
it "must fail on invalid county codes" do
PostCodes.county(0).must_equal nil
PostCodes.county(24).must_equal nil
end
end
describe PostCodes do
before do
codes = [
"0100\tFIRST TOWN\t0101\tFIRST MUNICIPALITY\tG",
"1234\tMYTONW\t1278\tMY MUNICIPALITY\tG",
"6734\tOTHERTOWN\t2783\tOTHER MUNICIPALITY\tG"
]
PostCodes.load(StringIO.new(codes.join("\n").encode(Encoding::ISO_8859_15)))
end
it "can find existing postcode" do
c = PostCodes.search('0100')
c.must_be_kind_of(PostCodes::PostCode)
c.city.must_equal('FIRST TOWN')
c1 = PostCodes.search('6734')
c1.must_be_kind_of(PostCodes::PostCode)
c1.city.must_equal('OTHERTOWN')
end
it "returns nil if postcode does not exist" do
c = PostCodes.search('2222')
c.must_equal(nil)
end
end
|