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

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

test case rearrangement

File size: 7.3 KB
Line 
1require File.dirname(__FILE__) + '/../../../../test_helper'
2require 'test/unit'
3require 'set'
4
5#include OpenEhr::RM::Common::Archetyped
6class 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
140end
Note: See TracBrowser for help on using the repository browser.