hydra-pbcore 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +6 -0
  3. data/lib/hydra-pbcore.rb +60 -1
  4. data/lib/hydra-pbcore/behaviors.rb +4 -2
  5. data/lib/hydra-pbcore/conversions.rb +88 -0
  6. data/lib/hydra-pbcore/datastream/{digital_document.rb → deprecated/digital_document.rb} +3 -2
  7. data/lib/hydra-pbcore/datastream/deprecated/document.rb +310 -0
  8. data/lib/hydra-pbcore/datastream/deprecated/instantiation.rb +261 -0
  9. data/lib/hydra-pbcore/datastream/document.rb +37 -139
  10. data/lib/hydra-pbcore/datastream/instantiation.rb +184 -223
  11. data/lib/hydra-pbcore/methods.rb +23 -2
  12. data/lib/hydra-pbcore/templates.rb +116 -0
  13. data/lib/hydra-pbcore/version.rb +1 -1
  14. data/spec/{digital_document_spec.rb → deprecated/digital_document_spec.rb} +6 -26
  15. data/spec/deprecated/document_spec.rb +282 -0
  16. data/spec/deprecated/instantiation_spec.rb +214 -0
  17. data/spec/document_spec.rb +71 -194
  18. data/spec/fixtures/converted_digital_document_rrhof_1904.xml +53 -0
  19. data/spec/fixtures/converted_digital_document_rrhof_2405.xml +46 -0
  20. data/spec/fixtures/converted_document_rrhof_2439.xml +19 -0
  21. data/spec/fixtures/converted_document_rrhof_524.xml +45 -0
  22. data/spec/fixtures/converted_instantiation_rrhof_1184.xml +39 -0
  23. data/spec/fixtures/converted_rrhof_524.xml +45 -0
  24. data/spec/fixtures/converted_rrhof_524_instantiation.xml +18 -0
  25. data/spec/fixtures/{pbcore_digital_document_template.xml → deprecated/pbcore_digital_document_template.xml} +0 -0
  26. data/spec/fixtures/{pbcore_document_template.xml → deprecated/pbcore_document_template.xml} +0 -0
  27. data/spec/fixtures/{pbcore_instantiation_template.xml → deprecated/pbcore_instantiation_template.xml} +0 -0
  28. data/spec/fixtures/{pbcore_solr_digital_document_template.xml → deprecated/pbcore_solr_digital_document_template.xml} +0 -0
  29. data/spec/fixtures/{pbcore_solr_document_template.xml → deprecated/pbcore_solr_document_template.xml} +0 -0
  30. data/spec/fixtures/{pbcore_solr_instantiation_template.xml → deprecated/pbcore_solr_instantiation_template.xml} +0 -0
  31. data/spec/fixtures/digital_instantiation.xml +56 -0
  32. data/spec/fixtures/digital_instantiation_solr.xml +1913 -0
  33. data/spec/fixtures/digital_instantiation_template.xml +33 -0
  34. data/spec/fixtures/document.xml +72 -0
  35. data/spec/fixtures/document_solr.xml +582 -0
  36. data/spec/fixtures/document_template.xml +30 -0
  37. data/spec/fixtures/integration/digital_document_rrhof_1904.xml +63 -0
  38. data/spec/fixtures/integration/digital_document_rrhof_2405.xml +62 -0
  39. data/spec/fixtures/integration/document_rrhof_2439.xml +54 -0
  40. data/spec/fixtures/integration/document_rrhof_524.xml +80 -0
  41. data/spec/fixtures/integration/instantiation_rrhof_1184.xml +44 -0
  42. data/spec/fixtures/physical_instantiation.xml +20 -0
  43. data/spec/fixtures/physical_instantiation_solr.xml +441 -0
  44. data/spec/fixtures/physical_instantiation_template.xml +18 -0
  45. data/spec/instantiation_spec.rb +180 -132
  46. data/spec/integration/conversions_spec.rb +73 -0
  47. data/spec/spec_helper.rb +37 -9
  48. data/spec/templates_spec.rb +31 -0
  49. metadata +68 -17
@@ -36,6 +36,24 @@ module HydraPbcore::Templates
36
36
  }
37
37
  end
38
38
 
