source: ruby/branches/0.5/spec/lib/open_ehr/assumed_library_types/iso_8601_date_spec.rb@ 256

Last change on this file since 256 was 256, checked in by KOBAYASHI, Shinji, 15 years ago

assumed_library_types move test/unit to rspec

File size: 4.0 KB
Line 
1require File.dirname(__FILE__) + '/../../../spec_helper'
2include OpenEHR::AssumedLibraryTypes
3
4describe ISO8601Date do
5 before do
6 @iso8601date = ISO8601Date.new('2009-09-10')
7 end
8
9 it 'should be an instance of ISO8601Date' do
10 @iso8601date.should be_an_instance_of ISO8601Date
11 end
12
13 it 'year should be equal 2009' do
14 @iso8601date.year.should be_equal 2009
15 end
16
17 it 'month should be equal 9' do
18 @iso8601date.month.should be_equal 9
19 end
20
21 it 'day should be equal 10' do
22 @iso8601date.day.should be_equal 10
23 end
24
25 it 'should be 2009-09-10 as_string' do
26 @iso8601date.as_string.should == '2009-09-10'
27 end
28
29 describe 'year behavior' do
30 it 'should raise ArgumentError with nil year string' do
31 lambda{ISO8601Date.new('-09-02')}.should raise_error ArgumentError
32 end
33
34 it 'should raise ArgumentError with nil year' do
35 lambda{@iso8601date.year = nil}.should raise_error ArgumentError
36 end
37
38 it 'should not raise ArgumentError more than 0 year' do
39 lambda{@iso8601date.year = 0}.should_not raise_error ArgumentError
40 end
41 end
42
43 describe 'month behavior' do
44 it '1 month should not raise ArgumentError' do
45 lambda{@iso8601date.month = 1}.should_not raise_error ArgumentError
46 end
47
48 it '12 month should not raise ArgumentError' do
49 lambda{@iso8601date.month = 12}.should_not raise_error ArgumentError
50 end
51
52 it '13 month should raise ArgumentError' do
53 lambda{@iso8601date.month = 13}.should raise_error ArgumentError
54 end
55
56 it '0 month should raise ArgumentError' do
57 lambda{@iso8601date.month = 0}.should raise_error ArgumentError
58 end
59 end
60
61 describe 'day behavior' do
62 it '0 day should raise ArgumentError' do
63 lambda{@iso8601date.day = 0}.should raise_error ArgumentError
64 end
65 end
66
67 describe 'January behavior' do
68 before do
69 @iso8601date.month = 1
70 end
71
72 it 'January should have 31 days' do
73 lambda{@iso8601date.day = 31}.should_not raise_error ArgumentError
74 end
75
76 it 'January should not have 32 days' do
77 lambda{@iso8601date.month = 32}.should raise_error ArgumentError
78 end
79 end
80
81 describe 'February and leap year behavior' do
82 before do
83 @iso8601date.month = 2
84 end
85
86 describe '2009(not leap year) behavior' do
87 before do
88 @iso8601date.year = 2009
89 end
90
91 it '2009-02-28 should not raise ArgumentError' do
92 lambda{@iso8601date.day = 28}.should_not raise_error ArgumentError
93 end
94
95 it '2009-02-29 should raise ArgumentError' do
96 lambda{@iso8601date.day = 29}.should raise_error ArgumentError
97 end
98 end
99
100 describe '2008(leap year) behavior' do
101 before do
102 @iso8601date.year = 2008
103 end
104
105 it '2008-02-29 should not raise ArgumentError' do
106 lambda{@iso8601date.day = 29}.should_not raise_error ArgumentError
107 end
108
109 it '2008-02-30 should raise ArgumentError' do
110 lambda{@iso8601date.day = 30}.should raise_error ArgumentError
111 end
112 end
113
114 describe '2000(irregular leap year' do
115 before do
116 @iso8601date.year = 2000
117 end
118
119 it '2000-02-29 should not raise ArgumentError' do
120 lambda{@iso8601date.day = 29}.should_not raise_error ArgumentError
121 end
122
123 it '2000-02-30 should raise ArgumentError' do
124 lambda{@iso8601date.day = 30}.should raise_error ArgumentError
125 end
126 end
127 end
128
129 describe 'March behavior' do
130 before do
131 @iso8601date.month = 3
132 end
133
134 it '31 day should not raise ArgumentError' do
135 lambda{@iso8601date.day = 31}.should_not raise_error ArgumentError
136 end
137
138 it '32 day should raise ArgumentError' do
139 lambda{@iso8601date.day = 32}.should raise_error ArgumentError
140 end
141 end
142
143 describe 'April behavior' do
144 before do
145 @iso8601date.month = 4
146 end
147
148 it '30 day should not raise ArgumentError' do
149 lambda{@iso8601date.day = 30}.should_not raise_error ArgumentError
150 end
151
152 it '31 day should raise ArgumentError' do
153 lambda{@iso8601date.day = 31}.should raise_error ArgumentError
154 end
155 end
156end
Note: See TracBrowser for help on using the repository browser.