[199] | 1 | require File.dirname(__FILE__) + '/../../../../test_helper'
|
---|
[191] | 2 | require 'test/unit'
|
---|
| 3 | require 'set'
|
---|
| 4 |
|
---|
| 5 | #include OpenEhr::RM::Common::Archetyped
|
---|
| 6 | class 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
|
---|
| 140 | end
|
---|