rtm 0.2.0 → 0.2.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.
Files changed (88) hide show
  1. data/README +38 -3
  2. data/lib/rtm.rb +25 -47
  3. data/lib/rtm/axes.rb +7 -4
  4. data/lib/rtm/axes/association.rb +1 -1
  5. data/lib/rtm/axes/associations.rb +1 -1
  6. data/lib/rtm/axes/characteristic.rb +1 -1
  7. data/lib/rtm/axes/characteristics.rb +1 -1
  8. data/lib/rtm/axes/topic.rb +3 -3
  9. data/lib/rtm/axes/topics.rb +3 -3
  10. data/lib/rtm/engine.rb +48 -5
  11. data/lib/rtm/extensions.rb +58 -8
  12. data/lib/rtm/io.rb +2 -1
  13. data/lib/rtm/io/tmapix_from.rb +155 -0
  14. data/lib/rtm/io/tmapix_to.rb +223 -0
  15. data/lib/rtm/io/to_hash.rb +79 -41
  16. data/lib/rtm/io/to_jtm.rb +1 -1
  17. data/lib/rtm/io/to_rdf.rb +20 -5
  18. data/lib/rtm/io/to_string.rb +13 -2
  19. data/lib/rtm/io/to_yaml.rb +39 -11
  20. data/lib/rtm/navigation.rb +1 -15
  21. data/lib/rtm/navigation/association/players.rb +1 -1
  22. data/lib/rtm/navigation/name/characteristics.rb +1 -1
  23. data/lib/rtm/navigation/occurrence/characteristics.rb +1 -1
  24. data/lib/rtm/navigation/topic/characteristics.rb +1 -1
  25. data/lib/rtm/navigation/topic/players.rb +1 -1
  26. data/lib/rtm/navigation/topic/supertypes.rb +21 -17
  27. data/lib/rtm/navigation/topic/traverse.rb +1 -1
  28. data/lib/rtm/navigation/topic/types.rb +6 -4
  29. data/lib/rtm/psi.rb +6 -0
  30. data/lib/rtm/sugar.rb +42 -29
  31. data/lib/rtm/sugar/association/hash_access.rb +3 -3
  32. data/lib/rtm/sugar/occurrence/dynamic_value.rb +39 -56
  33. data/lib/rtm/sugar/occurrence/external.rb +53 -0
  34. data/lib/rtm/sugar/reifiable/reifier.rb +21 -0
  35. data/lib/rtm/sugar/role/counterparts.rb +12 -6
  36. data/lib/rtm/sugar/topic/best_name.rb +74 -0
  37. data/lib/rtm/sugar/topic/characteristics.rb +10 -10
  38. data/lib/rtm/sugar/topic/counterparts.rb +131 -119
  39. data/lib/rtm/sugar/topic/scoped.rb +102 -53
  40. data/lib/rtm/sugar/topic/topic_ref.rb +63 -12
  41. data/lib/rtm/sugar/topic/typed.rb +50 -2
  42. data/lib/rtm/sugar/topic_map/query_cache.rb +66 -0
  43. data/lib/rtm/sugar/topic_map/themes.rb +53 -0
  44. data/lib/rtm/sugar/typed/types.rb +1 -1
  45. data/lib/rtm/validation.rb +2 -2
  46. data/lib/rtm/version.rb +18 -6
  47. data/spec/rtm/axes/string_spec.rb +7 -7
  48. data/spec/rtm/axes/strings_spec.rb +10 -10
  49. data/spec/rtm/io/tmapix_from_spec.rb +76 -0
  50. data/spec/rtm/io/tmapix_to_spec.rb +159 -0
  51. data/spec/rtm/io/to_hash_spec.rb +90 -0
  52. data/spec/rtm/io/to_rdf_spec.rb +37 -0
  53. data/spec/rtm/io/to_string_spec.rb +122 -0
  54. data/spec/rtm/io/to_yaml_spec.rb +89 -0
  55. data/spec/rtm/sugar/occurrence/dynamic_value_spec.rb +156 -1
  56. data/spec/rtm/sugar/occurrence/external_spec.rb +129 -0
  57. data/spec/rtm/sugar/reifiable/reifier_spec.rb +41 -0
  58. data/spec/rtm/sugar/role/counterparts_spec.rb +174 -172
  59. data/spec/rtm/sugar/topic/best_name_spec.rb +25 -0
  60. data/spec/rtm/sugar/topic/characteristics_spec.rb +20 -5
  61. data/spec/rtm/sugar/topic/counterparts_spec.rb +41 -1
  62. data/spec/rtm/sugar/topic/hash_access_spec.rb +1 -1
  63. data/spec/rtm/sugar/topic/scoped_spec.rb +178 -114
  64. data/spec/rtm/sugar/topic/topic_ref_spec.rb +10 -10
  65. data/spec/rtm/sugar/topic/typed_spec.rb +196 -134
  66. data/spec/rtm/sugar/topic_map/themes_spec.rb +67 -0
  67. data/spec/rtm/sugar/typed/types_spec.rb +1 -1
  68. data/spec/rtm/tmapi/core/association_spec.rb +2 -2
  69. data/spec/rtm/tmapi/core/datatype_aware_spec.rb +236 -0
  70. data/spec/rtm/tmapi/core/name_spec.rb +186 -1
  71. data/spec/rtm/tmapi/core/occurrence_spec.rb +24 -67
  72. data/spec/rtm/tmapi/core/reifiable_spec.rb +2 -2
  73. data/spec/rtm/tmapi/core/scoped_spec.rb +40 -2
  74. data/spec/rtm/tmapi/core/topic_map_spec.rb +98 -30
  75. data/spec/rtm/tmapi/core/topic_spec.rb +558 -82
  76. data/spec/rtm/tmapi/core/variant_spec.rb +3 -3
  77. data/spec/rtm_spec.rb +0 -1
  78. data/spec/spec_helper.rb +7 -2
  79. data/test/javalibs/junit-4.5.jar +0 -0
  80. data/test/javalibs/tmapi-2.0-tests.jar +0 -0
  81. data/test/tmapi_tests.rb +25 -0
  82. metadata +66 -11
  83. data/lib/rtm/io/ontopia_io.rb +0 -25
  84. data/lib/rtm/io/tmapix.rb +0 -234
  85. data/lib/rtm/sugar/occurrence/externalize.rb +0 -31
  86. data/spec/rtm/io/tmapix_spec.rb +0 -85
  87. data/test/base_unit_test.rb +0 -161
  88. data/test/base_unit_test_tmapi.rb +0 -165
