source: ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb@ 400

Last change on this file since 400 was 400, checked in by KOBAYASHI, Shinji, 14 years ago

refs #71

File size: 2.8 KB
Line 
1require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2include OpenEHR::AssumedLibraryTypes
3include OpenEHR::AM::Archetype
4include OpenEHR::AM::Archetype::ConstraintModel::Primitive
5
6describe CTime do
7 before(:each) do
8 default_value = ISO8601Time.new('01:23:45')
9 assumed_value = ISO8601Time.new('22:02:33')
10 range = Interval.new(:lower => ISO8601Time.new('01:01:22'),
11 :upper => ISO8601Time.new('23:55:59'))
12 @c_time = CTime.new(:default_value => default_value,
13 :assumed_value => assumed_value,
14 :range => range,
15 :minute_validity => ValidityKind::MANDATORY,
16 :second_validity => ValidityKind::OPTIONAL,
17 :millisecond_validity => ValidityKind::DISALLOWED)
18 end
19
20 it 'should be an instance of CTime' do
21 @c_time.should be_an_instance_of CTime
22 end
23
24 it 'minute_validity should be assigned' do
25 @c_time.minute_validity.should be_equal ValidityKind::MANDATORY
26 end
27
28 it 'seconds_validity should be assigned properly' do
29 @c_time.second_validity.should be_equal ValidityKind::OPTIONAL
30 end
31
32 it 'millisecond_validity should be assigned properly' do
33 @c_time.millisecond_validity.should be_equal ValidityKind::DISALLOWED
34 end
35
36 it 'should be true if range is not nil' do
37 @c_time.should be_validity_is_range
38 end
39
40 it 'second_validity should not be MANDATORY if minute_validity is optional' do
41 @c_time.second_validity = ValidityKind::MANDATORY
42 lambda {
43 @c_time.minute_validity = ValidityKind::OPTIONAL
44 }.should raise_error ArgumentError
45 end
46
47 it 'second_validity should be DISALLOWED if minute_validity is DISALLOWED' do
48 lambda {
49 @c_time.minute_validity = ValidityKind::DISALLOWED
50 }.should raise_error ArgumentError
51 end
52
53 it 'should not raise ArgumentError if minute_validity and second_validity are DISALLOWED' do
54 @c_time.second_validity = ValidityKind::DISALLOWED
55 lambda {
56 @c_time.minute_validity = ValidityKind::DISALLOWED
57 }.should_not raise_error ArgumentError
58 end
59
60 it 'millisecond_validity should not be MANDATORY if second_validity is optional' do
61 @c_time.millisecond_validity = ValidityKind::MANDATORY
62 lambda {
63 @c_time.second_validity = ValidityKind::OPTIONAL
64 }.should raise_error ArgumentError
65 end
66
67 it 'millisecond_validity should be DISALLOWED if second_validity is DISALLOWED' do
68 lambda {
69 @c_time.second_validity = ValidityKind::DISALLOWED
70 }.should_not raise_error ArgumentError
71 end
72
73 it 'should raise ArgumentError if second_validity is DISALLOWED and millisecond_validity is OPTIONAL' do
74 @c_time.millisecond_validity = ValidityKind::OPTIONAL
75 lambda {
76 @c_time.second_validity = ValidityKind::DISALLOWED
77 }.should raise_error ArgumentError
78 end
79end
Note: See TracBrowser for help on using the repository browser.