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