@@ -1,7 +1,7 @@
1
1
  # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
2
  # License: Apache License, Version 2.0
3
3
 
4
- module Sugar
4
+ module RTM::Sugar
5
5
  module Typed
6
6
  module Types
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
2
  # License: Apache License, Version 2.0
3
3
 
4
- module RTM::AR
4
+ module RTM
5
5
  module Validation
6
6
 
7
7
  module Association
@@ -58,6 +58,6 @@ module RTM::AR
58
58
  true
59
59
  end
60
60
  end
61
- RTM::AR.register_extension( self )
61
+ RTM.register_extension(self)
62
62
  end
63
63
  end
data/lib/rtm/version.rb CHANGED
@@ -1,16 +1,28 @@
1
1
  module RTM # :nodoc:
2
- module VERSION # :nodoc:
3
- unless defined? MAJOR
4
- DATE = [2010, 2, 5]
2
+ module VERSION # :nodoc:
3
+ unless self.const_defined?("MAJOR")
4
+ require 'date'
5
+ if Object.const_defined?("Gem") && rtmgem = Gem.loaded_specs["rtm"]
6
+ # Try to determine version from Gem, if we're loaded from there
7
+ today = rtmgem.date
8
+ elsif File.exist?(File.join(File.dirname(__FILE__), "../../../.hg"))
9
+ # Try to get the latest Mercurial commit date
10
+ hg_date_string = `hg --cwd "#{File.dirname(__FILE__)}" parent --template "{date|isodate}"`
11
+ today = Date.parse(hg_date_string)
12
+ else
13
+ # Fall back to current day
14
+ today = Date.today
15
+ end
16
+ DATE = [today.year, today.month, today.day]
5
17
  ISODATE = "%04d-%02d-%02d" % DATE # => "2010-01-26"
6
18
  COMPACTDATE = "%04d%02d%02d" % DATE # => "20100126"
7
19
 
8
20
  MAJOR = 0
9
21
  MINOR = 2
