[401] | 1 | require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
---|
| 2 | include OpenEHR::AssumedLibraryTypes
|
---|
| 3 | include OpenEHR::AM::Archetype
|
---|
| 4 | include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
---|
| 5 |
|
---|
| 6 | describe CDuration do
|
---|
| 7 | before(:each) do
|
---|
| 8 | assumed_value = stub(ISO8601Duration, :year => 2)
|
---|
| 9 | default_value = stub(ISO8601Duration, :month => 3)
|
---|
| 10 | range = stub(Interval, :upper => assumed_value, :lower => default_value)
|
---|
| 11 | @c_duration = CDuration.new(:assumed_value => assumed_value,
|
---|
| 12 | :default_value => default_value,
|
---|
| 13 | :range => range,
|
---|
| 14 | :years_allowed => true,
|
---|
| 15 | :months_allowed => false,
|
---|
| 16 | :weeks_allowed => true,
|
---|
| 17 | :days_allowed => false,
|
---|
| 18 | :hours_allowed => true,
|
---|
| 19 | :minutes_allowed => false,
|
---|
| 20 | :seconds_allowed => true,
|
---|
| 21 | :fractional_seconds_allowed => false)
|
---|
| 22 | end
|
---|
| 23 |
|
---|
| 24 | it 'should be an instance of CDuration' do
|
---|
| 25 | @c_duration.should be_an_instance_of CDuration
|
---|
| 26 | end
|
---|
| 27 |
|
---|
| 28 | it 'years_allowed should be assigned properly' do
|
---|
| 29 | @c_duration.years_allowed.should be_true
|
---|
| 30 | end
|
---|
| 31 |
|
---|
| 32 | it 'months_allowed should be assigned properly' do
|
---|
| 33 | @c_duration.months_allowed.should be_false
|
---|
| 34 | end
|
---|
| 35 |
|
---|
| 36 | it 'weeks_allowed should be assigned properly' do
|
---|
| 37 | @c_duration.weeks_allowed.should be_true
|
---|
| 38 | end
|
---|
| 39 |
|
---|
| 40 | it 'days_allowed should be assigned properly' do
|
---|
| 41 | @c_duration.days_allowed.should be_false
|
---|
| 42 | end
|
---|
| 43 |
|
---|
| 44 | it 'hours_allowed should be assigned properly' do
|
---|
| 45 | @c_duration.hours_allowed.should be_true
|
---|
| 46 | end
|
---|
| 47 |
|
---|
| 48 | it 'minutes_allowed should be assigned properly' do
|
---|
| 49 | @c_duration.minutes_allowed.should be_false
|
---|
| 50 | end
|
---|
| 51 |
|
---|
| 52 | it 'seconds_allowed should be assigned properly' do
|
---|
| 53 | @c_duration.seconds_allowed.should be_true
|
---|
| 54 | end
|
---|
| 55 |
|
---|
| 56 | it 'fractional_seconds_allowed should be assigned properly' do
|
---|
| 57 | @c_duration.fractional_seconds_allowed.should be_false
|
---|
| 58 | end
|
---|
| 59 |
|
---|
| 60 | it 'should raise ArgumentError if range is nil and all parameters are not allowed' do
|
---|
| 61 | @c_duration.years_allowed = false
|
---|
| 62 | @c_duration.weeks_allowed = false
|
---|
| 63 | @c_duration.hours_allowed = false
|
---|
| 64 | @c_duration.seconds_allowed = false
|
---|
| 65 | lambda {
|
---|
| 66 | @c_duration.range = nil
|
---|
| 67 | }.should raise_error ArgumentError
|
---|
| 68 | end
|
---|
| 69 | end
|
---|