source: ruby/branches/0.5/test/unit/open_ehr/rm/common/archetyped_test.rb@ 191

Last change on this file since 191 was 191, checked in by KOBAYASHI, Shinji, 15 years ago

test cases rearrangement

File size: 7.2 KB
Line 
1require 'test/unit'
2require 'set'
3
4#include OpenEhr::RM::Common::Archetyped
5class 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
139end
Note: See TracBrowser for help on using the repository browser.