source: ruby/branches/0.5/test/unit/open_ehr/rm/common/change_control_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: 12.0 KB
Line 
1require 'test/unit'
2require 'set'
3
4class RM_Common_Change_Control_Test < Test::Unit::TestCase
5 def setup
6 object_version_id1 = ObjectVersionId.new('ABC::DEF::2.2.3')
7 object_version_id2 = ObjectVersionId.new('GHI::JKL::4.5.6')
8 object_id = ObjectId.new('ehr://uniqueid1020')
9 dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-06T21:10:12')
10 party_ref = PartyRef.new('unknown', 'ORGANISATION', object_id)
11 party_proxy = OpenEhr::RM::Common::Generic::PartyProxy.new(:external_ref => party_ref)
12 terminology_id = TerminologyId.new('openehr(1.0.2)')
13 code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('249', terminology_id)
14 dv_coded_text = OpenEhr::RM::DataTypes::Text::DvCodedText.new('creation', code_phrase)
15 audit_details = OpenEhr::RM::Common::Generic::AuditDetails.new(:system_id => 'MAGI',
16 :committer => party_proxy,
17 :time_committed => dv_date_time,
18 :change_type => dv_coded_text)
19 code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('532', terminology_id)
20 dv_coded_text = OpenEhr::RM::DataTypes::Text::DvCodedText.new('complete', code_phrase)
21 object_id = ObjectId.new('ehr://test_location')
22 object_ref = ObjectRef.new('local', 'PARTY', object_id)
23 hier_object_id = HierObjectId.new('ABC')
24 assert_nothing_raised(Exception){
25 @version = OpenEhr::RM::Common::ChangeControl::Version.new(:uid => object_version_id1,
26 :preceding_version_uid => object_version_id2,
27 :lifecycle_state => dv_coded_text,
28 :commit_audit => audit_details,
29 :contribution => object_ref,
30 :signature => 'test_version',
31 :data => 'data')}
32 object_version_id3 = ObjectVersionId.new('MNO::PQR::7.8.9')
33 object_version_id4 = ObjectVersionId.new('STU::VWX::1.2.3')
34 code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('240', terminology_id)
35 dv_coded_text2 = OpenEhr::RM::DataTypes::Text::DvCodedText.new('signed', code_phrase)
36 attestation = OpenEhr::RM::Common::Generic::Attestation.new(:system_id => 'NERV',
37 :committer => party_proxy,
38 :time_committed => dv_date_time,
39 :change_type => dv_coded_text,
40 :reason => OpenEhr::RM::DataTypes::Text::DvText.new('signed'))
41 dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-07T21:10:12')
42 audit_details = OpenEhr::RM::Common::Generic::AuditDetails.new(:system_id => 'MAGI',
43 :committer => party_proxy,
44 :time_committed => dv_date_time,
45 :change_type => dv_coded_text)
46 assert_nothing_raised(Exception){
47 @original_version = OpenEhr::RM::Common::ChangeControl::OriginalVersion.new(:uid => object_version_id3,
48 :preceding_version_uid => object_version_id4,
49 :other_input_version_uids => Set[object_version_id1, object_version_id2],
50 :commit_audit => audit_details,
51 :contribution => object_ref,
52 :attestations => [attestation],
53 :data => 'data',
54 :lifecycle_state => dv_coded_text)}
55 dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-08T21:10:12')
56 audit_details = OpenEhr::RM::Common::Generic::AuditDetails.new(:system_id => 'CASPER',
57 :committer => party_proxy,
58 :time_committed => dv_date_time,
59 :change_type => dv_coded_text,
60 :description => 'for contribution')
61 object_ref = ObjectRef.new('unknown', 'PARTY', object_id)
62 assert_nothing_raised(Exception){
63 @imported_version = OpenEhr::RM::Common::ChangeControl::ImportedVersion.new(:item => @original_version,
64 :commit_audit => audit_details,
65 :contribution => object_ref,
66 :signature => 'import test')}
67 assert_nothing_raised(Exception){
68 @contribution = OpenEhr::RM::Common::ChangeControl::Contribution.new(:uid => hier_object_id,
69 :versions => Set[object_ref],
70 :audit => audit_details)}
71 dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-08T18:10:12')
72 audit_details = OpenEhr::RM::Common::Generic::AuditDetails.new(:system_id => 'MAGI',
73 :committer => party_proxy,
74 :time_committed => dv_date_time,
75 :change_type => dv_coded_text)
76 @trunk_version = OpenEhr::RM::Common::ChangeControl::Version.new(:uid => object_version_id4,
77 :lifecycle_state => dv_coded_text,
78 :commit_audit => audit_details,
79 :contribution => object_ref,
80 :change_type => dv_coded_text)
81 assert_nothing_raised(Exception){
82 @versioned_object = OpenEhr::RM::Common::ChangeControl::VersionedObject.new(:uid => hier_object_id,
83 :owner_id => object_ref,
84 :time_created => dv_date_time,
85 :all_versions => [@version,@original_version,@imported_version,@trunk_version])}
86 end
87
88 def test_init
89 assert_instance_of OpenEhr::RM::Common::ChangeControl::Version, @version
90 assert_instance_of OpenEhr::RM::Common::ChangeControl::OriginalVersion, @original_version
91 assert_instance_of OpenEhr::RM::Common::ChangeControl::ImportedVersion, @imported_version
92 assert_instance_of OpenEhr::RM::Common::ChangeControl::Contribution, @contribution
93 assert_instance_of OpenEhr::RM::Common::ChangeControl::VersionedObject, @versioned_object
94 end
95
96 def test_version
97 assert_equal 'ABC::DEF::2.2.3', @version.uid.value
98 assert !@version.uid.version_tree_id.is_first?
99 assert_equal 'GHI::JKL::4.5.6', @version.preceding_version_uid.value
100 assert_equal '532', @version.lifecycle_state.defining_code.code_string
101 assert_equal 'MAGI', @version.commit_audit.system_id
102 assert_equal 'local', @version.contribution.namespace
103 assert_equal 'test_version', @version.signature
104 assert_equal 'ABC', @version.owner_id.value
105 assert_equal 'data', @version.data
106 assert @version.is_branch?
107 end
108
109 def test_original_version
110 assert_equal 'MNO::PQR::7.8.9', @original_version.uid.value
111 assert_equal 'NERV', @original_version.attestations[0].system_id
112 end
113
114 def test_imported_version
115 assert_equal 'import test', @imported_version.signature
116 assert_equal 'MNO::PQR::7.8.9', @imported_version.item.uid.value
117 assert_equal 'CASPER', @imported_version.commit_audit.system_id
118 assert_equal 'unknown', @imported_version.contribution.namespace
119 assert_equal 'STU::VWX::1.2.3', @imported_version.preceding_version_uid.value
120 assert_equal '532', @imported_version.lifecycle_state.defining_code.code_string
121 end
122
123 def test_contribution
124 assert_equal 'ABC', @contribution.uid.value
125 assert_equal 'PARTY', @contribution.versions.to_a[0].type
126 assert_equal 'for contribution', @contribution.audit.description
127 end
128
129 def test_versioned_object
130 assert_equal 'ABC', @versioned_object.uid.value
131 assert_equal 'unknown', @versioned_object.owner_id.namespace
132 assert_equal 18, @versioned_object.time_created.hour
133 assert_equal [@version, @original_version, @imported_version, @trunk_version],
134 @versioned_object.all_versions
135 assert_equal 4, @versioned_object.version_count
136 assert_equal [@version.uid, @original_version.uid, @imported_version.uid, @trunk_version.uid],
137 @versioned_object.all_version_ids
138 assert @versioned_object.has_version_id?(@version.uid)
139 assert !@versioned_object.is_original_version?(@version.uid)
140 assert @versioned_object.is_original_version?(@original_version.uid)
141 assert @versioned_object.has_version_at_time?(OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-06T21:10:12'))
142 assert_equal @version, @versioned_object.version_with_id(@version.uid)
143 assert_equal @version, @versioned_object.version_at_time(@version.commit_audit.time_committed)
144 assert_equal @imported_version, @versioned_object.latest_version
145 assert_equal @trunk_version, @versioned_object.latest_trunk_version
146 assert_equal 'complete', @versioned_object.trunk_lifecycle_state.value
147 assert_equal '2009-07-08T18:10:12', @versioned_object.revision_history.most_recent_version_time_committed
148 assert_nothing_raised(Exception){
149 @versioned_object.commit_original_version(:contribution => @original_version.contribution,
150 :uid => @original_version.uid,
151 :preceding_version_uid => @original_version.preceding_version_uid,
152 :commit_audit => @original_version.commit_audit,
153 :attestations => @original_version.attestations,
154 :lifecycle_state => @original_version.lifecycle_state,
155 :data => 'commit original',
156 :signature => 'testtett')}
157 assert_equal 5, @versioned_object.version_count
158 assert_nothing_raised(Exception){
159 @versioned_object.commit_original_merged_version(:contribution => @original_version.contribution,
160 :uid => @original_version.uid,
161 :preceding_version_uid => @original_version.preceding_version_uid,
162 :commit_audit => @original_version.commit_audit,
163 :lifecycle_state => @original_version.lifecycle_state,
164 :attestations => @original_version.attestations,
165 :data => @original_version.data,
166 :other_input_version_uids => @original_version.other_input_version_uids,
167 :signature => @original_version.signature)}
168 assert_equal 6, @versioned_object.version_count
169 assert_nothing_raised(Exception){
170 @versioned_object.commit_imported_version(:contribution => @imported_version.contribution,
171 :commit_audit => @imported_version.commit_audit,
172 :item => @imported_version.item)}
173 assert_equal 7, @versioned_object.version_count
174 dv_date_time = OpenEhr::RM::DataTypes::Quantity::DateTime::DvDateTime.new('2009-07-07T22:11:31')
175 attestation = Attestation.new(:system_id => 'NERV2',
176 :committer => @version.contribution,
177 :time_committed => dv_date_time,
178 :change_type => @original_version.commit_audit.change_type,
179 :reason => OpenEhr::RM::DataTypes::Text::DvText.new('signed'))
180 assert_nothing_raised(Exception){
181 @versioned_object.commit_attestation(:attestation => attestation,
182 :uid => @original_version.uid,
183 :signature => 'new signature')}
184 end
185end
Note: See TracBrowser for help on using the repository browser.