source: ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_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::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 range = Interval.new(:lower => ISO8601Date.new('2001-01-01'),
11 :upper => ISO8601Date.new('2010-12-31'))
12 @c_date = CDate.new(:default_value => default_value,
13 :assumed_value => assumed_value,
14 :range => range,
15 :month_validity => ValidityKind::MANDATORY,
16 :day_validity => ValidityKind::OPTIONAL,
17 :timezone_validity => ValidityKind::DISALLOWED)
18 end
19
20 it 'should be an instance of CDate' do
21 @c_date.should be_an_instance_of CDate
22 end
23
24 it 'range should be assigned properly' do
25 @c_date.range.upper.month.should be_equal 12
26 end
27
28 it 'month_validity should be assigned properly by constructor' do
29 @c_date.month_validity.should be_equal ValidityKind::MANDATORY
30 end
31
32 it 'validity_is_range should be true if range is assigned' do
33 @c_date.should be_validity_is_range
34 end
35
36 it 'validity_is_range should not be true if range is nil' do
37 @c_date.range = nil
38 @c_date.should_not be_validity_is_range
39 end
40
41 it 'day_validity should be assigned properly by constructor' do
42 @c_date.day_validity.should be_equal ValidityKind::OPTIONAL
43 end
44
45 it 'timezone should be assigned properly' do
46 @c_date.timezone_validity.should be_equal ValidityKind::DISALLOWED
47 end
48
49 describe 'method' do
50 it 'month_validity should be assigned by method properly' do
51 @c_date.month_validity = ValidityKind::OPTIONAL
52 @c_date.month_validity.should be_equal ValidityKind::OPTIONAL
53 end
54
55 it 'day_validity should be assigned by method properly' do
56 @c_date.day_validity = ValidityKind::MANDATORY
57 @c_date.day_validity.should be_equal ValidityKind::MANDATORY
58 end
59
60 it 'should raise ArgumentError if month_validity is optional and day validity is mandatory' do
61 @c_date.day_validity = ValidityKind::MANDATORY
62 lambda {
63 @c_date.month_validity = ValidityKind::OPTIONAL
64 }.should raise_error ArgumentError
65 end
66
67 it 'should raise ArgumentError if month_validity is disallowed and day_validity is mandatory' do
68 @c_date.day_validity = ValidityKind::MANDATORY
69 lambda {
70 @c_date.month_validity = ValidityKind::DISALLOWED
71 }.should raise_error ArgumentError
72 end
73
74 it 'should raise ArgumentError if month_validity is disallowed and day_validity is optional' do
75 lambda {
76 @c_date.month_validity = ValidityKind::DISALLOWED
77 }.should raise_error ArgumentError
78 end
79 end
80end
Note: See TracBrowser for help on using the repository browser.