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

Last change on this file since 399 was 399, 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
6
7describe CTime do
8 before(:each) do
9 default_value = ISO8601Time.new('01:23:45')
10 assumed_value = ISO8601Time.new('22:02:33')
11 range = Interval.new(:lower => ISO8601Time.new('01:01:22'),
12 :upper => ISO8601Time.new('23:55:59'))
13 @c_time = CTime.new(:default_value => default_value,
14 :assumed_value => assumed_value,
15 :range => range,
16 :minute_validity => ValidityKind::MANDATORY,
17 :second_validity => ValidityKind::OPTIONAL,
18 :millisecond_validity => ValidityKind::DISALLOWED)
19 end
20
21 it 'should be an instance of CTime' do
22 @c_time.should be_an_instance_of CTime
23 end
24
25 it 'minute_validity should be assigned' do
26 @c_time.minute_validity.should be_equal ValidityKind::MANDATORY
27 end
28
29 it 'seconds_validity should be assigned properly' do
30 @c_time.second_validity.should be_equal ValidityKind::OPTIONAL
31 end
32
33 it 'millisecond_validity should be assigned properly' do
34 @c_time.millisecond_validity.should be_equal ValidityKind::DISALLOWED
35 end
36
37 it 'should be true if range is not nil' do
38 @c_time.should be_validity_is_range
39 end
40
41 it 'second_validity should not be MANDATORY if minute_validity is optional' do
42 @c_time.second_validity = ValidityKind::MANDATORY
43 lambda {
44 @c_time.minute_validity = ValidityKind::OPTIONAL
45 }.should raise_error ArgumentError
46 end
47
48 it 'second_validity should be DISALLOWED if minute_validity is DISALLOWED' do
49 lambda {
50 @c_time.minute_validity = ValidityKind::DISALLOWED
51 }.should raise_error ArgumentError
52 end
53
54 it 'should not raise ArgumentError if minute_validity and second_validity are DISALLOWED' do
55 @c_time.second_validity = ValidityKind::DISALLOWED
56 lambda {
57 @c_time.minute_validity = ValidityKind::DISALLOWED
58 }.should_not raise_error ArgumentError
59 end
60
61 it 'millisecond_validity should not be MANDATORY if second_validity is optional' do
62 @c_time.millisecond_validity = ValidityKind::MANDATORY
63 lambda {
64 @c_time.second_validity = ValidityKind::OPTIONAL
65 }.should raise_error ArgumentError
66 end
67
68 it 'millisecond_validity should be DISALLOWED if second_validity is DISALLOWED' do
69 lambda {
70 @c_time.second_validity = ValidityKind::DISALLOWED
71 }.should_not raise_error ArgumentError
72 end
73
74 it 'should raise ArgumentError if second_validity is DISALLOWED and millisecond_validity is OPTIONAL' do
75 @c_time.millisecond_validity = ValidityKind::OPTIONAL
76 lambda {
77 @c_time.second_validity = ValidityKind::DISALLOWED
78 }.should raise_error ArgumentError
79 end
80end
Note: See TracBrowser for help on using the repository browser.