open_ehr 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +43 -0
- data/Guardfile +9 -0
- data/History.txt +4 -0
- data/Manifest.txt +16 -0
- data/PostInstall.txt +9 -0
- data/README.rdoc +66 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/doc/README_rdoc.html +148 -0
- data/doc/created.rid +2 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +54 -0
- data/doc/js/darkfish.js +116 -0
- data/doc/js/jquery.js +32 -0
- data/doc/js/quicksearch.js +114 -0
- data/doc/js/thickbox-compressed.js +10 -0
- data/doc/openehr_terminology.xml +2700 -0
- data/doc/rdoc.css +706 -0
- data/lib/#open_ehr.rb# +11 -0
- data/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb +21 -0
- data/lib/open_ehr/am/archetype/assertion.rb +190 -0
- data/lib/open_ehr/am/archetype/constraint_model/primitive.rb +296 -0
- data/lib/open_ehr/am/archetype/constraint_model.rb +340 -0
- data/lib/open_ehr/am/archetype/ontology.rb +97 -0
- data/lib/open_ehr/am/archetype.rb +134 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb +29 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb +19 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/text.rb +12 -0
- data/lib/open_ehr/am.rb +8 -0
- data/lib/open_ehr/assumed_library_types.rb +627 -0
- data/lib/open_ehr/parser/xml_perser.rb +13 -0
- data/lib/open_ehr/parser.rb +19 -0
- data/lib/open_ehr/rm/common/archetyped.rb +182 -0
- data/lib/open_ehr/rm/common/change_control.rb +332 -0
- data/lib/open_ehr/rm/common/directory.rb +29 -0
- data/lib/open_ehr/rm/common/generic.rb +216 -0
- data/lib/open_ehr/rm/common/resource.rb +154 -0
- data/lib/open_ehr/rm/common.rb +14 -0
- data/lib/open_ehr/rm/composition/content/entry.rb +246 -0
- data/lib/open_ehr/rm/composition/content/navigation.rb +31 -0
- data/lib/open_ehr/rm/composition/content.rb +22 -0
- data/lib/open_ehr/rm/composition.rb +103 -0
- data/lib/open_ehr/rm/data_structures/history.rb +117 -0
- data/lib/open_ehr/rm/data_structures/item_structure/representation.rb +63 -0
- data/lib/open_ehr/rm/data_structures/item_structure.rb +216 -0
- data/lib/open_ehr/rm/data_structures.rb +25 -0
- data/lib/open_ehr/rm/data_types/basic.rb +108 -0
- data/lib/open_ehr/rm/data_types/charset.lst +818 -0
- data/lib/open_ehr/rm/data_types/charset_extract.rb +24 -0
- data/lib/open_ehr/rm/data_types/encapsulated.rb +98 -0
- data/lib/open_ehr/rm/data_types/quantity/date_time.rb +229 -0
- data/lib/open_ehr/rm/data_types/quantity.rb +403 -0
- data/lib/open_ehr/rm/data_types/text.rb +168 -0
- data/lib/open_ehr/rm/data_types/time_specification.rb +75 -0
- data/lib/open_ehr/rm/data_types/uri.rb +82 -0
- data/lib/open_ehr/rm/data_types.rb +14 -0
- data/lib/open_ehr/rm/demographic.rb +269 -0
- data/lib/open_ehr/rm/ehr.rb +162 -0
- data/lib/open_ehr/rm/integration.rb +27 -0
- data/lib/open_ehr/rm/security.rb +12 -0
- data/lib/open_ehr/rm/support/assumed_types.rb +81 -0
- data/lib/open_ehr/rm/support/definition.rb +15 -0
- data/lib/open_ehr/rm/support/identification.rb +408 -0
- data/lib/open_ehr/rm/support/measurement.rb +17 -0
- data/lib/open_ehr/rm/support/terminology.rb +135 -0
- data/lib/open_ehr/rm/support.rb +14 -0
- data/lib/open_ehr/rm.rb +16 -0
- data/lib/open_ehr/serializer.rb +272 -0
- data/lib/open_ehr/terminology/open_ehr_terminology.rb +41 -0
- data/lib/open_ehr/terminology.rb +7 -0
- data/lib/open_ehr/writer.rb +12 -0
- data/lib/open_ehr.rb +11 -0
- data/spec/lib/open_ehr/am/archetype/archetype_spec.rb +98 -0
- data/spec/lib/open_ehr/am/archetype/assertion/assertion_spec.rb +60 -0
- data/spec/lib/open_ehr/am/archetype/assertion/assertion_variable_spec.rb +30 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_binary_operator.rb +40 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_item_spec.rb +28 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_leaf_spec.rb +34 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_operator_spec.rb +25 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_unary_operator_spec.rb +26 -0
- data/spec/lib/open_ehr/am/archetype/assertion/operator_kind_spec.rb +110 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_constraint_spec.rb +56 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_internal_ref_spec.rb +36 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_slot_spec.rb +61 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_attribute_spec.rb +59 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_complex_object_spec.rb +39 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_defined_object_spec.rb +53 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_domain_type_spec.rb +25 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +29 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_object_spec.rb +61 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_primitive_object_spec.rb +33 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_reference_object_spec.rb +17 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_single_attribute_spec.rb +28 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/cardinality_spec.rb +68 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/constraint_ref_spec.rb +29 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +52 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_spec.rb +80 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +106 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +69 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +62 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +39 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_real_spec.rb +14 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb +69 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb +79 -0
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb +59 -0
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_term_spec.rb +43 -0
- data/spec/lib/open_ehr/am/archetype/validity_kind_spec.rb +42 -0
- data/spec/lib/open_ehr/assumed_library_types/interval_spec.rb +140 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb +236 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb +47 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb +150 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb +234 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb +57 -0
- data/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb +136 -0
- data/spec/lib/open_ehr/rm/common/archetyped/archetyped_spec.rb +50 -0
- data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_details_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/common/archetyped/link_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/common/archetyped/locatable_spec.rb +89 -0
- data/spec/lib/open_ehr/rm/common/archetyped/pathable_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/common/change_control/contribution_spec.rb +56 -0
- data/spec/lib/open_ehr/rm/common/change_control/imported_version_spec.rb +63 -0
- data/spec/lib/open_ehr/rm/common/change_control/original_version_spec.rb +71 -0
- data/spec/lib/open_ehr/rm/common/change_control/version_spec.rb +92 -0
- data/spec/lib/open_ehr/rm/common/change_control/versioned_object_spec.rb +285 -0
- data/spec/lib/open_ehr/rm/common/directory/folder_spec.rb +26 -0
- data/spec/lib/open_ehr/rm/common/generic/attestation_spec.rb +62 -0
- data/spec/lib/open_ehr/rm/common/generic/audit_details_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/common/generic/participation_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/common/generic/party_identified_spec.rb +64 -0
- data/spec/lib/open_ehr/rm/common/generic/party_proxy_spec.rb +18 -0
- data/spec/lib/open_ehr/rm/common/generic/party_related_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/common/generic/revision_history_item_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/common/generic/revision_history_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/common/resource/authored_resource_spec.rb +68 -0
- data/spec/lib/open_ehr/rm/common/resource/resource_description_item_spec.rb +105 -0
- data/spec/lib/open_ehr/rm/common/resource/resource_description_spec.rb +74 -0
- data/spec/lib/open_ehr/rm/common/resource/translation_details_spec.rb +35 -0
- data/spec/lib/open_ehr/rm/composition/composition_spec.rb +92 -0
- data/spec/lib/open_ehr/rm/composition/content/content_item_spec.rb +14 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/action_spec.rb +69 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/activity_spec.rb +61 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/admin_entry_spec.rb +38 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/care_entry_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/entry_spec.rb +88 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/evaluation_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/instruction_details_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/instruction_spec.rb +62 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/ism_transition_spec.rb +46 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/observation_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/composition/content/navigation/section_spec.rb +32 -0
- data/spec/lib/open_ehr/rm/composition/event_context_spec.rb +88 -0
- data/spec/lib/open_ehr/rm/data_structures/data_structure_spec.rb +21 -0
- data/spec/lib/open_ehr/rm/data_structures/history/event_spec.rb +44 -0
- data/spec/lib/open_ehr/rm/data_structures/history/history_spec.rb +67 -0
- data/spec/lib/open_ehr/rm/data_structures/history/interval_event_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb +53 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb +147 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb +48 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/cluster_spec.rb +26 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/element_spec.rb +22 -0
- data/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb +17 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb +108 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb +44 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb +79 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb +34 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_spec.rb +64 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +25 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_tempral_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_time_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb +35 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb +105 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb +17 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb +74 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb +162 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb +78 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb +23 -0
- data/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb +13 -0
- data/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb +57 -0
- data/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb +59 -0
- data/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb +21 -0
- data/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/demographic/actor_spec.rb +79 -0
- data/spec/lib/open_ehr/rm/demographic/address_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/demographic/capability_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/demographic/contact_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/demographic/party_identity_spec.rb +32 -0
- data/spec/lib/open_ehr/rm/demographic/party_relationship_spec.rb +84 -0
- data/spec/lib/open_ehr/rm/demographic/party_spec.rb +133 -0
- data/spec/lib/open_ehr/rm/demographic/role_spec.rb +58 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_access_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_spec.rb +139 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_status_spec.rb +52 -0
- data/spec/lib/open_ehr/rm/ehr/versioned_composition_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/integration/generic_entry_spec.rb +31 -0
- data/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb +19 -0
- data/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb +152 -0
- data/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb +34 -0
- data/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb +50 -0
- data/spec/lib/open_ehr/rm/support/identification/uid_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb +104 -0
- data/spec/lib/open_ehr/rm/support/measurement_service_spec.rb +7 -0
- data/spec/lib/open_ehr/rm/support/terminology_service_spec.rb +24 -0
- data/spec/lib/open_ehr/serializer/adl-test-entry.most_minimal.test.adl +20 -0
- data/spec/lib/open_ehr/serializer/adl_serializer_spec.rb +47 -0
- data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.adl +38 -0
- data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.xml +58 -0
- data/spec/lib/open_ehr/serializer/sample_archetype_spec.rb +44 -0
- data/spec/lib/open_ehr/serializer/xml_serializer_spec.rb +49 -0
- data/spec/lib/open_ehr/terminology/open_ehr_terminology_spec.rb +40 -0
- data/spec/rcov.opts +1 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +54 -0
- metadata +401 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
6
|
+
|
7
|
+
def row(args)
|
8
|
+
return args.collect do |n|
|
9
|
+
Element.new(:name => DvText.new(:value => n),
|
10
|
+
:archetype_node_id => 'test')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def cluster_builder(name,rows)
|
15
|
+
return Cluster.new(:name => DvText.new(:value => name),
|
16
|
+
:archetype_node_id => 'test',
|
17
|
+
:items => rows)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe ItemTable do
|
21
|
+
before(:each) do
|
22
|
+
row1 = row(%w{one two three})
|
23
|
+
row2 = row(%w{four five six})
|
24
|
+
rows = [row1, row2].collect{|r| cluster_builder('cluster',r)}
|
25
|
+
@item_table = ItemTable.new(:name => DvText.new(:value => 'item table'),
|
26
|
+
:archetype_node_id => 'test',
|
27
|
+
:rows => rows)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should be an instance of ItemTable' do
|
31
|
+
@item_table.should be_an_instance_of ItemTable
|
32
|
+
end
|
33
|
+
|
34
|
+
it 's row count should be 2' do
|
35
|
+
@item_table.row_count.should be_equal 2
|
36
|
+
end
|
37
|
+
|
38
|
+
it 's row_count should be 0 when rows are nil' do
|
39
|
+
@item_table.rows = nil
|
40
|
+
@item_table.row_count.should be_equal 0
|
41
|
+
end
|
42
|
+
|
43
|
+
it 's column_count should be 3' do
|
44
|
+
@item_table.column_count.should be_equal 3
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'column_count should be 0 when @rows == nil' do
|
48
|
+
@item_table.rows = nil
|
49
|
+
@item_table.column_count.should be_equal 0
|
50
|
+
end
|
51
|
+
|
52
|
+
it 's row_names should be cluster cluster' do
|
53
|
+
@item_table.row_names.should == %w{cluster cluster}.collect{|n|
|
54
|
+
DvText.new(:value => n)}
|
55
|
+
end
|
56
|
+
|
57
|
+
it 's row_names should be empty when items are nil' do
|
58
|
+
@item_table.rows = nil
|
59
|
+
@item_table.row_names.should == []
|
60
|
+
end
|
61
|
+
|
62
|
+
it 's column_names should one two three' do
|
63
|
+
@item_table.column_names.should == %w{one two three}.collect{|s|
|
64
|
+
DvText.new(:value => s)}
|
65
|
+
end
|
66
|
+
|
67
|
+
it 's column_names should empty when items aer nil' do
|
68
|
+
@item_table.rows = nil
|
69
|
+
@item_table.column_names.should == []
|
70
|
+
end
|
71
|
+
|
72
|
+
it 's ith_row(integer) should be ith row' do
|
73
|
+
@item_table.ith_row(2).items[1].name.value.should == 'five'
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should be invalid index under 0' do
|
77
|
+
lambda {@item_table.ith_row(0) }.should raise_error(ArgumentError)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should be true because it has_row_with_name cluster' do
|
81
|
+
@item_table.has_row_with_name?('one').should be_true
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should be true because it does not have_row_with_name key' do
|
85
|
+
@item_table.has_row_with_name?('two').should_not be_true
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should raise argument error key is nil' do
|
89
|
+
lambda {@item_table.has_row_with_name?(nil)
|
90
|
+
}.should raise_error(ArgumentError)
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should raise argument error key is empty' do
|
94
|
+
lambda {@item_table.has_row_with_name?('')
|
95
|
+
}.should raise_error(ArgumentError)
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should be true because it has_column_with_name one' do
|
99
|
+
@item_table.has_column_with_name?('one').should be_true
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should be false it has_column with name ten' do
|
103
|
+
@item_table.has_column_with_name?('ten').should be_false
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'second row should be named_row four' do
|
107
|
+
@item_table.named_row('four').items[1].name.value = 'five'
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should be true if row has key' do
|
111
|
+
@item_table.has_row_with_key?(Set['one','two']).should be_true
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should not be true if row has not key' do
|
115
|
+
@item_table.has_row_with_key?(Set['two','five']).should be_false
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'should be a first row that has one' do
|
119
|
+
@item_table.row_with_key(Set['one', 'two']).items[0].name.value.should =='one'
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'should raise argument error if row has no key' do
|
123
|
+
lambda {
|
124
|
+
@item_table.row_with_key(Set['two','five'])}.should raise_error(ArgumentError)
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should be element at cell ij' do
|
128
|
+
@item_table.element_at_cell_ij(2,2).name.value.should == 'five'
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'should not be element at cell with wrong ij' do
|
132
|
+
@item_table.element_at_cell_ij(2,3).name.value.should_not == 'five'
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'should be two element at named cell by row column' do
|
136
|
+
@item_table.element_at_named_cell('cluster', 'three').name.value == 'three'
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should return nil when rows are nil' do
|
140
|
+
@item_table.rows = nil
|
141
|
+
@item_table.row_count.should be_equal 0
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should be first row as hierachy' do
|
145
|
+
@item_table.as_hierarchy.name.value.should == 'cluster'
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
6
|
+
|
7
|
+
describe ItemTree do
|
8
|
+
before(:each) do
|
9
|
+
i = 1
|
10
|
+
items = %w{one two three}.collect do |name|
|
11
|
+
i += 1
|
12
|
+
Element.new(:name => DvText.new(:value => name),
|
13
|
+
:archetype_node_id => 'at000' + i.to_s)
|
14
|
+
end
|
15
|
+
name = DvText.new(:value => 'item tree')
|
16
|
+
@item_tree = ItemTree.new(:name => name,
|
17
|
+
:archetype_node_id => 'at0001',
|
18
|
+
:items => items)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should be an instance of ItemTree' do
|
22
|
+
@item_tree.should be_an_instance_of ItemTree
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'first item name should be one' do
|
26
|
+
@item_tree.items[0].name.value.should == 'one'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'has valid element path' do
|
30
|
+
@item_tree.has_element_path?('at0002').should be_true
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should return false with wrong node' do
|
34
|
+
@item_tree.has_element_path?('at0005').should be_false
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'path at002 should return two' do
|
38
|
+
@item_tree.element_at_path('at0003').name.value.should == 'two'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'path at005 should return nil' do
|
42
|
+
@item_tree.element_at_path('at0005').should be_nil
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should returns ItemTree as Cluster' do
|
46
|
+
@item_tree.as_hierarchy.name.value.should == 'item tree'
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe Cluster do
|
6
|
+
before(:each) do
|
7
|
+
item = stub(Item)
|
8
|
+
@cluster = Cluster.new(:archetype_node_id => 'at0001',
|
9
|
+
:name => DvText.new(:value => 'cluster'),
|
10
|
+
:items => [item, item])
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be an isntance of Cluster' do
|
14
|
+
@cluster.should be_an_instance_of Cluster
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'item size should be 2' do
|
18
|
+
@cluster.items.size.should == 2
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should raise ArgumentError with empty items' do
|
22
|
+
lambda {
|
23
|
+
@cluster.items = []
|
24
|
+
}.should raise_error ArgumentError
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe Element do
|
6
|
+
before(:each) do
|
7
|
+
value = DvText.new(:value => 'test')
|
8
|
+
@element = Element.new(:archetype_node_id => 'at0001',
|
9
|
+
:name => DvText.new(:value => 'element'),
|
10
|
+
:value => value)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be an instance of Element' do
|
14
|
+
@element.should be_an_instance_of Element
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'value should be assigned as test' do
|
18
|
+
@element.value.value.should == 'test'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'nullflavor should be assigned'
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
|
3
|
+
include OpenEHR::RM::DataTypes::Basic
|
4
|
+
|
5
|
+
describe DataValue do
|
6
|
+
before(:each) do
|
7
|
+
@data_value = DataValue.new(:value => 'ANY')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should be an instance of DataValue' do
|
11
|
+
@data_value.should be_an_instance_of DataValue
|
12
|
+
end
|
13
|
+
|
14
|
+
it 's value should be stub' do
|
15
|
+
@data_value.value.should == 'ANY'
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Basic
|
3
|
+
|
4
|
+
|
5
|
+
describe DvBoolean do
|
6
|
+
before(:each) do
|
7
|
+
@dv_boolean = DvBoolean.new(:value => "TRUE")
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should be an instance of DvBoolean' do
|
11
|
+
@dv_boolean.should be_an_instance_of DvBoolean
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should be true' do
|
15
|
+
@dv_boolean.value.should be_true
|
16
|
+
@dv_boolean.value?.should be_true
|
17
|
+
end
|
18
|
+
|
19
|
+
it 's value assigned false, then it should not be false' do
|
20
|
+
@dv_boolean.value = false
|
21
|
+
@dv_boolean.value.should_not be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'raise ArgumentError' do
|
25
|
+
lambda {
|
26
|
+
@dv_boolean.value = nil
|
27
|
+
}.should raise_error(ArgumentError)
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Basic
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe DvIdentifier do
|
6
|
+
before(:each) do
|
7
|
+
@dv_identifier = DvIdentifier.new(:issuer => 'Ruby Hospital',
|
8
|
+
:assigner => 'Information office',
|
9
|
+
:id => '0123456-0',
|
10
|
+
:type =>'personal id')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be an instance of DvIdentifier' do
|
14
|
+
@dv_identifier.should be_an_instance_of DvIdentifier
|
15
|
+
end
|
16
|
+
|
17
|
+
it 's issuer should be Ruby hospital' do
|
18
|
+
@dv_identifier.issuer.should == 'Ruby Hospital'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 's assigner should be Information office' do
|
22
|
+
@dv_identifier.assigner.should == 'Information office'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 's id should be 0123456-0' do
|
26
|
+
@dv_identifier.id.should == '0123456-0'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 's type should be personal id' do
|
30
|
+
@dv_identifier.type.should == 'personal id'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 's issuer should be change to other hospital' do
|
34
|
+
lambda {
|
35
|
+
@dv_identifier.issuer = 'Other Hospital'
|
36
|
+
}.should change(@dv_identifier, :issuer).
|
37
|
+
from('Ruby Hospital').to('Other Hospital')
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'raise ArgumentError for nil issuer' do
|
41
|
+
lambda {
|
42
|
+
@dv_identifier.issuer = nil
|
43
|
+
}.should raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'raise ArgumentError for empty issuer' do
|
47
|
+
lambda {
|
48
|
+
@dv_identifier.issuer = ''
|
49
|
+
}.should raise_error(ArgumentError)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 's assigner should change from Information office to Service office' do
|
53
|
+
lambda {
|
54
|
+
@dv_identifier.assigner = 'Service office'
|
55
|
+
}.should change{@dv_identifier.assigner}.
|
56
|
+
from('Information office').to('Service office')
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'raise ArgumentError for nil assigner' do
|
60
|
+
lambda {
|
61
|
+
@dv_identifier.assigner = nil
|
62
|
+
}.should raise_error(ArgumentError)
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'raise ArgumentError for empty assigner' do
|
66
|
+
lambda {
|
67
|
+
@dv_identifier.assigner = ''
|
68
|
+
}.should raise_error(ArgumentError)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 's id should change from 0123456-0 to TEST-0987' do
|
72
|
+
lambda {
|
73
|
+
@dv_identifier.id = 'TEST-0987'
|
74
|
+
}.should change(@dv_identifier, :id).
|
75
|
+
from('0123456-0').to('TEST-0987')
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'raise ArgumentError for nil id' do
|
79
|
+
lambda {
|
80
|
+
@dv_identifier.id = nil
|
81
|
+
}.should raise_error(ArgumentError)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'raise ArgumentError for empty id' do
|
85
|
+
lambda {
|
86
|
+
@dv_identifier.id = ''
|
87
|
+
}.should raise_error(ArgumentError)
|
88
|
+
end
|
89
|
+
|
90
|
+
it 's type should change form personal id to test id' do
|
91
|
+
lambda {
|
92
|
+
@dv_identifier.type = "test id"
|
93
|
+
}.should change(@dv_identifier, :type).
|
94
|
+
from('personal id').to('test id')
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'raise ArgumentError for nil type' do
|
98
|
+
lambda {
|
99
|
+
@dv_identifier.type = nil
|
100
|
+
}.should raise_error(ArgumentError)
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'raise ArgumentError for empty issuer' do
|
104
|
+
lambda {
|
105
|
+
@dv_identifier.type = ''
|
106
|
+
}.should raise_error(ArgumentError)
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Basic
|
3
|
+
include OpenEHR::RM::Support::Identification
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
|
6
|
+
describe DvState do
|
7
|
+
before(:each) do
|
8
|
+
@terminology_id = TerminologyID.new(:value => 'openher')
|
9
|
+
code_phrase = CodePhrase.new(:code_string => '524',
|
10
|
+
:terminology_id => @terminology_id)
|
11
|
+
dv_coded_text = DvCodedText.new(:value => "initial",
|
12
|
+
:defining_code => code_phrase)
|
13
|
+
@dv_state = DvState.new(:value => dv_coded_text,
|
14
|
+
:is_terminal => false)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should be an instance of DvState' do
|
18
|
+
@dv_state.should be_an_instance_of DvState
|
19
|
+
end
|
20
|
+
|
21
|
+
it 's value should be initial' do
|
22
|
+
@dv_state.value.value.should == 'initial'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should change other value assigned' do
|
26
|
+
code_phrase = CodePhrase.new(:code_string => '526',
|
27
|
+
:terminology_id => @terminology_id)
|
28
|
+
dv_coded_text = DvCodedText.new(:value =>'planned',
|
29
|
+
:defining_code => code_phrase)
|
30
|
+
lambda {
|
31
|
+
@dv_state.value = dv_coded_text
|
32
|
+
}.should change{@dv_state.value.value}.from('initial').to('planned')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'is not terminal' do
|
36
|
+
@dv_state.is_terminal?.should be_false
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should change to terminal' do
|
40
|
+
lambda {
|
41
|
+
@dv_state.is_terminal = true
|
42
|
+
}.should change(@dv_state, :is_terminal?).from(false).to(true)
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Encapsulated
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe DvEncapsulated do
|
6
|
+
before(:each) do
|
7
|
+
dummy = 'test'
|
8
|
+
charset = stub(CodePhrase, :code_string => 'UTF-8')
|
9
|
+
language = stub(CodePhrase, :code_string => 'ja')
|
10
|
+
@dv_encapsulated = DvEncapsulated.new(:value => dummy,
|
11
|
+
:charset => charset,
|
12
|
+
:language => language)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 's value should be test' do
|
16
|
+
@dv_encapsulated.value.should == 'test'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 's size should be 4' do
|
20
|
+
@dv_encapsulated.size.should be_equal 4
|
21
|
+
end
|
22
|
+
|
23
|
+
it 's charset should be utf-8' do
|
24
|
+
@dv_encapsulated.charset.code_string.should == 'UTF-8'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 's langage should be ja' do
|
28
|
+
@dv_encapsulated.language.code_string.should == 'ja'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should raise ArgumentError when language is invalid' do
|
32
|
+
wrong_lang = stub(CodePhrase, :code_string => 'jj')
|
33
|
+
lambda {@dv_encapsulated.language = wrong_lang}.
|
34
|
+
should raise_error(ArgumentError)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should raise ArgumentError when charset is invalid' do
|
38
|
+
wrong_charset = stub(CodePhrase, :code_string => 'UBK')
|
39
|
+
lambda {@dv_encapsulated.charset = wrong_charset}.
|
40
|
+
should raise_error(ArgumentError)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Encapsulated
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
include OpenEHR::RM::DataTypes::URI
|
5
|
+
include OpenEHR::RM::Support::Identification
|
6
|
+
|
7
|
+
describe DvMultimedia do
|
8
|
+
before(:each) do
|
9
|
+
media_type = stub(CodePhrase, :code_string => 'text/xml')
|
10
|
+
charset = stub(CodePhrase, :code_string => 'UTF-8')
|
11
|
+
uri = stub(DvUri, :value => 'http://openehr.jp/')
|
12
|
+
data = Array['123412', '123112']
|
13
|
+
compression_algorithm = stub(CodePhrase, :code_string => 'gzip')
|
14
|
+
integrity_check = Array['123456789ABCDEF','DEADBEEF']
|
15
|
+
integrity_check_algorithm = stub(CodePhrase, :code_string => 'SHA-1')
|
16
|
+
alternate_text = 'test'
|
17
|
+
@dv_multimedia = DvMultimedia.new(:value => '<xml>test</xml>',
|
18
|
+
:media_type => media_type,
|
19
|
+
:charset => charset,
|
20
|
+
:uri => uri,
|
21
|
+
:data => data,
|
22
|
+
:compression_algorithm => compression_algorithm,
|
23
|
+
:integrity_check => integrity_check,
|
24
|
+
:integrity_check_algorithm => integrity_check_algorithm,
|
25
|
+
:alternate_text => alternate_text)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should be an instance of DvMultimedia' do
|
29
|
+
@dv_multimedia.should be_an_instance_of DvMultimedia
|
30
|
+
end
|
31
|
+
|
32
|
+
it 's value should be <xml>test</xml>' do
|
33
|
+
@dv_multimedia.value.should == '<xml>test</xml>'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 's media_type should be text/xml' do
|
37
|
+
@dv_multimedia.media_type.code_string.should == 'text/xml'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 's size should be equal 15' do
|
41
|
+
@dv_multimedia.size.should be_equal 15
|
42
|
+
end
|
43
|
+
|
44
|
+
it 's charset should be UTF-8' do
|
45
|
+
@dv_multimedia.charset.code_string.should == 'UTF-8'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 's uri value should be http://openehr.jp/ ' do
|
49
|
+
@dv_multimedia.uri.value.should == 'http://openehr.jp/'
|
50
|
+
end
|
51
|
+
|
52
|
+
it 's data[0] should be 123412' do
|
53
|
+
@dv_multimedia.data[0].should == '123412'
|
54
|
+
end
|
55
|
+
|
56
|
+
it 's compression_algorithm should be gzip' do
|
57
|
+
@dv_multimedia.compression_algorithm.code_string.should == 'gzip'
|
58
|
+
end
|
59
|
+
|
60
|
+
it 's integrity_check[1] should be DEADBEEF' do
|
61
|
+
@dv_multimedia.integrity_check[1].should == 'DEADBEEF'
|
62
|
+
end
|
63
|
+
|
64
|
+
it 's integrity_check_algorithm should be SHA-1' do
|
65
|
+
@dv_multimedia.integrity_check_algorithm.code_string.should == 'SHA-1'
|
66
|
+
end
|
67
|
+
|
68
|
+
it 's alternate text should be test' do
|
69
|
+
@dv_multimedia.alternate_text.should == 'test'
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'has_integrity_check should be true'
|
73
|
+
|
74
|
+
it 'is compressed should be true'
|
75
|
+
|
76
|
+
it 'is_external should be true'
|
77
|
+
|
78
|
+
it 'is_internal should be false'
|
79
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Encapsulated
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe DvParsable do
|
6
|
+
before(:each) do
|
7
|
+
@dv_parsable = DvParsable.new(:value => 'test',
|
8
|
+
:formalism => 'plain/text')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should be an instance of DvParsable' do
|
12
|
+
@dv_parsable.should be_an_instance_of DvParsable
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'value should be test' do
|
16
|
+
@dv_parsable.value.should == 'test'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 's size should be 4' do
|
20
|
+
@dv_parsable.size.should be_equal 4
|
21
|
+
end
|
22
|
+
|
23
|
+
it 's formalism should be plain/text' do
|
24
|
+
@dv_parsable.formalism.should == 'plain/text'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should raise ArgumentError formalism nil' do
|
28
|
+
lambda {@dv_parsable.formalism = nil}.should raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should raise ArgumentError formalism empty' do
|
32
|
+
lambda {@dv_parsable.formalism = ''}.should raise_error(ArgumentError)
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
3
|
+
|
4
|
+
describe DvDate do
|
5
|
+
before(:each) do
|
6
|
+
@dv_date = DvDate.new(:value => '2009-09-28')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be an instance of DvDate' do
|
10
|
+
@dv_date.should be_an_instance_of DvDate
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'value should be' do
|
14
|
+
@dv_date.value.should == '2009-09-28'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'year should be 2009' do
|
18
|
+
@dv_date.year.should be_equal 2009
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'month should be 9' do
|
22
|
+
@dv_date.month.should be_equal 9
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'day should be 28' do
|
26
|
+
@dv_date.day.should be_equal 28
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'magnitude should 734045' do
|
30
|
+
@dv_date.magnitude.should == 734045
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'diff should P0Y0M1W11D' do
|
34
|
+
diff_date = DvDate.new(:value => '2009-10-09')
|
35
|
+
@dv_date.diff(diff_date).value.should == 'P0Y0M1W11D'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should process leap year' do
|
39
|
+
@dv_date.value = '2004-02-28'
|
40
|
+
diff_date = DvDate.new(:value => '2004-03-01')
|
41
|
+
@dv_date.diff(diff_date).value.should == 'P0Y0M0W2D'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should process year'do
|
45
|
+
diff_date = DvDate.new(:value => '2007-12-31')
|
46
|
+
@dv_date.diff(diff_date).value.should == 'P1Y8M4W28D'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should be P0Y11M4W31D' do
|
50
|
+
diff_date = DvDate.new(:value => '2008-09-30')
|
51
|
+
@dv_date.diff(diff_date).value.should == 'P0Y11M4W29D'
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should be P1Y0M0W1D' do
|
55
|
+
diff_date = DvDate.new(:value => '2010-09-29')
|
56
|
+
@dv_date.diff(diff_date).value.should == 'P1Y0M0W1D'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should be P0Y0M0W1D' do
|
60
|
+
past_date = DvDate.new(:value => '2009-12-31')
|
61
|
+
future_date=DvDate.new(:value => '2010-01-01')
|
62
|
+
past_date.diff(future_date).value.should == 'P0Y0M0W1D'
|
63
|
+
end
|
64
|
+
end
|