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

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

fixed #36

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