source: ruby/trunk/lib/models/tests/test_assumed_library_types.rb@ 291

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

merged branches/0.5 to trunk

File size: 19.7 KB
Line 
1require 'test/unit'
2require 'assumed_library_types.rb'
3
4include OpenEhr::AssumedLibraryTypes
5
6class Assumed_Library_Test < Test::Unit::TestCase
7 def setup
8 assert_nothing_raised(Exception){@interval = OpenEhr::AssumedLibraryTypes::Interval.new(1,2)}
9 assert_nothing_raised(Exception){@iso8601_date = OpenEhr::AssumedLibraryTypes::ISO8601_DATE.new('2009-04-27')}
10 assert_nothing_raised(Exception){@iso8601_time = OpenEhr::AssumedLibraryTypes::ISO8601_TIME.new('15:55:37.32+0900')}
11 assert_nothing_raised(Exception){@iso8601_date_time = OpenEhr::AssumedLibraryTypes::ISO8601_DATE_TIME.new('2009-04-27T15:55:37.32+0900')}
12 assert_nothing_raised(Exception){@iso8601_duration = OpenEhr::AssumedLibraryTypes::ISO8601_DURATION.new('P1Y2M3W4DT5H6M7.8S')}
13 assert_nothing_raised(Exception){@iso8601_timezone = OpenEhr::AssumedLibraryTypes::ISO8601_TIMEZONE.new}
14 end
15
16 def test_initialize
17 assert_instance_of OpenEhr::AssumedLibraryTypes::Interval, @interval
18 assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DATE, @iso8601_date
19 assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_TIME, @iso8601_time
20 assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DATE_TIME, @iso8601_date_time
21 assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DURATION, @iso8601_duration
22 assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_TIMEZONE, @iso8601_timezone
23 end
24
25 def test_limits_comparable
26 assert @interval.lower < @interval.upper
27 assert_nothing_raised(Exception){@interval.lower=1.0}
28 assert_nothing_raised(Exception){@interval.upper=2.0}
29 assert @interval.lower < @interval.upper
30 end
31
32 def test_limits_consistent
33 assert @interval.has?(1.5)
34 assert !@interval.has?(3.0)
35 assert !@interval.has?(0.5)
36 assert_nothing_raised(Exception){@interval.lower_included=true}
37 assert @interval.has?(1.0)
38 assert_nothing_raised(Exception){@interval.lower_included=false}
39 assert !@interval.has?(1.0)
40 assert_nothing_raised(Exception){@interval.upper_included=true}
41 assert @interval.has?(2.0)
42 assert_nothing_raised(Exception){@interval.upper_included=false}
43 assert !@interval.has?(2.0)
44 end
45
46 def test_lower_included_valid
47 assert_nothing_raised(Exception){@interval.lower=nil}
48 assert @interval.lower_unbounded?
49 assert !@interval.lower_included?
50 assert_nothing_raised(Exception){@interval.lower=1.0}
51 end
52
53 def test_upper_included_valid
54 assert_nothing_raised(Exception){@interval.upper=nil}
55 assert @interval.upper_unbounded?
56 assert !@interval.upper_included?
57 end
58
59 def test_time_definitions
60 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_LEAP_YEAR, 366
61 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_WEEK, 7
62 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_YEAR, 365
63 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::HOURS_IN_DAY, 24
64 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MAX_DAYS_IN_MONTH, 31
65 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MAX_DAYS_IN_YEAR, 366
66 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MINUTES_IN_HOUR, 60
67 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MONTH_IN_YEAR, 12
68 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::NOMINAL_DAYS_IN_MONTH, 30.42
69 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::NOMINAL_DAYS_IN_YEAR, 365.24
70 assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::SECONDS_IN_MINUTE, 60
71 end
72
73 def test_time_definition_validity
74 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(2008)
75 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(-20)
76 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(0)
77# today
78 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,19)
79# test valid_day lower limit
80 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,0,0)
81 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,1,1)
82 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(-1,1,1)
83 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,1,0)
84# test valid_day upper and lowerlimit of each month
85 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,0,1)
86 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,1)
87 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,0)
88 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,0,1)
89 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,31)
90 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,32)
91 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,1)
92 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,0)
93 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,31)
94 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,1)
95 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,0)
96 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,31)
97 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,32)
98 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,1)
99 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,0)
100 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,30)
101 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,31)
102 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,1)
103 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,0)
104 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,31)
105 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,32)
106 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,1)
107 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,0)
108 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,30)
109 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,31)
110 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,1)
111 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,0)
112 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,31)
113 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,32)
114 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,1)
115 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,0)
116 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,31)
117 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,32)
118 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,1)
119 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,0)
120 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,30)
121 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,31)
122 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,1)
123 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,0)
124 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,31)
125 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,32)
126 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,1)
127 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,0)
128 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,30)
129 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,31)
130 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,1)
131 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,0)
132 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,31)
133 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,32)
134# test valid_day leap year
135 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(1900,2,28)
136 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(1900,2,29)
137 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2000,2,29)
138 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,29)
139# test valid_hour lower limit
140 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,0)
141 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(-1,0,0)
142 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,-1,0)
143 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,-1)
144# test valid_hour upper limit
145 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,59,0)
146 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,60,0)
147 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,59)
148 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,60)
149 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,0,0)
150 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,0,1)
151 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,1,0)
152# test valid_minute method lower limit
153 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(0)
154 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(-1)
155# test valid_minute method upper limit
156 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(59)
157 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(60)
158# test valid_second method lower limit
159 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(0)
160 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(-1)
161# test valid_second method upper limit
162 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(59)
163 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(60)
164# test valid_month method lower limit
165 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(1)
166 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(0)
167# test valid_month method upper limit
168 assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(12)
169 assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(13)
170 end
171 def test_iso8601_date
172 assert_equal 2009, @iso8601_date.year
173 assert_equal 4,@iso8601_date.month
174 assert_equal 27,@iso8601_date.day
175 assert_nothing_raised(Exception){@iso8601_date = OpenEhr::AssumedLibraryTypes::ISO8601_DATE.new('2008')}
176 assert @iso8601_date.day_unknown?
177 assert @iso8601_date.month_unknown?
178 assert @iso8601_date.is_partial?
179 assert @iso8601_date.is_extended?
180 assert_nothing_raised(Exception){@iso8601_date.year = 2008}
181 assert_raise(ArgumentError){@iso8601_date.year = -1}
182 assert_equal "2008", @iso8601_date.as_string
183 assert_nothing_raised(Exception){@iso8601_date.month = 6}
184 assert_equal 6, @iso8601_date.month
185 assert_raise(ArgumentError){@iso8601_date.month = 13}
186 assert_raise(ArgumentError){@iso8601_date.month = 0}
187 assert !@iso8601_date.month_unknown?
188 assert_equal "2008-06", @iso8601_date.as_string
189 assert_nothing_raised(Exception){@iso8601_date.day = 14}
190 assert_equal 14, @iso8601_date.day
191 assert_raise(ArgumentError){@iso8601_date.day = 0}
192 assert_raise(ArgumentError){@iso8601_date.day = 31}
193 assert !@iso8601_date.day_unknown?
194 assert !@iso8601_date.is_partial?
195 assert_equal "2008-06-14", @iso8601_date.as_string
196 assert OpenEhr::AssumedLibraryTypes::ISO8601_DATE.valid_iso8601_date?("2006-06-14")
197 assert !OpenEhr::AssumedLibraryTypes::ISO8601_DATE.valid_iso8601_date?("ABCDEFG")
198 end
199
200 def test_iso8601_time
201 assert_equal 15, @iso8601_time.hour
202 assert_equal 55, @iso8601_time.minute
203 assert_equal 37, @iso8601_time.second
204 assert_equal 0.32, @iso8601_time.fractional_second
205 assert_equal '+0900', @iso8601_time.timezone
206
207# assert_nothing_raised(Exception){@iso8601_time = OpenEHR::Assumed_Library_Types::ISO8601_TIME.new('15:55:37.32+0900')}
208
209 assert_nothing_raised(Exception){@iso8601_time = OpenEhr::AssumedLibraryTypes::ISO8601_TIME.new('01')}
210 assert_equal 1, @iso8601_time.hour
211 assert @iso8601_time.is_partial?
212 assert_equal "01", @iso8601_time.as_string
213 assert_raise(ArgumentError){@iso8601_time.hour = -1}
214 assert_raise(ArgumentError){@iso8601_time.hour = 24}
215 assert_nothing_raised(Exception){@iso8601_time.hour = 0}
216 assert_equal 0, @iso8601_time.hour
217 assert_equal "00", @iso8601_time.as_string
218 assert_nothing_raised(Exception){@iso8601_time.hour = 23}
219 assert_equal 23, @iso8601_time.hour
220 assert_equal "23", @iso8601_time.as_string
221 assert @iso8601_time.minute_unknown?
222 assert @iso8601_time.second_unknown?
223 assert !@iso8601_time.has_fractional_second?
224 assert_raise(ArgumentError){@iso8601_time.fractional_second = 0.012}
225 assert_raise(ArgumentError){@iso8601_time.second = 10}
226 assert_raise(ArgumentError){@iso8601_time.minute = -1}
227 assert_raise(ArgumentError){@iso8601_time.minute = 60}
228 assert_nothing_raised(Exception){@iso8601_time.minute = 0}
229 assert_equal 0, @iso8601_time.minute
230 assert_equal "23:00", @iso8601_time.as_string
231 assert_nothing_raised(Exception){@iso8601_time.minute = 59}
232 assert_equal 59, @iso8601_time.minute
233 assert_equal "23:59", @iso8601_time.as_string
234 assert !@iso8601_time.minute_unknown?
235 assert @iso8601_time.second_unknown?
236 assert @iso8601_time.is_partial?
237 assert_raise(ArgumentError){@iso8601_time.fractional_second = 0.012}
238 assert_raise(ArgumentError){@iso8601_time.second = -1}
239 assert_raise(ArgumentError){@iso8601_time.second = 60}
240 assert_nothing_raised(Exception){@iso8601_time.second = 0}
241 assert !@iso8601_time.second_unknown?
242 assert_equal 0, @iso8601_time.second
243 assert_equal "23:59:00", @iso8601_time.as_string
244 assert_nothing_raised(Exception){@iso8601_time.second = 59}
245 assert_equal 59, @iso8601_time.second
246 assert_equal "23:59:59", @iso8601_time.as_string
247 assert !@iso8601_time.is_partial?
248 assert_raise(ArgumentError){@iso8601_time.fractional_second = 1.23}
249 assert_nothing_raised(Exception){@iso8601_time.fractional_second = 0.23}
250 assert @iso8601_time.has_fractional_second?
251 assert_equal 0.23, @iso8601_time.fractional_second
252 assert_equal "23:59:59.23", @iso8601_time.as_string
253 assert @iso8601_time.is_extended?
254 assert !@iso8601_time.is_decimal_sign_comma?
255 assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("012345Z")
256 assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("012345.67+0900")
257 assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
258 assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
259 assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000")
260 assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000Z")
261 assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000.011Z")
262 end
263
264 def test_iso_8601_date_time
265 assert_equal 2009, @iso8601_date_time.year
266 assert_equal 4, @iso8601_date_time.month
267 assert_equal 27, @iso8601_date_time.day
268 assert_equal 15, @iso8601_date_time.hour
269 assert_equal 55, @iso8601_date_time.minute
270 assert_equal 37, @iso8601_date_time.second
271 assert_equal 0.32, @iso8601_date_time.fractional_second
272 assert_equal '+0900', @iso8601_date_time.timezone
273 assert_equal '2009-04-27T15:55:37.32+0900', @iso8601_date_time.as_string
274 assert_nothing_raised(Exception){
275 @iso8601_date_time.year = 2008 }
276 assert_equal 2008, @iso8601_date_time.year
277 end
278
279 def test_iso8601_timezone
280 @iso8601_timezone.sign = "+1"
281 @iso8601_timezone.hour = 0
282 @iso8601_timezone.minute = 0
283 assert @iso8601_timezone.is_gmt?
284 assert_equal "Z+0000", @iso8601_timezone.as_string
285 @iso8601_timezone.hour = 9
286 assert_equal "Z+0900", @iso8601_timezone.as_string
287 assert !@iso8601_timezone.is_gmt?
288 @iso8601_timezone.sign = "-1"
289 @iso8601_timezone.hour = 4
290 @iso8601_timezone.minute = 30
291 assert_equal "Z-0430", @iso8601_timezone.as_string
292 end
293
294 def test_iso8601_duration
295 assert_equal 1, @iso8601_duration.years
296 assert_equal 2, @iso8601_duration.months
297 assert_equal 3, @iso8601_duration.weeks
298 assert_equal 4, @iso8601_duration.days
299 assert_equal 5, @iso8601_duration.hours
300 assert_equal 6, @iso8601_duration.minutes
301 assert_equal 7, @iso8601_duration.seconds
302 assert_equal 0.8, @iso8601_duration.fractional_second
303 assert_equal 'P1Y2M3W4DT5H6M7.8S', @iso8601_duration.as_string
304 assert_raise(ArgumentError){@iso8601_duration.years = -1}
305 assert_nothing_raised(Exception){@iso8601_duration.years = nil}
306 assert_nil @iso8601_duration.years
307 assert_equal 'P2M3W4DT5H6M7.8S', @iso8601_duration.as_string
308 assert_nothing_raised(Exception){@iso8601_duration.years = 2}
309 assert_equal 2, @iso8601_duration.years
310 assert_nothing_raised(Exception){@iso8601_duration.months = nil}
311 assert_nil @iso8601_duration.months
312 assert_equal 'P2Y3W4DT5H6M7.8S', @iso8601_duration.as_string
313 assert_raise(ArgumentError){@iso8601_duration.months = -1}
314 assert_nothing_raised(Exception){@iso8601_duration.months = 3}
315 assert_equal 3, @iso8601_duration.months
316 assert_nothing_raised(Exception){@iso8601_duration.weeks = nil}
317 assert_nil @iso8601_duration.weeks
318 assert_equal 'P2Y3M4DT5H6M7.8S', @iso8601_duration.as_string
319 assert_raise(ArgumentError){@iso8601_duration.weeks = -1}
320 assert_nothing_raised(Exception){@iso8601_duration.weeks = 1}
321 assert_equal 'P2Y3M1W4DT5H6M7.8S', @iso8601_duration.as_string
322 assert_raise(ArgumentError){@iso8601_duration.days = -1}
323 assert_nothing_raised(Exception){@iso8601_duration.days = nil}
324 assert_nil @iso8601_duration.days
325 assert_equal 'P2Y3M1WT5H6M7.8S', @iso8601_duration.as_string
326 assert_nothing_raised(Exception){@iso8601_duration.hours = nil}
327 assert_nil @iso8601_duration.hours
328 assert_equal 'P2Y3M1W', @iso8601_duration.as_string
329 assert_raise(ArgumentError){@iso8601_duration.hours = -1}
330 assert_nothing_raised(Exception){@iso8601_duration.hours = 5}
331 assert_equal 5, @iso8601_duration.hours
332 assert_equal 'P2Y3M1WT5H6M7.8S', @iso8601_duration.as_string
333 assert_raise(ArgumentError){@iso8601_duration.minutes = -1}
334 assert_nothing_raised(Exception){@iso8601_duration.minutes = nil}
335 assert_nil @iso8601_duration.minutes
336 assert_equal 'P2Y3M1WT5H', @iso8601_duration.as_string
337 assert_nothing_raised(Exception){@iso8601_duration.minutes = 0}
338 assert_equal 0, @iso8601_duration.minutes
339 assert_equal 'P2Y3M1WT5H0M7.8S', @iso8601_duration.as_string
340 assert_raise(ArgumentError){@iso8601_duration.seconds = -1}
341 assert_nothing_raised(Exception){@iso8601_duration.seconds = nil}
342 assert_nil @iso8601_duration.seconds
343 assert_equal 'P2Y3M1WT5H0M', @iso8601_duration.as_string
344 assert_nothing_raised(Exception){@iso8601_duration.seconds = 10}
345 assert_equal 10, @iso8601_duration.seconds
346 assert_equal 'P2Y3M1WT5H0M10.8S', @iso8601_duration.as_string
347 assert_raise(ArgumentError){@iso8601_duration.fractional_second = 1.0}
348 assert_raise(ArgumentError){@iso8601_duration.fractional_second = -0.1}
349 assert_nothing_raised(Exception){@iso8601_duration.fractional_second = nil}
350 assert_nil @iso8601_duration.fractional_second
351 assert_equal 'P2Y3M1WT5H0M10S', @iso8601_duration.as_string
352 assert_nothing_raised(Exception){@iso8601_duration.fractional_second = 0.2}
353 assert_equal 0.2, @iso8601_duration.fractional_second
354 assert_equal 'P2Y3M1WT5H0M10.2S', @iso8601_duration.as_string
355 end
356end
Note: See TracBrowser for help on using the repository browser.