39
+ define_template :event_place do |xml, location|
40
+ xml.pbcoreCoverage {
41
+ xml.coverage(location, :annotation=>"Event Place")
42
+ xml.coverageType {
43
+ xml.text "Spatial"
44
+ }
45
+ }
46
+ end
47
+
48
+ define_template :event_date do |xml, date|
49
+ xml.pbcoreCoverage {
50
+ xml.coverage(date, :annotation=>"Event Date")
51
+ xml.coverageType {
52
+ xml.text "Temporal"
53
+ }
54
+ }
55
+ end
56
+
39
57
  end
40
58
  end
41
59
 
@@ -55,4 +73,102 @@ module HydraPbcore::Templates
55
73
  add_child_node(find_by_terms(:pbcoreInstantiation).first, :previous, file)
56
74
  end
57
75
 
76
+ def insert_place(location)
77
+ add_child_node(ng_xml.root, :event_place, location)
78
+ end
79
+
80
+ def insert_date(date)
81
+ add_child_node(ng_xml.root, :event_date, date)
82
+ end
83
+
84
+ def digital_instantiation
85
+ builder = Nokogiri::XML::Builder.new do |xml|
86
+
87
+ xml.pbcoreInstantiation {
88
+
89
+ xml.instantiationIdentifier(:annotation=>"Filename", :source=>"Rock and Roll Hall of Fame and Museum")
90
+ xml.instantiationDate(:dateType=>"created")
91
+ xml.instantiationDigital(:source=>"EBU file formats")
92
+ xml.instantiationLocation
93
+ xml.instantiationMediaType(:source=>"PBCore instantiationMediaType") {
94
+ xml.text "Moving image"
95
+ }
96
+ xml.instantiationGenerations(:source=>"PBCore instantiationGenerations")
97
+ xml.instantiationFileSize(:unitsOfMeasure=>"")
98
+ xml.instantiationDuration
99
+ xml.instantiationColors(:source=>"PBCore instantiationColors") {
100
+ xml.text "Color"
101
+ }
102
+
103
+ xml.instantiationEssenceTrack {
104
+ xml.essenceTrackType {
105
+ xml.text "Video"
106
+ }
107
+ xml.essenceTrackStandard
108
+ xml.essenceTrackEncoding(:source=>"PBCore essenceTrackEncoding")
109
+ xml.essenceTrackDataRate(:unitsOfMeasure=>"")
110
+ xml.essenceTrackFrameRate(:unitsOfMeasure=>"fps")
111
+ xml.essenceTrackBitDepth
112
+ xml.essenceTrackFrameSize(:source=>"PBCore essenceTrackFrameSize")
113
+ xml.essenceTrackAspectRatio(:source=>"PBCore essenceTrackAspectRatio")
114
+ }
115
+
116
+ xml.instantiationEssenceTrack {
117
+ xml.essenceTrackType {
118
+ xml.text "Audio"
119
+ }
120
+ xml.essenceTrackStandard
121
+ xml.essenceTrackEncoding(:source=>"PBCore essenceTrackEncoding")
122
+ xml.essenceTrackDataRate(:unitsOfMeasure=>"")
123
+ xml.essenceTrackSamplingRate(:unitsOfMeasure=>"")
124
+ xml.essenceTrackBitDepth
125
+ xml.essenceTrackAnnotation(:annotationType=>"Number of Audio Channels")
126
+ }
127
+
128
+ xml.instantiationRights {
129
+ xml.rightsSummary
130
+ }
131
+
132
+ }
133
+
134
+ end
135
+ return builder.doc
136
+ end
137
+
138
+ def physical_instantiation
139
+ builder = Nokogiri::XML::Builder.new do |xml|
140
+
141
+ xml.pbcoreInstantiation {
142
+
143
+ # Item details
144
+ xml.instantiationIdentifier(:annotation=>"Barcode", :source=>"Rock and Roll Hall of Fame and Museum")
145
+ xml.instantiationDate(:dateType=>"created")
146
+ xml.instantiationPhysical(:source=>"PBCore instantiationPhysical")
147
+ xml.instantiationStandard
148
+ xml.instantiationLocation {
149
+ xml.text "Rock and Roll Hall of Fame and Museum,\n2809 Woodland Ave.,\nCleveland, OH, 44115\n216-515-1956\nlibrary@rockhall.org"
150
+ }
151
+ xml.instantiationMediaType(:source=>"PBCore instantiationMediaType") {
152
+ xml.text "Moving image"
153
+ }
154
+ xml.instantiationGenerations(:source=>"PBCore instantiationGenerations") {
155
+ xml.text "Original"
156
+ }
157
+ xml.instantiationColors(:source=>"PBCore instantiationColors") {
158
+ xml.text "Color"
159
+ }
160
+ xml.instantiationLanguage(:source=>"ISO 639.2", :ref=>"http://www.loc.gov/standards/iso639-2/php/code_list.php") {
161
+ xml.text "eng"
162
+ }
163
+ xml.instantiationRights {
164
+ xml.rightsSummary
165
+ }
166
+
167
+ }
168
+
169
+ end
170
+ return builder.doc
171
+ end
172
+
173
+
58
174
  end
