[342] | 1 | require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
---|
| 2 | include OpenEHR::RM::DataStructures::History
|
---|
| 3 | include OpenEHR::RM::DataStructures::ItemStructure
|
---|
| 4 | include OpenEHR::RM::DataTypes::Text
|
---|
| 5 | include OpenEHR::RM::DataTypes::Quantity::DateTime
|
---|
[343] | 6 |
|
---|
[342] | 7 | describe History do
|
---|
| 8 | before(:each) do
|
---|
| 9 | origin = DvDateTime.new(:value => '2009-11-01T00:00:00')
|
---|
| 10 | period = DvDuration.new(:value => 'P1Y2M3W4D')
|
---|
| 11 | duration = DvDuration.new(:value => 'P0Y0M0W6D')
|
---|
| 12 | events = [stub(Event, :archetype_node_id => 'at0002')]
|
---|
| 13 | summary = stub(ItemStructure, :archetype_node_id => 'at0003')
|
---|
| 14 | @history = History.new(:archetype_node_id => 'at0001',
|
---|
| 15 | :name => DvText.new(:value => 'history test'),
|
---|
| 16 | :origin => origin,
|
---|
| 17 | :period => period,
|
---|
| 18 | :duration => duration,
|
---|
| 19 | :events => events,
|
---|
| 20 | :summary => summary)
|
---|
| 21 | end
|
---|
| 22 |
|
---|
| 23 | it 'should be an instance of History' do
|
---|
| 24 | @history.should be_an_instance_of History
|
---|
| 25 | end
|
---|
| 26 |
|
---|
| 27 | it 'origin should be properly assigned' do
|
---|
| 28 | @history.origin.value.should == '2009-11-01T00:00:00'
|
---|
| 29 | end
|
---|
| 30 |
|
---|
| 31 | it 'should raise ArgumentError with nil origin' do
|
---|
| 32 | lambda {
|
---|
| 33 | @history.origin = nil
|
---|
| 34 | }.should raise_error ArgumentError
|
---|
| 35 | end
|
---|
| 36 |
|
---|
| 37 | it 'period should be properly assigned' do
|
---|
| 38 | @history.period.value.should == 'P1Y2M3W4D'
|
---|
| 39 | end
|
---|
| 40 |
|
---|
| 41 | it 'duration should be properly assigned' do
|
---|
| 42 | @history.duration.value.should == 'P0Y0M0W6D'
|
---|
| 43 | end
|
---|
| 44 |
|
---|
| 45 | it 'is_periodic? should be true when period is not nil' do
|
---|
| 46 | @history.is_periodic?.should be_true
|
---|
| 47 | end
|
---|
| 48 |
|
---|
| 49 | it 'is_periodic? should be false when period is nil' do
|
---|
| 50 | @history.period = nil
|
---|
| 51 | @history.is_periodic?.should be_false
|
---|
| 52 | end
|
---|
| 53 |
|
---|
| 54 | it 'events should be properly assigned' do
|
---|
| 55 | @history.events[0].archetype_node_id.should == 'at0002'
|
---|
| 56 | end
|
---|
| 57 |
|
---|
| 58 | it 'empty events should raise ArgumentError' do
|
---|
| 59 | lambda {
|
---|
| 60 | @history.events = []
|
---|
| 61 | }.should raise_error ArgumentError
|
---|
| 62 | end
|
---|
| 63 |
|
---|
| 64 | it 'summary should be properly assigned' do
|
---|
| 65 | @history.summary.archetype_node_id.should == 'at0003'
|
---|
| 66 | end
|
---|
| 67 | end
|
---|