1 | require File.dirname(__FILE__) + '/../../../../test_helper'
|
---|
2 | require 'test/unit'
|
---|
3 | require 'set'
|
---|
4 |
|
---|
5 | #include OpenEhr::RM::Common::Archetyped
|
---|
6 | class RM_Common_Archetyped_Test < Test::Unit::TestCase
|
---|
7 | def setup
|
---|
8 | @dv_text = OpenEhr::RM::DataTypes::Text::DvText.new('Test')
|
---|
9 | @uid_based_id = OpenEhr::RM::Support::Identification::UidBasedId.new('rrip::0.0.5')
|
---|
10 | @archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")
|
---|
11 | @template_id = OpenEhr::RM::Support::Identification::TemplateId.new('1.0.1')
|
---|
12 | assert_nothing_raised(Exception){@archetyped = OpenEhr::RM::Common::Archetyped::Archetyped.new(@archetype_id, '1.0.1')}
|
---|
13 | assert_nothing_raised(Exception){@link = OpenEhr::RM::Common::Archetyped::Link.new(OpenEhr::RM::DataTypes::Text::DvText.new("generic"), OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://test/"),OpenEhr::RM::DataTypes::Text::DvText.new("problem"))}
|
---|
14 | assert_nothing_raised(Exception){
|
---|
15 | @pathable = OpenEhr::RM::Common::Archetyped::Pathable.new }
|
---|
16 | name = OpenEhr::RM::DataTypes::Text::DvText.new('blood')
|
---|
17 | links = Set.new([@uid_based_id])
|
---|
18 | assert_nothing_raised(Exception){
|
---|
19 | @locatable = OpenEhr::RM::Common::Archetyped::Locatable.new(:archetype_node_id => 'at0001',
|
---|
20 | :name => name,
|
---|
21 | :links => links)}
|
---|
22 | provider = OpenEhr::RM::Common::Generic::PartyIdentified.new(:name => 'NERV')
|
---|
23 | location = OpenEhr::RM::Common::Generic::PartyIdentified.new(:name => 'GEOFRONT')
|
---|
24 | object_version_id = OpenEhr::RM::Support::Identification::ObjectVersionId.new('ABC::DEF::1.3.4')
|
---|
25 | party_ref = OpenEhr::RM::Support::Identification::PartyRef.new('local', 'ORGANISATION', object_id)
|
---|
26 | assert_nothing_raised(Exception){
|
---|
27 | @feeder_audit_details = OpenEhr::RM::Common::Archetyped::FeederAuditDetails.new(:system_id => 'MAGI',
|
---|
28 | :provider => provider,
|
---|
29 | :location => location,
|
---|
30 | :time => OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-03T12:16:31'),
|
---|
31 | :subject => OpenEhr::RM::Common::Generic::PartyProxy.new(:external_ref => party_ref),
|
---|
32 | :version_id => '0.0.4')}
|
---|
33 | feeder_audit_details = OpenEhr::RM::Common::Archetyped::FeederAuditDetails.new(:system_id => 'AKAGI')
|
---|
34 | dv_identifier = DvIdentifier.new('NERV', 'MELCHIOR', 'RITSUKO', 'COMPUTER')
|
---|
35 | feeder_audit_details2 = OpenEhr::RM::Common::Archetyped::FeederAuditDetails.new(:system_id => 'KATSURAGI')
|
---|
36 | dv_identifier2 = DvIdentifier.new('NERV', 'SHOGOUKI', 'MISATO', 'EVANGELION')
|
---|
37 | charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('UTF-8','character-sets')
|
---|
38 | language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('ja', 'languages')
|
---|
39 |
|
---|
40 | dv_encapsulated = OpenEhr::RM::DataTypes::Encapsulated::DvEncapsulated.new(charset, language, 10)
|
---|
41 | assert_nothing_raised(Exception){
|
---|
42 | @feeder_audit = OpenEhr::RM::Common::Archetyped::FeederAudit.new(:originating_system_audit => feeder_audit_details,
|
---|
43 | :originating_system_item_ids => [dv_identifier],
|
---|
44 | :feeder_system_audit => feeder_audit_details2,
|
---|
45 | :feeder_system_item_ids => [dv_identifier2],
|
---|
46 | :original_content => dv_encapsulated)}
|
---|
47 | end
|
---|
48 |
|
---|
49 | def test_init
|
---|
50 | assert_instance_of OpenEhr::RM::Common::Archetyped::Archetyped, @archetyped
|
---|
51 | assert_instance_of OpenEhr::RM::Common::Archetyped::Link, @link
|
---|
52 | assert_instance_of OpenEhr::RM::Common::Archetyped::Pathable, @pathable
|
---|
53 | assert_instance_of OpenEhr::RM::Common::Archetyped::Locatable, @locatable
|
---|
54 | assert_instance_of OpenEhr::RM::Common::Archetyped::FeederAuditDetails, @feeder_audit_details
|
---|
55 | assert_instance_of OpenEhr::RM::Common::Archetyped::FeederAudit, @feeder_audit
|
---|
56 | end
|
---|
57 |
|
---|
58 | def test_archetyped
|
---|
59 | assert_equal @archetype_id, @archetyped.archetype_id
|
---|
60 | assert_equal '1.0.1', @archetyped.rm_version
|
---|
61 | assert_raise(ArgumentError){@archetyped.archetype_id = nil}
|
---|
62 | assert_raise(ArgumentError){@archetyped.rm_version = nil}
|
---|
63 | assert_raise(ArgumentError){@archetyped.rm_version = ''}
|
---|
64 | assert_nothing_raised(Exception){@archetyped.template_id = @template_id}
|
---|
65 | assert_equal @template_id, @archetyped.template_id
|
---|
66 | archetype_id2 = OpenEhr::RM::Support::Identification::ArchetypeId.new("1.0.2", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")
|
---|
67 | assert_nothing_raised(ArgumentError){@archetyped.archetype_id = archetype_id2}
|
---|
68 | assert_equal archetype_id2, @archetyped.archetype_id
|
---|
69 | assert_nothing_raised(ArgumentError){@archetyped.rm_version = '1.0.2'}
|
---|
70 | assert_equal '1.0.2', @archetyped.rm_version
|
---|
71 | end
|
---|
72 |
|
---|
73 | def test_pathable_parent
|
---|
74 | assert_nil @pathable.parent
|
---|
75 | end
|
---|
76 |
|
---|
77 | def test_locatable_archetype_node_id
|
---|
78 | assert_equal 'at0001', @locatable.archetype_node_id
|
---|
79 | end
|
---|
80 |
|
---|
81 | def test_locatable_name
|
---|
82 | assert_equal 'blood', @locatable.name.value
|
---|
83 | end
|
---|
84 |
|
---|
85 | def test_locatable_link
|
---|
86 | assert_equal 'rrip::0.0.5', @locatable.links.to_a[0].value
|
---|
87 | end
|
---|
88 |
|
---|
89 | def test_locatable_name_valid
|
---|
90 | assert_raise(ArgumentError){@locatable.name = nil }
|
---|
91 | end
|
---|
92 |
|
---|
93 | def test_locatable_link_valid
|
---|
94 | assert_raise(ArgumentError){@locatable.links = Set[]}
|
---|
95 | end
|
---|
96 |
|
---|
97 | def test_locatable_archetype_id_not_nil
|
---|
98 | assert_raise(ArgumentError){@locatable.archetype_node_id = nil}
|
---|
99 | end
|
---|
100 |
|
---|
101 | def test_locatable_archetype_id_not_empty
|
---|
102 | assert_raise(ArgumentError){@locatable.archetype_node_id = ''}
|
---|
103 | end
|
---|
104 |
|
---|
105 | def test_link
|
---|
106 | # test constructor
|
---|
107 | assert_equal 'generic', @link.meaning.value
|
---|
108 | assert_equal 'ehr://test/', @link.target.value
|
---|
109 | assert_equal 'problem', @link.type.value
|
---|
110 | # test meaning
|
---|
111 | assert_nothing_raised(Exception){@link.meaning = OpenEhr::RM::DataTypes::Text::DvText.new('clinical')}
|
---|
112 | assert_equal 'clinical', @link.meaning.value
|
---|
113 | assert_raise(ArgumentError){@link.meaning = nil}
|
---|
114 | # test target
|
---|
115 | assert_nothing_raised(Exception){@link.target = OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://try/")}
|
---|
116 | assert_equal 'ehr://try/', @link.target.value
|
---|
117 | assert_raise(ArgumentError){@link.target = nil}
|
---|
118 | # test type
|
---|
119 | assert_nothing_raised(Exception){@link.type = OpenEhr::RM::DataTypes::Text::DvText.new("issue")}
|
---|
120 | assert_equal 'issue', @link.type.value
|
---|
121 | assert_raise(ArgumentError){@link.type = nil}
|
---|
122 | end
|
---|
123 |
|
---|
124 | def test_feeder_audit
|
---|
125 | assert_equal 'AKAGI', @feeder_audit.originating_system_audit.system_id
|
---|
126 | assert_equal 'RITSUKO', @feeder_audit.originating_system_item_ids[0].issuer
|
---|
127 | assert_equal 'KATSURAGI', @feeder_audit.feeder_system_audit.system_id
|
---|
128 | assert_equal 'MISATO', @feeder_audit.feeder_system_item_ids[0].issuer
|
---|
129 | assert_equal 'UTF-8', @feeder_audit.original_content.charset.code_string
|
---|
130 | end
|
---|
131 |
|
---|
132 | def test_feeder_audit_detail
|
---|
133 | assert_equal 'MAGI', @feeder_audit_details.system_id
|
---|
134 | assert_equal 'NERV', @feeder_audit_details.provider.name
|
---|
135 | assert_equal 'GEOFRONT', @feeder_audit_details.location.name
|
---|
136 | assert_equal 2009, @feeder_audit_details.time.year
|
---|
137 | assert_equal 'local', @feeder_audit_details.subject.external_ref.namespace
|
---|
138 | assert_equal '0.0.4', @feeder_audit_details.version_id
|
---|
139 | end
|
---|
140 | end
|
---|