@@ -1,3 +1,3 @@
1
1
  module HydraPbcore
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,9 +1,9 @@
1
1
  require "spec_helper"
2
2
 
3
- describe HydraPbcore::Datastream::DigitalDocument do
3
+ describe HydraPbcore::Datastream::Deprecated::DigitalDocument do
4
4
 
5
5
  before(:each) do
6
- @object_ds = HydraPbcore::Datastream::DigitalDocument.new(nil, nil)
6
+ @object_ds = HydraPbcore::Datastream::Deprecated::DigitalDocument.new(nil, nil)
7
7
  end
8
8
 
9
9
  describe ".update_indexed_attributes" do
@@ -105,8 +105,8 @@ describe HydraPbcore::Datastream::DigitalDocument do
105
105
  @object_ds.update_indexed_attributes({ [:subject] => { 0 => "inserted" }} )
106
106
  @object_ds.update_indexed_attributes({ [:genre] => { 0 => "inserted" }} )
107
107
 
108
- # Load example fixture
109
- f = fixture "pbcore_digital_document_template.xml"
108
+ # Load example deprecated_fixture
109
+ f = deprecated_fixture "pbcore_digital_document_template.xml"
110
110
  ref_node = Nokogiri::XML(f)
111
111
  f.close
112
112
 
@@ -126,17 +126,6 @@ describe HydraPbcore::Datastream::DigitalDocument do
126
126
  end
127
127
 
128
128
  describe ".insert_node" do
129
- it "should return a node and index for a given template type" do
130
- pending "Don't need this?"
131
- ["publisher", "contributor"].each do |type|
132
- node, index = @object_ds.insert_node(type.to_s)
133
- index.should == 0
134
- @object_ds.dirty?.should be_true
135
- node, index = @object_ds.insert_node(type.to_s)
136
- index.should == 1
137
- end
138
- end
139
-
140
129
  it "should raise an exception for non-exisitent templates" do
141
130
  lambda { @object_ds.insert_node("blarg") }.should raise_error
142
131
  end
@@ -157,15 +146,6 @@ describe HydraPbcore::Datastream::DigitalDocument do
157
146
 
158
147
  end
159
148
 
160
- describe "default fields" do
161
-
162
- it "such as media type should be 'Moving image'" do
163
- pending "No default fields defined yet"
164
- @object_ds.get_values([:media_type]).first.should == "Moving image"
165
- end
166
-
167
- end
168
-
169
149
  describe ".to_solr" do
170
150
 
171
151
  before(:each) do
@@ -229,8 +209,8 @@ describe HydraPbcore::Datastream::DigitalDocument do
229
209
  end
230
210
 
231
211
  it "should match an exmplar" do
232
- # Load example fixture
233
- f = fixture "pbcore_solr_digital_document_template.xml"
212
+ # Load example deprecated_fixture
213
+ f = deprecated_fixture "pbcore_solr_digital_document_template.xml"
234
214
  ref_node = Nokogiri::XML(f)
235
215
  f.close
236
216
 
