source: ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_spec.rb@ 397

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

refs #71

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