10
- TINY = 0
11
- BUILD = COMPACTDATE
22
+ TINY = 1
23
+ BUILD = ENV['BUILD_NUMBER'] || COMPACTDATE
12
24
 
13
- STRING = [MAJOR, MINOR, TINY ].compact.join('.')
25
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
14
26
 
15
27
  SUMMARY = "rtm #{STRING}"
16
28
  end
@@ -82,17 +82,17 @@ module RTM::Axes
82
82
 
83
83
  describe "reverse identifier methods" do
84
84
  before(:all) do
85
- @value = "http://www.specs.de/anything"
86
- @si_value = "http://www.specs.de/test_si"
87
- @ii_value = "http://www.specs.de/test_ii"
88
- @sl_value = "http://www.specs.de/test_sl"
85
+ @value = "http://www.example.org/anything"
86
+ @si_value = "http://www.example.org/test_si"
87
+ @ii_value = "http://www.example.org/test_ii"
88
+ @sl_value = "http://www.example.org/test_sl"
89
89
  @si_topic = @tm.get!("si:" + @si_value)
90
90
  @ii_topic = @tm.get!("ii:" + @ii_value)
91
91
  @sl_topic = @tm.get!("=" + @sl_value)
92
92
  @all_topic = @tm.create_topic
93
- @all_si_value = "http://www.specs.de/all_si"
94
- @all_ii_value = "http://www.specs.de/all_ii"
95
- @all_sl_value = "http://www.specs.de/all_sl"
93
+ @all_si_value = "http://www.example.org/all_si"
94
+ @all_ii_value = "http://www.example.org/all_ii"
95
+ @all_sl_value = "http://www.example.org/all_sl"
96
96
  @all_topic.add_subject_identifier(@all_si_value)
97
97
  @all_topic.add_item_identifier(@all_ii_value)
98
98
  @all_topic.add_subject_locator(@all_sl_value)
@@ -68,13 +68,13 @@ module RTM::Axes
68
68
 
69
69
  describe "reverse identifier methods" do
70
70
  before(:all) do
71
- @value = "http://www.specs.de/anything"
72
- @si_value1 = "http://www.specs.de/test_si_1"
73
- @ii_value1 = "http://www.specs.de/test_ii_1"
74
- @sl_value1 = "http://www.specs.de/test_sl_1"
75
- @si_value2 = "http://www.specs.de/test_si_2"
76
- @ii_value2 = "http://www.specs.de/test_ii_2"
77
- @sl_value2 = "http://www.specs.de/test_sl_2"
71
+ @value = "http://www.example.org/anything"
72
+ @si_value1 = "http://www.example.org/test_si_1"
73
+ @ii_value1 = "http://www.example.org/test_ii_1"
74
+ @sl_value1 = "http://www.example.org/test_sl_1"
75
+ @si_value2 = "http://www.example.org/test_si_2"
76
+ @ii_value2 = "http://www.example.org/test_ii_2"
77
+ @sl_value2 = "http://www.example.org/test_sl_2"
78
78
  @si_topic1 = @tm.get!("si:" + @si_value1)
79
79
  @ii_topic1 = @tm.get!("ii:" + @ii_value1)
80
80
  @sl_topic1 = @tm.get!("=" + @sl_value1)
@@ -82,9 +82,9 @@ module RTM::Axes
82
82
  @ii_topic2 = @tm.get!("ii:" + @ii_value2)
83
83
  @sl_topic2 = @tm.get!("=" + @sl_value2)
84
84
  @all_topic = @tm.create_topic
85
- @all_si_value = "http://www.specs.de/all_si"
86
- @all_ii_value = "http://www.specs.de/all_ii"
87
- @all_sl_value = "http://www.specs.de/all_sl"
85
+ @all_si_value = "http://www.example.org/all_si"
86
+ @all_ii_value = "http://www.example.org/all_ii"
87
+ @all_sl_value = "http://www.example.org/all_sl"
88
88
  @all_topic.add_subject_identifier(@all_si_value)
89
89
  @all_topic.add_item_identifier(@all_ii_value)
90
90
  @all_topic.add_subject_locator(@all_sl_value)