@@ -0,0 +1,282 @@
1
+ require "spec_helper"
2
+
3
+ describe HydraPbcore::Datastream::Deprecated::Document do
4
+
5
+ before(:each) do
6
+ @object_ds = HydraPbcore::Datastream::Deprecated::Document.new(nil, nil)
7
+ end
8
+
9
+ describe ".update_indexed_attributes" do
10
+ it "should update all of the fields in #xml_template and fields not requiring additional inserted nodes" do
11
+ [
12
+ [:pbc_id],
13
+ [:main_title],
14
+ [:alternative_title],
15
+ [:chapter],
16
+ [:episode],
17
+ [:label],
18
+ [:segment],
19
+ [:subtitle],
20
+ [:track],
21
+ [:translation],
22
+ [:summary],
23
+ [:parts_list],
24
+ [:lc_subject],
25
+ [:lc_name],
26
+ [:rh_subject],
27
+ [:getty_genre],
28
+ [:lc_genre],
29
+ [:lc_subject_genre],
30
+ [:event_series],
31
+ [:event_place],
32
+ [:contributor_name],
33
+ [:contributor_role],
34
+ [:publisher_name],
35
+ [:publisher_role],
36
+ [:note],
37
+ [:barcode],
38
+ [:repository],
39
+ [:format],
40
+ [:standard],
41
+ [:media_type],
42
+ [:generation],
43
+ [:language],
44
+ [:colors],
45
+ [:archival_collection],
46
+ [:archival_series],
47
+ [:collection_number],
48
+ [:accession_number],
49
+ [:usage],
50
+ [:condition_note],
51
+ [:cleaning_note]
52
+ ].each do |pointer|
53
+ test_val = "#{pointer.last.to_s} value"
54
+ @object_ds.update_values( {pointer=>{"0"=>test_val}} )
55
+ @object_ds.get_values(pointer).first.should == test_val
56
+ @object_ds.get_values(pointer).length.should == 1
57
+ end
58
+ end
59
+
60
+ it "should work for fields that require added xml nodes" do
61
+ @object_ds.insert_publisher
62
+ @object_ds.insert_contributor
63
+ [
64
+ [:publisher_name],
65
+ [:publisher_role],
66
+ [:contributor_name],
67
+ [:contributor_role]
68
+ ].each do |pointer|
69
+ test_val = "#{pointer.last.to_s} value"
70
+ @object_ds.update_indexed_attributes( {pointer=>{"0"=>test_val}} )
71
+ @object_ds.get_values(pointer).first.should == test_val
72
+ @object_ds.get_values(pointer).length.should == 1
73
+ end
74
+ end
75
+
76
+ it "should differentiate between multiple added nodes" do
77
+ @object_ds.insert_contributor
78
+ @object_ds.insert_contributor
79
+ @object_ds.update_indexed_attributes( {[:contributor_name] => { 0 => "first contributor" }} )
80
+ @object_ds.update_indexed_attributes( {[:contributor_name] => { 1 => "second contributor" }} )
81
+ @object_ds.update_indexed_attributes( {[:contributor_role] => { 0 => "first contributor role" }} )
82
+ @object_ds.update_indexed_attributes( {[:contributor_role] => { 1 => "second contributor role" }} )
83
+ @object_ds.get_values(:contributor).length.should == 2
84
+ @object_ds.get_values(:contributor_name)[0].should == "first contributor"
85
+ @object_ds.get_values(:contributor_name)[1].should == "second contributor"
86
+ @object_ds.get_values(:contributor_role)[0].should == "first contributor role"
87
+ @object_ds.get_values(:contributor_role)[1].should == "second contributor role"
88
+ end
89
+
90
+ end
91
+
92
+ describe "#xml_template" do
93
+ it "should return an empty xml document matching a valid exmplar" do
94
+ # insert additional nodes
95
+ @object_ds.insert_publisher("inserted", "inserted")
96
+ @object_ds.insert_contributor("inserted", "inserted")
97
+ @object_ds.insert_publisher("inserted")
98
+ @object_ds.insert_contributor("inserted")
99
+ @object_ds.insert_contributor
100
+
101
+ # update additional nodes that OM will insert automatically
102
+ @object_ds.update_indexed_attributes({ [:alternative_title] => { 0 => "inserted" }} )
103
+ @object_ds.update_indexed_attributes({ [:chapter] => { 0 => "inserted" }} )
104
+ @object_ds.update_indexed_attributes({ [:episode] => { 0 => "inserted" }} )
105
+ @object_ds.update_indexed_attributes({ [:label] => { 0 => "inserted" }} )
106
+ @object_ds.update_indexed_attributes({ [:segment] => { 0 => "inserted" }} )
107
+ @object_ds.update_indexed_attributes({ [:subtitle] => { 0 => "inserted" }} )
108
+ @object_ds.update_indexed_attributes({ [:track] => { 0 => "inserted" }} )
109
+ @object_ds.update_indexed_attributes({ [:translation] => { 0 => "inserted" }} )
110
+ @object_ds.update_indexed_attributes({ [:lc_subject] => { 0 => "inserted" }} )
111
+ @object_ds.update_indexed_attributes({ [:lc_name] => { 0 => "inserted" }} )
112
+ @object_ds.update_indexed_attributes({ [:rh_subject] => { 0 => "inserted" }} )
113
+ @object_ds.update_indexed_attributes({ [:getty_genre] => { 0 => "inserted" }} )
114
+ @object_ds.update_indexed_attributes({ [:lc_genre] => { 0 => "inserted" }} )
115
+ @object_ds.update_indexed_attributes({ [:lc_subject_genre] => { 0 => "inserted" }} )
116
+ @object_ds.update_indexed_attributes({ [:subject] => { 0 => "inserted" }} )
117
+ @object_ds.update_indexed_attributes({ [:genre] => { 0 => "inserted" }} )
118
+ @object_ds.update_indexed_attributes({ [:condition_note] => { 0 => "inserted" }} )
119
+ @object_ds.update_indexed_attributes({ [:cleaning_note] => { 0 => "inserted" }} )
120
+
121
+ # Load example deprecated_fixture
122
+ f = deprecated_fixture "pbcore_document_template.xml"
123
+ ref_node = Nokogiri::XML(f)
124
+ f.close
125
+
126
+ # Nokogiri-fy our sample document and reorder nodes
127
+ sample_node = Nokogiri::XML(@object_ds.to_xml)
128
+ reordered = HydraPbcore::Behaviors.reorder_document(sample_node)
129
+
130
+ # Save this for later...
131
+ out = File.new("tmp/pbcore_document_sample.xml", "w")
132
+ out.write(reordered.to_s)
133
+ out.close
134
+
135
+ EquivalentXml.equivalent?(ref_node, reordered, opts = { :element_order => false, :normalize_whitespace => true }).should be_true
136
+ HydraPbcore::Behaviors.validate(reordered).should be_empty
137
+
138
+ end
139
+ end
140
+
141
+ describe ".remove_node" do
142
+ it "should remove a node a given type and index" do
143
+ ["publisher", "contributor"].each do |type|
144
+ @object_ds.send("insert_"+type)
145
+ @object_ds.send("insert_"+type)
146
+ @object_ds.find_by_terms(type.to_sym).count.should == 2
147
+ @object_ds.remove_node(type.to_sym, "1")
148
+ @object_ds.find_by_terms(type.to_sym).count.should == 1
149
+ @object_ds.remove_node(type.to_sym, "0")
150
+ @object_ds.find_by_terms(type.to_sym).count.should == 0
151
+ end
152
+ end
153
+
154
+ end
155
+
156
+ describe "default fields" do
157
+
158
+ it "such as media type should be 'Moving image'" do
159
+ @object_ds.get_values([:media_type]).first.should == "Moving image"
160
+ end
161
+
162
+ it "such as colors should be 'Color'" do
163
+ @object_ds.get_values([:colors]).first.should == "Color"
164
+ end
165
+
166
+ it "such as generation should be 'Original'" do
167
+ @object_ds.get_values([:generation]).first.should == "Original"
168
+ end
169
+
170
+ end
171
+
172
+ describe ".to_solr" do
173
+
174
+ before(:each) do
175
+ # insert additional nodes
176
+ @object_ds.insert_publisher
177
+ @object_ds.insert_contributor
178
+ [
179
+ "main_title",
180
+ "alternative_title",
181
+ "chapter",
182
+ "episode",
183
+ "label",
184
+ "segment",
185
+ "subtitle",
186
+ "track",
187
+ "translation",
188
+ "summary",
189
+ "parts_list",
190
+ "lc_subject",
191
+ "lc_name",
192
+ "rh_subject",
193
+ "getty_genre",
194
+ "lc_genre",
195
+ "lc_subject_genre",
196
+ "event_series",
197
+ "event_place",
198
+ "event_date",
199
+ "contributor_name",
200
+ "contributor_role",
201
+ "publisher_name",
202
+ "publisher_role",
203
+ "note",
204
+ "creation_date",
205
+ "barcode",
206
+ "repository",
207
+ "format",
208
+ "standard",
209
+ "media_type",
210
+ "generation",
211
+ "language",
212
+ "colors",
213
+ "archival_collection",
214
+ "archival_series",
215
+ "collection_number",
216
+ "accession_number",
217
+ "usage",
218
+ "condition_note",
219
+ "cleaning_note"
220
+ ].each do |field|
221
+ @object_ds.send("#{field}=".to_sym, field)
222
+ end
223
+ # update additional nodes that OM will insert automatically
224
+ @object_ds.update_indexed_attributes({ [:alternative_title] => { 0 => "inserted" }} )
225
+ @object_ds.update_indexed_attributes({ [:chapter] => { 0 => "inserted" }} )
226
+ @object_ds.update_indexed_attributes({ [:episode] => { 0 => "inserted" }} )
227
+ @object_ds.update_indexed_attributes({ [:label] => { 0 => "inserted" }} )
228
+ @object_ds.update_indexed_attributes({ [:segment] => { 0 => "inserted" }} )
229
+ @object_ds.update_indexed_attributes({ [:subtitle] => { 0 => "inserted" }} )
230
+ @object_ds.update_indexed_attributes({ [:track] => { 0 => "inserted" }} )
231
+ @object_ds.update_indexed_attributes({ [:translation] => { 0 => "inserted" }} )
232
+ @object_ds.update_indexed_attributes({ [:lc_subject] => { 0 => "inserted" }} )
233
+ @object_ds.update_indexed_attributes({ [:lc_name] => { 0 => "inserted" }} )
234
+ @object_ds.update_indexed_attributes({ [:rh_subject] => { 0 => "inserted" }} )
235
+ @object_ds.update_indexed_attributes({ [:getty_genre] => { 0 => "inserted" }} )
236
+ @object_ds.update_indexed_attributes({ [:lc_genre] => { 0 => "inserted" }} )
237
+ @object_ds.update_indexed_attributes({ [:lc_subject_genre] => { 0 => "inserted" }} )
238
+ @object_ds.update_indexed_attributes({ [:subject] => { 0 => "inserted" }} )
239
+ @object_ds.update_indexed_attributes({ [:genre] => { 0 => "inserted" }} )
240
+ @object_ds.update_indexed_attributes({ [:condition_note] => { 0 => "inserted" }} )
241
+ @object_ds.update_indexed_attributes({ [:cleaning_note] => { 0 => "inserted" }} )
242
+
243
+ # Use ISO 8601 dates
244
+ @object_ds.event_date = "2012-11-11"
245
+ @object_ds.creation_date = "2012"
246
+ end
247
+
248
+ it "should match an exmplar" do
249
+ # Load example deprecated_fixture
250
+ f = deprecated_fixture "pbcore_solr_document_template.xml"
251
+ ref_node = Nokogiri::XML(f)
252
+ f.close
253
+
254
+ # Nokogiri-fy our sample document
255
+ sample_node = Nokogiri::XML(@object_ds.to_solr.to_xml)
256
+
257
+ # Save this for later...
258
+ out = File.new("tmp/pbcore_solr_document_sample.xml", "w")
259
+ out.write(sample_node.to_s)
260
+ out.close
261
+
262
+ EquivalentXml.equivalent?(ref_node, sample_node, opts = { :element_order => false, :normalize_whitespace => true }).should be_true
263
+ end
264
+
265
+ it "should display dates as they were entered" do
266
+ @object_ds.to_solr["creation_date_display"].should == ["2012"]
267
+ @object_ds.to_solr["event_date_display"].should == ["2012-11-11"]
268
+ end
269
+
270
+ it "should have dates converted to ISO 8601" do
271
+ @object_ds.to_solr["creation_date_dt"].should == ["2012-01-01T00:00:00Z"]
272
+ @object_ds.to_solr["event_date_dt"].should == ["2012-11-11T00:00:00Z"]
273
+ end
274
+
275
+ it "should not index dates as text" do
276
+ @object_ds.to_solr["creation_date_t"].should be_nil
277
+ @object_ds.to_solr["event_date_t"].should be_nil
278
+ end
279
+
280
+ end
281
+
282
+ end