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,150 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
include OpenEHR::AssumedLibraryTypes
|
3
|
+
|
4
|
+
describe ISO8601Duration do
|
5
|
+
before(:each) do
|
6
|
+
@iso8601duration = ISO8601Duration.new('P1Y2M3W4DT5H6M7.8S')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be an instance of ISO8601Duration' do
|
10
|
+
@iso8601duration.should be_an_instance_of ISO8601Duration
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'years should be 1' do
|
14
|
+
@iso8601duration.years.should be_equal 1
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'months should be 2' do
|
18
|
+
@iso8601duration.months.should be_equal 2
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'weeks should be 3' do
|
22
|
+
@iso8601duration.weeks.should be_equal 3
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'days should be 4' do
|
26
|
+
@iso8601duration.days.should be_equal 4
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'hours should be 5' do
|
30
|
+
@iso8601duration.hours.should be_equal 5
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'minutes should be 6' do
|
34
|
+
@iso8601duration.minutes.should be_equal 6
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'seconds should be 7' do
|
38
|
+
@iso8601duration.seconds.should be_equal 7
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'fractional_seconds should be .8' do
|
42
|
+
@iso8601duration.fractional_second.should == 0.8
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should be equal P1Y2M3W4DT5H6M7.8S as string' do
|
46
|
+
@iso8601duration.as_string.should == 'P1Y2M3W4DT5H6M7.8S'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should not raise ArgumentError with 0 yaers' do
|
50
|
+
lambda {
|
51
|
+
@iso8601duration.years = 0
|
52
|
+
}.should_not raise_error ArgumentError
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should raise ArgumentError with -1 yaers' do
|
56
|
+
lambda {
|
57
|
+
@iso8601duration.years = -1
|
58
|
+
}.should raise_error ArgumentError
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should not raise ArgumentError with 0 months' do
|
62
|
+
lambda {
|
63
|
+
@iso8601duration.months = 0
|
64
|
+
}.should_not raise_error ArgumentError
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should raise ArgumentError with -1 months' do
|
68
|
+
lambda {
|
69
|
+
@iso8601duration.months = -1
|
70
|
+
}.should raise_error ArgumentError
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should not raise ArgumentError with 0 weeks' do
|
74
|
+
lambda {
|
75
|
+
@iso8601duration.weeks = 0
|
76
|
+
}.should_not raise_error ArgumentError
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should raise ArgumentError with -1 weeks' do
|
80
|
+
lambda {
|
81
|
+
@iso8601duration.weeks = -1
|
82
|
+
}.should raise_error ArgumentError
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should not raise ArgumentError with 0 days' do
|
86
|
+
lambda {
|
87
|
+
@iso8601duration.days = 0
|
88
|
+
}.should_not raise_error ArgumentError
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should raise ArgumentError with -1 days' do
|
92
|
+
lambda {
|
93
|
+
@iso8601duration.days = -1
|
94
|
+
}.should raise_error ArgumentError
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'should not raise ArgumentError with 0 hours' do
|
98
|
+
lambda {
|
99
|
+
@iso8601duration.hours = 0
|
100
|
+
}.should_not raise_error ArgumentError
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should raise ArgumentError with -1 hours' do
|
104
|
+
lambda {
|
105
|
+
@iso8601duration.hours = -1
|
106
|
+
}.should raise_error ArgumentError
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should not raise ArgumentError with 0 minutes' do
|
110
|
+
lambda {
|
111
|
+
@iso8601duration.minutes = 0
|
112
|
+
}.should_not raise_error ArgumentError
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should raise ArgumentError with -1 minutes' do
|
116
|
+
lambda {
|
117
|
+
@iso8601duration.minutes = -1
|
118
|
+
}.should raise_error ArgumentError
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should not raise ArgumentError with 0 seconds' do
|
122
|
+
lambda {
|
123
|
+
@iso8601duration.seconds = 0
|
124
|
+
}.should_not raise_error ArgumentError
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should raise ArgumentError with -1 seconds' do
|
128
|
+
lambda {
|
129
|
+
@iso8601duration.seconds = -1
|
130
|
+
}.should raise_error ArgumentError
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should not raise ArgumentError with 0 fractional_second' do
|
134
|
+
lambda {
|
135
|
+
@iso8601duration.fractional_second = 0
|
136
|
+
}.should_not raise_error ArgumentError
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should raise ArgumentError with -1 fractional_second' do
|
140
|
+
lambda {
|
141
|
+
@iso8601duration.fractional_second = -1
|
142
|
+
}.should raise_error ArgumentError
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'should raise ArgumentError with 1.0 fractional_second' do
|
146
|
+
lambda {
|
147
|
+
@iso8601duration.fractional_second = 1.0
|
148
|
+
}.should raise_error ArgumentError
|
149
|
+
end
|
150
|
+
end
|
@@ -0,0 +1,234 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
include OpenEHR::AssumedLibraryTypes
|
3
|
+
|
4
|
+
describe ISO8601Time do
|
5
|
+
before(:each) do
|
6
|
+
@iso8601time = ISO8601Time.new('15:55:37.32+0900')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be an instance of ISO8601Time' do
|
10
|
+
@iso8601time.should be_an_instance_of ISO8601Time
|
11
|
+
end
|
12
|
+
|
13
|
+
it 's hour should be 15' do
|
14
|
+
@iso8601time.hour.should == 15
|
15
|
+
end
|
16
|
+
|
17
|
+
it 's minute should be 55' do
|
18
|
+
@iso8601time.minute.should == 55
|
19
|
+
end
|
20
|
+
|
21
|
+
it 's second should be 37'do
|
22
|
+
@iso8601time.second.should == 37
|
23
|
+
end
|
24
|
+
|
25
|
+
it 's fractional second should be 0.32' do
|
26
|
+
@iso8601time.fractional_second == 0.32
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'have fractional_second' do
|
30
|
+
@iso8601time.should have_fractional_second
|
31
|
+
end
|
32
|
+
|
33
|
+
it 's time zone should +0900' do
|
34
|
+
@iso8601time.timezone == '+0900'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should be 15:55:37.32+0900 as_string' do
|
38
|
+
@iso8601time.as_string.should == '15:55:37.32+0900'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'decimal sign should not be comma' do
|
42
|
+
@iso8601time.is_decimal_sign_comma?.should_not be_true
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should be extended' do
|
46
|
+
@iso8601time.is_extended?.should be_true
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should not be partial' do
|
50
|
+
@iso8601time.is_partial?.should_not be true
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'hour behavior' do
|
54
|
+
it 'should raise ArgumentError with nil hour' do
|
55
|
+
lambda {
|
56
|
+
@iso8601time.hour = nil
|
57
|
+
}.should raise_error ArgumentError
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should not raise ArgumentError with -1 hour' do
|
61
|
+
lambda {
|
62
|
+
@iso8601time.hour = -1
|
63
|
+
}.should raise_error ArgumentError
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should not raise ArgumentError with 0 hour' do
|
67
|
+
lambda {
|
68
|
+
@iso8601time.hour = 0
|
69
|
+
}.should_not raise_error ArgumentError
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should not raise ArgumentError with 23 hour' do
|
73
|
+
lambda {
|
74
|
+
@iso8601time.hour = 23
|
75
|
+
}.should_not raise_error ArgumentError
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'should not raise ArgumentError with 24 hour' do
|
79
|
+
lambda {
|
80
|
+
@iso8601time.hour = 24
|
81
|
+
}.should raise_error ArgumentError
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe 'minute behavior' do
|
86
|
+
it 'should raise ArgumentError with -1 miniute' do
|
87
|
+
lambda {
|
88
|
+
@iso8601time.minute = -1
|
89
|
+
}.should raise_error ArgumentError
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should not raise ArgumentError with 0 minute' do
|
93
|
+
lambda {
|
94
|
+
@iso8601time.minute = 0
|
95
|
+
}.should_not raise_error ArgumentError
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should not raise ArgumentError with 59 minute' do
|
99
|
+
lambda {
|
100
|
+
@iso8601time.minute = 59
|
101
|
+
}.should_not raise_error ArgumentError
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'should raise ArgumentError with 60 minute' do
|
105
|
+
lambda {
|
106
|
+
@iso8601time.minute = 60
|
107
|
+
}.should raise_error ArgumentError
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe 'second behavior' do
|
112
|
+
it 'should raise ArgumentError with -1 miniute' do
|
113
|
+
lambda {
|
114
|
+
@iso8601time.second = -1
|
115
|
+
}.should raise_error ArgumentError
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'should not raise ArgumentError with 0 second' do
|
119
|
+
lambda {
|
120
|
+
@iso8601time.second = 0
|
121
|
+
}.should_not raise_error ArgumentError
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should not raise ArgumentError with 59 second' do
|
125
|
+
lambda {
|
126
|
+
@iso8601time.second = 59
|
127
|
+
}.should_not raise_error ArgumentError
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'should raise ArgumentError with 60 second' do
|
131
|
+
lambda {
|
132
|
+
@iso8601time.second = 60
|
133
|
+
}.should raise_error ArgumentError
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe 'fractional second behavior' do
|
138
|
+
it 'should raise ArgumentError less than -0.0' do
|
139
|
+
lambda {
|
140
|
+
@iso8601time.fractional_second = -0.1
|
141
|
+
}.should raise_error ArgumentError
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should raise ArgumentError more than 1.0' do
|
145
|
+
lambda {
|
146
|
+
@iso8601time.fractional_second = 1.0
|
147
|
+
}.should raise_error ArgumentError
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe 'timezone behavior' do
|
152
|
+
it 'should raise ArgumentError with invalid timezone' do
|
153
|
+
lambda {
|
154
|
+
@iso8601time.timezone = '+AbD:111'
|
155
|
+
}.should raise_error ArgumentError
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'should allow ArgumentError with nil timezone' do
|
159
|
+
lambda {
|
160
|
+
@iso8601time.timezone = nil
|
161
|
+
}.should_not raise_error ArgumentError
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
describe 'constructor behavior' do
|
166
|
+
it 'should_not raise ArgumentError with 21:18:09.01' do
|
167
|
+
lambda {
|
168
|
+
ISO8601Time.new('21:18:09.01')
|
169
|
+
}.should_not raise_error ArgumentError
|
170
|
+
end
|
171
|
+
|
172
|
+
it 'should_not raise ArgumentError with 21:18:09' do
|
173
|
+
lambda {
|
174
|
+
ISO8601Time.new('21:18:09')
|
175
|
+
}.should_not raise_error ArgumentError
|
176
|
+
end
|
177
|
+
|
178
|
+
it 'should_not raise ArgumentError with 21:18' do
|
179
|
+
lambda {
|
180
|
+
ISO8601Time.new('21:18')
|
181
|
+
}.should_not raise_error ArgumentError
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'should_not raise ArgumentError with 21' do
|
185
|
+
lambda {
|
186
|
+
ISO8601Time.new('21')
|
187
|
+
}.should_not raise_error ArgumentError
|
188
|
+
end
|
189
|
+
|
190
|
+
it 'should raise ArgumentError with malformation' do
|
191
|
+
lambda {
|
192
|
+
ISO8601Time.new('ABDCD')
|
193
|
+
}.should raise_error ArgumentError
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
describe 'ISO8601 time validation' do
|
198
|
+
it 'should be valid iso8601 Time' do
|
199
|
+
ISO8601Time.should be_valid_iso8601_time '21:24:30.05+09:00'
|
200
|
+
end
|
201
|
+
|
202
|
+
it 'should not be valid with over 24 hour' do
|
203
|
+
ISO8601Time.should_not be_valid_iso8601_time '24:24:30.05+09:00'
|
204
|
+
end
|
205
|
+
|
206
|
+
it 'should be valid with over 24:00:00' do
|
207
|
+
ISO8601Time.should be_valid_iso8601_time '24:00:00.00'
|
208
|
+
end
|
209
|
+
|
210
|
+
it 'should not vaild with under 0 hour' do
|
211
|
+
ISO8601Time.should_not be_valid_iso8601_time '-1:24:30.05+09:00'
|
212
|
+
end
|
213
|
+
|
214
|
+
it 'should not valid with more than 60 minutes' do
|
215
|
+
ISO8601Time.should_not be_valid_iso8601_time '21:60:30'
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'should not valid with more than 60 seconds' do
|
219
|
+
ISO8601Time.should_not be_valid_iso8601_time '21:34:60'
|
220
|
+
end
|
221
|
+
|
222
|
+
it 'should not valid with invalid hour in timezone' do
|
223
|
+
ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05+24:00'
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'should not valid with invalid minute in timezone' do
|
227
|
+
ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05+22:60'
|
228
|
+
end
|
229
|
+
|
230
|
+
it 'should not valid with invalid minute in timezone' do
|
231
|
+
ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05TAABZ'
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
include OpenEHR::AssumedLibraryTypes
|
3
|
+
|
4
|
+
describe ISO8601Timezone do
|
5
|
+
before(:each) do
|
6
|
+
@iso8601timezone = ISO8601Timezone.new('+0900')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be an instance of ISO8601Timezone' do
|
10
|
+
@iso8601timezone.should be_an_instance_of ISO8601Timezone
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'sign should be +1' do
|
14
|
+
@iso8601timezone.sign.should == +1
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'hour should be 9' do
|
18
|
+
@iso8601timezone.hour.should == 9
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'minute should be 0' do
|
22
|
+
@iso8601timezone.minute.should == 0
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should be +0900 as string' do
|
26
|
+
@iso8601timezone.as_string.should == '+0900'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should not be gmt' do
|
30
|
+
@iso8601timezone.is_gmt?.should_not be_true
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should raise ArgumentError with invalid format' do
|
34
|
+
lambda {
|
35
|
+
ISO8601Timezone.new('ABCDE')
|
36
|
+
}.should raise_error ArgumentError
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should allow - sign' do
|
40
|
+
@iso8601timezone = ISO8601Timezone.new('-5000')
|
41
|
+
@iso8601timezone.as_string.should == '-5000'
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'GMT' do
|
45
|
+
before(:each) do
|
46
|
+
@iso8601timezone = ISO8601Timezone.new('Z')
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should racognize UTC as Z' do
|
50
|
+
@iso8601timezone.as_string.should == '+0000'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should be gmt(almost)' do
|
54
|
+
@iso8601timezone.is_gmt?.should be_true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
include OpenEHR::AssumedLibraryTypes
|
3
|
+
|
4
|
+
describe TimeDefinitions do
|
5
|
+
describe 'year behavior' do
|
6
|
+
it 'should more than zero in openEHR specification' do
|
7
|
+
TimeDefinitions.should be_valid_year 0
|
8
|
+
end
|
9
|
+
|
10
|
+
it '-1 should not be valid year' do
|
11
|
+
TimeDefinitions.should_not be_valid_year -1
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'nil year should be invaild' do
|
15
|
+
TimeDefinitions.should_not be_valid_year nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
describe 'month behavior' do
|
21
|
+
(1..12).each do |month|
|
22
|
+
it "should valid #{month}" do
|
23
|
+
TimeDefinitions.should be_valid_month month
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it '0th month should be invalid' do
|
28
|
+
TimeDefinitions.should_not be_valid_month 0
|
29
|
+
end
|
30
|
+
|
31
|
+
it '13th month should be invalid' do
|
32
|
+
TimeDefinitions.should_not be_valid_month 13
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'day behavior' do
|
37
|
+
it '0 day should not be valid day' do
|
38
|
+
TimeDefinitions.should_not be_valid_day(1,2,0)
|
39
|
+
end
|
40
|
+
|
41
|
+
it '32 day should not be valid day' do
|
42
|
+
TimeDefinitions.should_not be_valid_day(1,2,32)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should be valid 2009-09-19' do
|
46
|
+
TimeDefinitions.should be_valid_day(2009,9,19)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should be invalid 2009 nil 19' do
|
50
|
+
TimeDefinitions.should_not be_valid_day(2009, nil,19)
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should be invalid nil 09 19' do
|
54
|
+
TimeDefinitions.should_not be_valid_day(nil, 9, 19)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should be valid 2009 09' do
|
58
|
+
TimeDefinitions.should be_valid_day(2009,9,nil)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe 'hour behavior' do
|
63
|
+
it 'should be valid hour 0,0,0' do
|
64
|
+
TimeDefinitions.should be_valid_hour(0,0,0)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should be valid hour 12,59,59' do
|
68
|
+
TimeDefinitions.should be_valid_hour(12,59,59)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should not be valid hour 12,60,59' do
|
72
|
+
TimeDefinitions.should_not be_valid_hour(12,60,59)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'should not be valid hour 12,59,60' do
|
76
|
+
TimeDefinitions.should_not be_valid_hour(12,59,60)
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should be valid hour 24,0,0' do
|
80
|
+
TimeDefinitions.should be_valid_hour(24,0,0)
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should not be valid hour 24,0,1' do
|
84
|
+
TimeDefinitions.should_not be_valid_hour(24,0,1)
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
it 'should be vaild hour 12,1' do
|
89
|
+
TimeDefinitions.should be_valid_hour(12,1)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should not be valid hour 12,nil,1' do
|
93
|
+
TimeDefinitions.should be_valid_hour(12,nil,1)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should be valid hour 12' do
|
97
|
+
TimeDefinitions.should be_valid_hour(12)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe 'minute limit' do
|
102
|
+
it 'should be more than 0' do
|
103
|
+
TimeDefinitions.should be_valid_minute 0
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should be not less than 0' do
|
107
|
+
TimeDefinitions.should_not be_valid_minute -1
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should less than 60' do
|
111
|
+
TimeDefinitions.should be_valid_minute 59
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should not valid minute 60' do
|
115
|
+
TimeDefinitions.should_not be_valid_minute 60
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe 'second limit' do
|
120
|
+
it 'should be more than 0' do
|
121
|
+
TimeDefinitions.should be_valid_second 0
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should be not less than 0' do
|
125
|
+
TimeDefinitions.should_not be_valid_second -1
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'should less than 60' do
|
129
|
+
TimeDefinitions.should be_valid_second 59
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should not valid minute 60' do
|
133
|
+
TimeDefinitions.should_not be_valid_second 60
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Common::Archetyped
|
3
|
+
include OpenEHR::RM::Support::Identification
|
4
|
+
|
5
|
+
describe Archetyped do
|
6
|
+
before(:each) do
|
7
|
+
archetype_id = ArchetypeID.new(:value =>
|
8
|
+
'openEHR-EHR-SECTION.physical_examination.v2')
|
9
|
+
template_id = TemplateID.new(:value =>
|
10
|
+
'uk.nhs.cfh:openehr-EHR-COMPOSITION.admission_ed.v5')
|
11
|
+
@archetyped = Archetyped.new(:archetype_id => archetype_id,
|
12
|
+
:rm_version => '1.2.4',
|
13
|
+
:template_id => template_id)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should be an instance of Archetyped' do
|
17
|
+
@archetyped.should be_an_instance_of Archetyped
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'archetype id concept rm_name should be EHR' do
|
21
|
+
@archetyped.archetype_id.rm_name.should == 'EHR'
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'rm_version should 1.2.4' do
|
25
|
+
@archetyped.rm_version.should == '1.2.4'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'template_id.value should be uk.nhs.cfh:openehr-EHR-COMPOSITION.admission_ed.v5' do
|
29
|
+
@archetyped.template_id.value.should ==
|
30
|
+
'uk.nhs.cfh:openehr-EHR-COMPOSITION.admission_ed.v5'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should raise ArgumentError with nil rm_version' do
|
34
|
+
lambda {
|
35
|
+
@archetyped.rm_version = nil
|
36
|
+
}.should raise_error ArgumentError
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should raise ArgumentError with empty rm_version' do
|
40
|
+
lambda {
|
41
|
+
@archetyped.rm_version = ''
|
42
|
+
}.should raise_error ArgumentError
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should raise ArgumentError with nil ArchetypeID' do
|
46
|
+
lambda {
|
47
|
+
@archetyped.archetype_id = nil
|
48
|
+
}.should raise_error ArgumentError
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Common::Archetyped
|
3
|
+
include OpenEHR::RM::Common::Generic
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
5
|
+
|
6
|
+
describe FeederAuditDetails do
|
7
|
+
before(:each) do
|
8
|
+
provider = stub(PartyIdentified, :name => 'NERV')
|
9
|
+
location = stub(PartyIdentified, :name => '3rd Tokyo')
|
10
|
+
time = stub(DvDateTime, :value => '2009-09-28T19:40')
|
11
|
+
subject = stub(PartyProxy, :type => 'PARTY')
|
12
|
+
@feeder_audit_details =
|
13
|
+
FeederAuditDetails.new(:system_id => 'MELCHIOR',
|
14
|
+
:provider => provider,
|
15
|
+
:location => location,
|
16
|
+
:time => time,
|
17
|
+
:subject => subject,
|
18
|
+
:version_id => '0.5.0')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should be an instance of FeederAuditDetails' do
|
22
|
+
@feeder_audit_details.should be_an_instance_of FeederAuditDetails
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'system_id should be MELCHIOR' do
|
26
|
+
@feeder_audit_details.system_id.should == 'MELCHIOR'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'provider.name should be NERV' do
|
30
|
+
@feeder_audit_details.provider.name.should == 'NERV'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'location.name should be 3rd Tokyo' do
|
34
|
+
@feeder_audit_details.location.name.should == '3rd Tokyo'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'time.value should be 2009-09-28T19:40' do
|
38
|
+
@feeder_audit_details.time.value.should == '2009-09-28T19:40'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'subject.type should be PARTY' do
|
42
|
+
@feeder_audit_details.subject.type.should == 'PARTY'
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'version_id should be 0.5.0' do
|
46
|
+
@feeder_audit_details.version_id.should == '0.5.0'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should reise ArgumentError with nil system_id' do
|
50
|
+
lambda {
|
51
|
+
@feeder_audit_details.system_id = nil
|
52
|
+
}.should raise_error ArgumentError
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should raise ArgumentError with empty syste_id' do
|
56
|
+
lambda {
|
57
|
+
@feeder_audit_details.system_id = ''
|
58
|
+
}.should raise_error ArgumentError
|
59
|
+
end
|
60
|
+
end
|