@@ -0,0 +1,76 @@
1
+ # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
+ # License: Apache License, Version 2.0
3
+
4
+ require File.dirname(__FILE__) + '/../../spec_helper'
5
+
6
+ module RTM::IO::TmapiXFrom::TopicMap
7
+
8
+ describe self do
9
+ before(:each) do
10
+ @tm = get_used_tm_sys_tm
11
+ end
12
+ after(:each) do
13
+ @tm.close
14
+ end
15
+
16
+ describe "#from_ltm" do
17
+ it "import into an empty topic map" do
18
+ @tm.from_ltm(File.dirname(__FILE__) + "/../../resources/toyTM.ltm")
19
+ end
20
+ end
21
+
22
+ describe "#from_ctm" do
23
+ it "import into an empty topic map" do
24
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
25
+ end
26
+ end
27
+
28
+ describe "#from_jtm" do
29
+ it "import into an empty topic map" do
30
+ #@tm.from_jtm(File.dirname(__FILE__) + "/../../resources/toyTM.jtm")
31
+ end
32
+ end
33
+
34
+ describe "#from_tmxml" do
35
+ it "import into an empty topic map" do
36
+ #@tm.from_tmxml(File.dirname(__FILE__) + "/../../resources/toyTM.tmxml")
37
+ end
38
+ end
39
+
40
+ describe "#from_xtm10" do
41
+ it "import into an empty topic map" do
42
+ #@tm.from_xtm10(File.dirname(__FILE__) + "/../../resources/toyTM_xtm10.xtm")
43
+ end
44
+ it "should provide an alias for from_xtm1" do
45
+ @tm.method(:from_xtm1).should == @tm.method(:from_xtm10)
46
+ end
47
+ end
48
+
49
+ describe "#from_xtm20" do
50
+ it "import into an empty topic map" do
51
+ @tm.from_xtm20(File.dirname(__FILE__) + "/../../resources/toyTM.xtm")
52
+ end
53
+ it "should provide an alias for from_xtm2" do
54
+ @tm.method(:from_xtm2).should == @tm.method(:from_xtm20)
55
+ end
56
+ end
57
+
58
+ describe "#from_xtm" do
59
+ it "import into an empty topic map from xtm v2.0" do
60
+ @tm.from_xtm20(File.dirname(__FILE__) + "/../../resources/toyTM.xtm")
61
+ end
62
+ it "import into an empty topic map from xtm v1.0" do
63
+ #@tm.from_xtm10(File.dirname(__FILE__) + "/../../resources/toyTM_xtm10.xtm")
64
+ end
65
+ end
66
+
67
+ describe "#from_n3" do
68
+ it "should be tested"
69
+ end
70
+
71
+ describe "#from_rdfxml" do
72
+ it "should be tested"
73
+ end
74
+
75
+ end
76
+ end
@@ -0,0 +1,159 @@
1
+ # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
+ # License: Apache License, Version 2.0
3
+
4
+ require File.dirname(__FILE__) + '/../../spec_helper'
5
+
6
+ module RTM::IO::TmapiXTo::TopicMap
7
+
8
+ describe self do
9
+ before(:each) do
10
+ @tm = get_used_tm_sys_tm
11
+ end
12
+ after(:each) do
13
+ @tm.close
14
+ end
15
+
16
+ describe "#to_xtm20" do
17
+ before(:each) do
18
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
19
+ end
20
+ it "should serialize a topic map to String" do
21
+ @tm.to_xtm20.should be_a_kind_of String
22
+ end
23
+ it "should serialize a topic map to a file" do
24
+ @tm.to_xtm20(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.xtm20").should be_true
25
+ end
26
+ it "should serialize a topic map to a file given a base iri" do
27
+ @tm.to_xtm20(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.xtm20", "http://www.example.org/testtm").should be_true
28
+ end
29
+ it "should serialize a topic map to a java.io.Stream" do
30
+ @tm.to_xtm20(java.io.ByteArrayOutputStream.new).should be_true
31
+ end
32
+ it "should be the case that the xtm20 writer does not respond to :setProperty" do
33
+ org.tmapix.io.XTM20TopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should_not respond_to(:setProperty)
34
+ end
35
+ it "should provide an alias for to_xtm" do
36
+ @tm.method(:to_xtm).should == @tm.method(:to_xtm20)
37
+ end
38
+ it "should provide an alias for to_xtm2" do
39
+ @tm.method(:to_xtm2).should == @tm.method(:to_xtm20)
40
+ end
41
+ end
42
+
43
+ describe "#to_xtm10" do
44
+ before(:each) do
45
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
46
+ end
47
+ it "should serialize a topic map to String" do
48
+ @tm.to_xtm10.should be_a_kind_of String
49
+ end
50
+ it "should serialize a topic map to a file" do
51
+ @tm.to_xtm10(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.xtm10").should be_true
52
+ end
53
+ it "should serialize a topic map to a file given a base iri" do
54
+ @tm.to_xtm10(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.xtm10", "http://www.example.org/testtm").should be_true
55
+ end
56
+ it "should serialize a topic map to a java.io.Stream" do
57
+ @tm.to_xtm10(java.io.ByteArrayOutputStream.new).should be_true
58
+ end
59
+ it "should be the case that the xtm10 writer does not respond to :setProperty" do
60
+ org.tmapix.io.XTM10TopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should_not respond_to(:setProperty)
61
+ end
62
+ it "should provide an alias for to_xtm1" do
63
+ @tm.method(:to_xtm1).should == @tm.method(:to_xtm10)
64
+ end
65
+ end
66
+
67
+ describe "#to_jtm" do
68
+ before(:each) do
69
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
70
+ end
71
+ it "should serialize a topic map to String" do
72
+ @tm.to_jtm.should be_a_kind_of String
73
+ end
74
+ it "should serialize a topic map to a file" do
75
+ @tm.to_jtm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.jtm").should be_true
76
+ end
77
+ it "should serialize a topic map to a file given a base iri" do
78
+ @tm.to_jtm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.jtm", "http://www.example.org/testtm").should be_true
79
+ end
80
+ it "should serialize a topic map to a java.io.Stream" do
81
+ @tm.to_jtm(java.io.ByteArrayOutputStream.new).should be_true
82
+ end
83
+ it "should be the case that the xtm10 writer does not respond to :setProperty" do
84
+ org.tmapix.io.JTMTopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should_not respond_to(:setProperty)
85
+ end
86
+ it "should provide an alias fpr to_json" do
87
+ @tm.method(:to_json).should == @tm.method(:to_jtm)
88
+ end
89
+ end
90
+
91
+ describe "#to_ltm" do
92
+ before(:each) do
93
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
94
+ end
95
+ it "should serialize a topic map to String" do
96
+ @tm.to_ltm.should be_a_kind_of String
97
+ end
98
+ it "should serialize a topic map to a file" do
99
+ @tm.to_ltm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.ltm").should be_true
100
+ end
101
+ it "should serialize a topic map to a file given a base iri" do
102
+ @tm.to_ltm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.ltm", "http://www.example.org/testtm").should be_true
103
+ end
104
+ it "should serialize a topic map to a java.io.Stream" do
105
+ @tm.to_ltm(java.io.ByteArrayOutputStream.new).should be_true
106
+ end
107
+ it "should be the case that the xtm10 writer does not respond to :setProperty" do
108
+ org.tmapix.io.LTMTopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should_not respond_to(:setProperty)
109
+ end
110
+ end
111
+
112
+ describe "#to_tmxml" do
113
+ before(:each) do
114
+ @tm.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM.ctm")
115
+ end
116
+ it "should serialize a topic map to String" do
117
+ @tm.to_tmxml.should be_a_kind_of String
118
+ end
119
+ it "should serialize a topic map to a file" do
120
+ @tm.to_tmxml(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.tmxml").should be_true
121
+ end
122
+ it "should serialize a topic map to a file given a base iri" do
123
+ @tm.to_tmxml(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.tmxml", "http://www.example.org/testtm").should be_true
124
+ end
125
+ it "should serialize a topic map to a java.io.Stream" do
126
+ @tm.to_tmxml(java.io.ByteArrayOutputStream.new).should be_true
127
+ end
128
+ it "should be the case that the xtm10 writer does not respond to :setProperty" do
129
+ org.tmapix.io.TMXMLTopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should_not respond_to(:setProperty)
130
+ end
131
+ end
132
+
133
+ describe "#to_ctm" do
134
+ before(:each) do
135
+ @tm.from_xtm(File.dirname(__FILE__) + "/../../resources/toyTM.xtm")
136
+ end
137
+ it "should serialize a topic map to String" do
138
+ @tm.to_ctm.should be_a_kind_of String
139
+ end
140
+ it "should serialize a topic map to a file" do
141
+ @tm.to_ctm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.ctm").should be_true
142
+ end
143
+ it "should serialize a topic map to a file given a base iri" do
144
+ @tm.to_ctm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.ctm", "http://www.example.org/testtm").should be_true
145
+ end
146
+ it "should serialize a topic map to a java.io.Stream" do
147
+ @tm.to_ctm(java.io.ByteArrayOutputStream.new).should be_true
148
+ end
149
+ it "should be the case that the xtm10 writer does respond to :setProperty" do
150
+ de.topicmapslab.ctm.writer.core.CTMTopicMapWriter.new(java.io.ByteArrayOutputStream.new,"http://www.example.org/testtm").should respond_to(:setProperty)
151
+ end
152
+ it "should read it afterwards" do
153
+ emptyTM = get_used_tm_sys.create("http://blub.org/")
154
+ emptyTM.from_ctm(File.dirname(__FILE__) + "/../../resources/toyTM_after_spec.ctm")
155
+ end
156
+ end
157
+
158
+ end
159
+ end
@@ -0,0 +1,90 @@
1
+ # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
+ # License: Apache License, Version 2.0
3
+
4
+ require File.dirname(__FILE__) + '/../../spec_helper'
5
+
6
+ module RTM::IO::ToHash
7
+
8
+ describe self do
9
+ before(:each) do
10
+ @tm = get_used_tm_sys_tm
11
+ @tm.reifier!
12
+ @topic = @tm.get!("a:b")
13
+ @name = @topic.create_name("name type", "name value", ["theme1", "theme2"])
14
+ @name.reifier!
15
+ @var = @name.create_variant(1234, RTM::PSI[:String], ["theme5"])
16
+ @var.reifier!
17
+ @occ = @topic.create_occurrence("occ type", "occ value", :datatype => RTM::PSI[:IRI], :scope => ["theme3", "theme4"])
18
+ @occ.reifier!
19
+ @assoc = @tm.create_association("assoc type", ["theme6", "theme7"])
20
+ @assoc.reifier!
21
+ @role = @assoc.create_role("role type", "role player")
22
+ @role.reifier!
23
+ @locator = @tm.create_locator("http://www.example.org/test this locator")
24
+ end
25
+ after(:each) do
26
+ @output.should be_a_kind_of Hash
27
+ @tm.close
28
+ end
29
+
30
+ describe "#to_hash" do
31
+ describe "for TopicMap" do
32
+ before(:each) do
33
+ @tm.should be_a_kind_of RTM::TopicMap
34
+ end
35
+ it "should give back a Hash" do
36
+ @output = @tm.to_hash
37
+ end
38
+ end
39
+ describe "for Topic" do
40
+ before(:each) do
41
+ @topic.should be_a_kind_of RTM::Topic
42
+ end
43
+ it "should give back a Hash" do
44
+ @output = @topic.to_hash
45
+ end
46
+ end
47
+ describe "for Association" do
48
+ before(:each) do
49
+ @assoc.should be_a_kind_of RTM::Association
50
+ end
51
+ it "should give back a Hash" do
52
+ @output = @assoc.to_hash
53
+ end
54
+ end
55
+ describe "for Role" do
56
+ before(:each) do
57
+ @role.should be_a_kind_of RTM::Role
58
+ end
59
+ it "should give back a Hash" do
60
+ @output = @role.to_hash
61
+ end
62
+ end
63
+ describe "for Name" do
64
+ before(:each) do
65
+ @name.should be_a_kind_of RTM::Name
66
+ end
67
+ it "should give back a Hash" do
68
+ @output = @name.to_hash
69
+ end
70
+ end
71
+ describe "for Occurrence" do
72
+ before(:each) do
73
+ @occ.should be_a_kind_of RTM::Occurrence
74
+ end
75
+ it "should give back a Hash" do
76
+ @output = @occ.to_hash
77
+ end
78
+ end
79
+ describe "for Variant" do
80
+ before(:each) do
81
+ @var.should be_a_kind_of RTM::Variant
82
+ end
83
+ it "should give back a Hash" do
84
+ @output = @var.to_hash
85
+ end
86
+ end
87
+ end
88
+ end
89
+
90
+ end