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