active-fedora 6.8.0 → 7.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +15 -5
  4. data/CONTRIBUTING.md +2 -0
  5. data/Gemfile +0 -2
  6. data/History.txt +2 -32
  7. data/README.md +143 -0
  8. data/Rakefile +5 -7
  9. data/active-fedora.gemspec +9 -9
  10. data/gemfiles/rails3.gemfile +11 -0
  11. data/gemfiles/rails4.gemfile +10 -0
  12. data/lib/active_fedora.rb +31 -4
  13. data/lib/active_fedora/association_relation.rb +18 -0
  14. data/lib/active_fedora/associations.rb +38 -171
  15. data/lib/active_fedora/associations/association.rb +163 -0
  16. data/lib/active_fedora/associations/association_scope.rb +39 -0
  17. data/lib/active_fedora/associations/belongs_to_association.rb +47 -25
  18. data/lib/active_fedora/associations/builder/association.rb +55 -0
  19. data/lib/active_fedora/associations/builder/belongs_to.rb +100 -0
  20. data/lib/active_fedora/associations/builder/collection_association.rb +56 -0
  21. data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +30 -0
  22. data/lib/active_fedora/associations/builder/has_many.rb +63 -0
  23. data/lib/active_fedora/associations/builder/singular_association.rb +32 -0
  24. data/lib/active_fedora/associations/{association_collection.rb → collection_association.rb} +203 -53
  25. data/lib/active_fedora/associations/collection_proxy.rb +862 -0
  26. data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +35 -25
  27. data/lib/active_fedora/associations/has_many_association.rb +36 -11
  28. data/lib/active_fedora/associations/singular_association.rb +62 -0
  29. data/lib/active_fedora/attributes.rb +43 -139
  30. data/lib/active_fedora/autosave_association.rb +317 -0
  31. data/lib/active_fedora/base.rb +10 -327
  32. data/lib/active_fedora/callbacks.rb +1 -3
  33. data/lib/active_fedora/content_model.rb +16 -0
  34. data/lib/active_fedora/core.rb +151 -0
  35. data/lib/active_fedora/datastream_attribute.rb +76 -0
  36. data/lib/active_fedora/datastream_hash.rb +8 -13
  37. data/lib/active_fedora/datastreams.rb +39 -26
  38. data/lib/active_fedora/digital_object.rb +2 -2
  39. data/lib/active_fedora/fedora_attributes.rb +45 -0
  40. data/lib/active_fedora/fixture_loader.rb +1 -1
  41. data/lib/active_fedora/indexing.rb +6 -1
  42. data/lib/active_fedora/model.rb +0 -17
  43. data/lib/active_fedora/nested_attributes.rb +2 -2
  44. data/lib/active_fedora/null_relation.rb +7 -0
  45. data/lib/active_fedora/om_datastream.rb +3 -4
  46. data/lib/active_fedora/persistence.rb +41 -29
  47. data/lib/active_fedora/querying.rb +2 -163
  48. data/lib/active_fedora/rdf.rb +1 -0
  49. data/lib/active_fedora/rdf/indexing.rb +67 -0
  50. data/lib/active_fedora/rdf_datastream.rb +2 -50
  51. data/lib/active_fedora/rdf_node.rb +12 -7
  52. data/lib/active_fedora/rdf_node/term_proxy.rb +30 -21
  53. data/lib/active_fedora/rdfxml_rdf_datastream.rb +1 -1
  54. data/lib/active_fedora/reflection.rb +163 -20
  55. data/lib/active_fedora/relation.rb +33 -130
  56. data/lib/active_fedora/relation/calculations.rb +19 -0
  57. data/lib/active_fedora/relation/delegation.rb +22 -0
  58. data/lib/active_fedora/relation/finder_methods.rb +247 -0
  59. data/lib/active_fedora/relation/merger.rb +22 -0
  60. data/lib/active_fedora/relation/query_methods.rb +58 -0
  61. data/lib/active_fedora/relation/spawn_methods.rb +46 -0
  62. data/lib/active_fedora/relationship_graph.rb +0 -2
  63. data/lib/active_fedora/rels_ext_datastream.rb +1 -4
  64. data/lib/active_fedora/rubydora_connection.rb +1 -1
  65. data/lib/active_fedora/scoping.rb +20 -0
  66. data/lib/active_fedora/scoping/default.rb +38 -0
  67. data/lib/active_fedora/scoping/named.rb +32 -0
  68. data/lib/active_fedora/semantic_node.rb +54 -106
  69. data/lib/active_fedora/serialization.rb +19 -0
  70. data/lib/active_fedora/sharding.rb +58 -0
  71. data/lib/active_fedora/solr_digital_object.rb +15 -5
  72. data/lib/active_fedora/solr_instance_loader.rb +1 -1
  73. data/lib/active_fedora/solr_service.rb +1 -1
  74. data/lib/active_fedora/unsaved_digital_object.rb +6 -4
  75. data/lib/active_fedora/version.rb +1 -1
  76. data/lib/tasks/active_fedora.rake +3 -0
  77. data/lib/tasks/active_fedora_dev.rake +6 -5
  78. data/spec/config_helper.rb +14 -14
  79. data/spec/integration/associations_spec.rb +168 -455
  80. data/spec/integration/attributes_spec.rb +12 -11
  81. data/spec/integration/auditable_spec.rb +11 -11
  82. data/spec/integration/autosave_association_spec.rb +25 -0
  83. data/spec/integration/base_spec.rb +163 -163
  84. data/spec/integration/belongs_to_association_spec.rb +166 -0
  85. data/spec/integration/bug_spec.rb +7 -7
  86. data/spec/integration/collection_association_spec.rb +58 -0
  87. data/spec/integration/complex_rdf_datastream_spec.rb +88 -88
  88. data/spec/integration/datastream_collections_spec.rb +69 -69
  89. data/spec/integration/datastream_spec.rb +43 -43
  90. data/spec/integration/datastreams_spec.rb +63 -63
  91. data/spec/integration/delete_all_spec.rb +46 -39
  92. data/spec/integration/fedora_solr_sync_spec.rb +5 -5
  93. data/spec/integration/field_to_solr_name_spec.rb +34 -0
  94. data/spec/integration/full_featured_model_spec.rb +100 -101
  95. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +341 -0
  96. data/spec/integration/has_many_associations_spec.rb +172 -24
  97. data/spec/integration/json_serialization_spec.rb +31 -0
  98. data/spec/integration/load_from_solr_spec.rb +48 -0
  99. data/spec/integration/model_spec.rb +35 -40
  100. data/spec/integration/nested_attribute_spec.rb +42 -43
  101. data/spec/integration/ntriples_datastream_spec.rb +131 -113
  102. data/spec/integration/om_datastream_spec.rb +67 -67
  103. data/spec/integration/persistence_spec.rb +7 -7
  104. data/spec/integration/rdf_nested_attributes_spec.rb +56 -56
  105. data/spec/integration/relation_delegation_spec.rb +26 -25
  106. data/spec/integration/relation_spec.rb +42 -0
  107. data/spec/integration/rels_ext_datastream_spec.rb +20 -20
  108. data/spec/integration/scoped_query_spec.rb +61 -51
  109. data/spec/integration/solr_instance_loader_spec.rb +5 -5
  110. data/spec/integration/solr_service_spec.rb +46 -46
  111. data/spec/samples/hydra-mods_article_datastream.rb +334 -334
  112. data/spec/samples/hydra-rights_metadata_datastream.rb +57 -57
  113. data/spec/samples/marpa-dc_datastream.rb +17 -17
  114. data/spec/samples/models/audio_record.rb +16 -16
  115. data/spec/samples/models/image.rb +2 -2
  116. data/spec/samples/models/mods_article.rb +5 -5
  117. data/spec/samples/models/oral_history.rb +18 -18
  118. data/spec/samples/models/seminar.rb +24 -24
  119. data/spec/samples/models/seminar_audio_file.rb +17 -17
  120. data/spec/samples/oral_history_sample_model.rb +21 -21
  121. data/spec/samples/special_thing.rb +14 -14
  122. data/spec/spec_helper.rb +11 -7
  123. data/spec/support/an_active_model.rb +2 -8
  124. data/spec/support/freeze_mocks.rb +12 -0
  125. data/spec/support/mock_fedora.rb +17 -16
  126. data/spec/unit/active_fedora_spec.rb +58 -60
  127. data/spec/unit/attributes_spec.rb +314 -0
  128. data/spec/unit/base_active_model_spec.rb +28 -27
  129. data/spec/unit/base_cma_spec.rb +5 -5
  130. data/spec/unit/base_datastream_management_spec.rb +27 -27
  131. data/spec/unit/base_extra_spec.rb +76 -48
  132. data/spec/unit/base_spec.rb +277 -348
  133. data/spec/unit/callback_spec.rb +18 -19
  134. data/spec/unit/code_configurator_spec.rb +17 -17
  135. data/spec/unit/config_spec.rb +8 -16
  136. data/spec/unit/content_model_spec.rb +79 -60
  137. data/spec/unit/datastream_collections_spec.rb +229 -229
  138. data/spec/unit/datastream_spec.rb +51 -63
  139. data/spec/unit/datastreams_spec.rb +87 -87
  140. data/spec/unit/file_configurator_spec.rb +217 -217
  141. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +44 -25
  142. data/spec/unit/has_many_collection_spec.rb +26 -8
  143. data/spec/unit/inheritance_spec.rb +13 -12
  144. data/spec/unit/model_spec.rb +39 -45
  145. data/spec/unit/nom_datastream_spec.rb +15 -15
  146. data/spec/unit/ntriples_datastream_spec.rb +123 -118
  147. data/spec/unit/om_datastream_spec.rb +227 -233
  148. data/spec/unit/persistence_spec.rb +34 -15
  149. data/spec/unit/predicates_spec.rb +73 -73
  150. data/spec/unit/property_spec.rb +17 -9
  151. data/spec/unit/qualified_dublin_core_datastream_spec.rb +33 -33
  152. data/spec/unit/query_spec.rb +222 -198
  153. data/spec/unit/rdf_datastream_spec.rb +21 -28
  154. data/spec/unit/rdf_list_nested_attributes_spec.rb +34 -34
  155. data/spec/unit/rdf_list_spec.rb +65 -64
  156. data/spec/unit/rdf_node_spec.rb +7 -7
  157. data/spec/unit/rdf_xml_writer_spec.rb +10 -10
  158. data/spec/unit/rdfxml_rdf_datastream_spec.rb +27 -27
  159. data/spec/unit/relationship_graph_spec.rb +51 -51
  160. data/spec/unit/rels_ext_datastream_spec.rb +68 -74
  161. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +15 -15
  162. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +15 -15
  163. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +15 -15
  164. data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +12 -12
  165. data/spec/unit/rubydora_connection_spec.rb +5 -5
  166. data/spec/unit/semantic_node_spec.rb +48 -107
  167. data/spec/unit/serializers_spec.rb +4 -4
  168. data/spec/unit/service_definitions_spec.rb +26 -26
  169. data/spec/unit/simple_datastream_spec.rb +17 -17
  170. data/spec/unit/solr_config_options_spec.rb +29 -28
  171. data/spec/unit/solr_digital_object_spec.rb +17 -25
  172. data/spec/unit/solr_service_spec.rb +95 -82
  173. data/spec/unit/unsaved_digital_object_spec.rb +24 -23
  174. data/spec/unit/validations_spec.rb +21 -21
  175. metadata +110 -159
  176. data/.rspec +0 -1
  177. data/.rubocop.yml +0 -1
  178. data/.rubocop_todo.yml +0 -938
  179. data/CONSOLE_GETTING_STARTED.textile +0 -1
  180. data/NOKOGIRI_DATASTREAMS.textile +0 -1
  181. data/README.textile +0 -116
  182. data/lib/active_fedora/associations/association_proxy.rb +0 -178
  183. data/lib/active_fedora/delegating.rb +0 -72
  184. data/lib/active_fedora/nokogiri_datastream.rb +0 -11
  185. data/spec/integration/delegating_spec.rb +0 -59
  186. data/spec/rails3_test_app/.gitignore +0 -4
  187. data/spec/rails3_test_app/.rspec +0 -1
  188. data/spec/rails3_test_app/Gemfile +0 -40
  189. data/spec/rails3_test_app/Rakefile +0 -7
  190. data/spec/rails3_test_app/app/controllers/application_controller.rb +0 -3
  191. data/spec/rails3_test_app/app/helpers/application_helper.rb +0 -2
  192. data/spec/rails3_test_app/app/views/layouts/application.html.erb +0 -14
  193. data/spec/rails3_test_app/config.ru +0 -4
  194. data/spec/rails3_test_app/config/application.rb +0 -42
  195. data/spec/rails3_test_app/config/boot.rb +0 -6
  196. data/spec/rails3_test_app/config/database.yml +0 -22
  197. data/spec/rails3_test_app/config/environment.rb +0 -5
  198. data/spec/rails3_test_app/config/environments/development.rb +0 -25
  199. data/spec/rails3_test_app/config/environments/production.rb +0 -49
  200. data/spec/rails3_test_app/config/environments/test.rb +0 -35
  201. data/spec/rails3_test_app/config/initializers/backtrace_silencers.rb +0 -7
  202. data/spec/rails3_test_app/config/initializers/inflections.rb +0 -10
  203. data/spec/rails3_test_app/config/initializers/mime_types.rb +0 -5
  204. data/spec/rails3_test_app/config/initializers/secret_token.rb +0 -7
  205. data/spec/rails3_test_app/config/initializers/session_store.rb +0 -8
  206. data/spec/rails3_test_app/config/locales/en.yml +0 -5
  207. data/spec/rails3_test_app/config/routes.rb +0 -58
  208. data/spec/rails3_test_app/db/seeds.rb +0 -7
  209. data/spec/rails3_test_app/run_tests +0 -3
  210. data/spec/rails3_test_app/script/rails +0 -6
  211. data/spec/rails3_test_app/spec/spec_helper.rb +0 -27
  212. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +0 -15
  213. data/spec/unit/association_proxy_spec.rb +0 -12
  214. data/spec/unit/base_delegate_spec.rb +0 -197
  215. data/spec/unit/base_delegate_to_spec.rb +0 -73
@@ -1,45 +1,64 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Associations::HasAndBelongsToManyAssociation do
4
- it 'should call add_relationship' do
5
- subject = double('subject', :new_record? => false, :pid => 'subject:a', :internal_uri => 'info:fedora/subject:a', :ids_for_outbound => [])
6
- predicate = double(:klass => double.class, :options => {:property => 'predicate'}, :class_name => nil)
7
- allow(ActiveFedora::SolrService).to receive(:query).and_return([])
8
- ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
9
- object = double('object', :new_record? => false, :pid => 'object:b', :save => nil)
4
+ before do
5
+ class Book < ActiveFedora::Base
6
+ end
7
+ class Page < ActiveFedora::Base
8
+ end
9
+ end
10
10
 
11
- expect(subject).to receive(:add_relationship).with('predicate', object)
11
+ after do
12
+ Object.send(:remove_const, :Book)
13
+ Object.send(:remove_const, :Page)
14
+ end
12
15
 
16
+ it "should call add_relationship" do
17
+ subject = Book.new(pid: 'subject:a')
18
+ subject.stub(:new_record? => false, save: true)
19
+ predicate = Book.create_reflection(:has_and_belongs_to_many, 'pages', {:property=>'predicate'}, nil)
20
+ ActiveFedora::SolrService.stub(:query).and_return([])
21
+ ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
22
+ ac.should_receive(:callback).twice
23
+ object = Page.new(:pid => 'object:b')
24
+ object.stub(:new_record? => false, save: true)
25
+
26
+ subject.should_receive(:add_relationship).with('predicate', object)
27
+
13
28
  ac << object
14
29
 
15
30
  end
16
31
 
17
- it 'should call add_relationship on subject and object when inverse_of given' do
18
- subject = double('subject', :new_record? => false, :pid => 'subject:a', :internal_uri => 'info:fedora/subject:a', :ids_for_outbound => [])
19
- predicate = double(:klass => double.class, :options => {:property => 'predicate', :inverse_of => 'inverse_predicate'}, :class_name => nil)
20
- allow(ActiveFedora::SolrService).to receive(:query).and_return([])
32
+ it "should call add_relationship on subject and object when inverse_of given" do
33
+ subject = Book.new(pid: 'subject:a')
34
+ subject.stub(:new_record? => false, save: true)
35
+ predicate = Book.create_reflection(:has_and_belongs_to_many, 'pages', {:property=>'predicate', :inverse_of => 'inverse_predicate'}, nil)
36
+ ActiveFedora::SolrService.stub(:query).and_return([])
21
37
  ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
22
- object = double('object', :new_record? => false, :pid => 'object:b', :save => nil)
23
-
24
- expect(subject).to receive(:add_relationship).with('predicate', object)
25
-
26
- expect(object).to receive(:add_relationship).with('inverse_predicate', subject)
27
-
38
+ ac.should_receive(:callback).twice
39
+ object = Page.new(:pid => 'object:b')
40
+ object.stub(:new_record? => false, save: true)
41
+
42
+ subject.should_receive(:add_relationship).with('predicate', object)
43
+
44
+ object.should_receive(:add_relationship).with('inverse_predicate', subject)
45
+
28
46
  ac << object
29
47
 
30
48
  end
31
49
 
32
- it 'should call solr query multiple times' do
50
+ it "should call solr query multiple times" do
33
51
 
34
- subject = double('subject', :new_record? => false, :pid => 'subject:a', :internal_uri => 'info:fedora/subject:a', :ids_for_outbound => [])
35
- predicate = double(:klass => double.class, :options => {:property => 'predicate', solr_page_size: 10}, :class_name => nil)
52
+ subject = Book.new(pid: 'subject:a')
53
+ subject.stub(:new_record? => false, save: true)
54
+ predicate = Book.create_reflection(:has_and_belongs_to_many, 'pages', {:property=>'predicate', :solr_page_size => 10}, nil)
36
55
  ids = []
37
56
  0.upto(15) {|i| ids << i.to_s}
38
- query1 = ids.slice(0, 10).map {|i| "_query_:\"{!raw f=id}#{i}\""}.join(' OR ')
39
- query2 = ids.slice(10, 10).map {|i| "_query_:\"{!raw f=id}#{i}\""}.join(' OR ')
40
- expect(subject).to receive(:ids_for_outbound).and_return(ids)
41
- expect(ActiveFedora::SolrService).to receive(:query).with(query1, {:rows => 10}).and_return([])
42
- expect(ActiveFedora::SolrService).to receive(:query).with(query2, {:rows => 10}).and_return([])
57
+ query1 = ids.slice(0,10).map {|i| "_query_:\"{!raw f=id}#{i}\""}.join(" OR ")
58
+ query2 = ids.slice(10,10).map {|i| "_query_:\"{!raw f=id}#{i}\""}.join(" OR ")
59
+ subject.should_receive(:ids_for_outbound).and_return(ids)
60
+ ActiveFedora::SolrService.should_receive(:query).with(query1, {:rows=>10}).and_return([])
61
+ ActiveFedora::SolrService.should_receive(:query).with(query2, {:rows=>10}).and_return([])
43
62
 
44
63
  ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
45
64
  ac.find_target
@@ -1,17 +1,35 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Associations::HasManyAssociation do
4
- it 'should call add_relationship' do
5
- subject = double('subject', :new_record? => false, :pid => 'subject:a', :internal_uri => 'info:fedora/subject:a')
6
- predicate = double(:klass => double.class, :options => {:property => 'predicate'}, :class_name => nil)
7
- allow(ActiveFedora::SolrService).to receive(:query).and_return([])
8
- ac = ActiveFedora::Associations::HasManyAssociation.new(subject, predicate)
9
- object = double('object', :new_record? => false, :pid => 'object:b', :save => nil)
4
+ before do
5
+ class Book < ActiveFedora::Base
6
+ end
7
+ class Page < ActiveFedora::Base
8
+ end
9
+ end
10
+
11
+ after do
12
+ Object.send(:remove_const, :Book)
13
+ Object.send(:remove_const, :Page)
14
+ end
10
15
 
11
- expect(object).to receive(:add_relationship).with('predicate', subject)
16
+ subject { Book.new(pid: 'subject:a') }
17
+ before {
18
+ subject.stub(:new_record? => false, save: true)
19
+ }
12
20
 
21
+ it "should call add_relationship" do
22
+ reflection = Book.create_reflection(:has_many, 'pages', {:property=>'predicate'}, Book)
23
+ ActiveFedora::SolrService.stub(:query).and_return([])
24
+ ac = ActiveFedora::Associations::HasManyAssociation.new(subject, reflection)
25
+ ac.should_receive(:callback).twice
26
+ object = Page.new(:pid => 'object:b')
27
+ object.stub(:new_record? => false, save: true)
28
+
29
+ object.should_receive(:add_relationship).with('predicate', subject)
30
+
13
31
  ac << object
14
32
 
15
33
  end
16
-
34
+
17
35
  end
@@ -3,31 +3,31 @@ require 'spec_helper'
3
3
  describe ActiveFedora::Base do
4
4
  before(:each) do
5
5
  class Foo < ActiveFedora::Base
6
- has_metadata :type => ActiveFedora::SimpleDatastream, :name => 'foostream' do|m|
7
- m.field 'foostream', :string
6
+ has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"foostream" do|m|
7
+ m.field "foostream", :string
8
8
  end
9
- has_metadata :type => ActiveFedora::QualifiedDublinCoreDatastream, :name => 'dcstream'
9
+ has_metadata :type=>ActiveFedora::QualifiedDublinCoreDatastream, :name=>"dcstream"
10
10
  end
11
- class Bar < ActiveFedora::Base
12
- has_metadata :type => ActiveFedora::SimpleDatastream, :name => 'barstream' do |m|
13
- m.field 'barfield', :string
11
+ class Bar < ActiveFedora::Base
12
+ has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"barstream" do |m|
13
+ m.field "barfield", :string
14
14
  end
15
15
  end
16
16
  end
17
17
 
18
18
  it "doesn't overwrite stream specs" do
19
19
  f = Foo.new
20
- expect(f.datastreams.size).to eq(3)
20
+ f.datastreams.size.should == 3
21
21
  streams = f.datastreams.values.map{|x| x.class.to_s}.sort
22
- expect(streams.pop).to eq('ActiveFedora::SimpleDatastream')
23
- expect(streams.pop).to eq('ActiveFedora::RelsExtDatastream')
24
- expect(streams.pop).to eq('ActiveFedora::QualifiedDublinCoreDatastream')
22
+ streams.pop.should == "ActiveFedora::SimpleDatastream"
23
+ streams.pop.should == "ActiveFedora::RelsExtDatastream"
24
+ streams.pop.should == "ActiveFedora::QualifiedDublinCoreDatastream"
25
25
  end
26
26
 
27
- it 'should work for multiple types' do
27
+ it "should work for multiple types" do
28
28
  b = Foo.new
29
29
  f = Bar.new
30
- expect(b.class.ds_specs).not_to eq(f.class.ds_specs)
30
+ b.class.ds_specs.should_not == f.class.ds_specs
31
31
  end
32
32
  after do
33
33
  Object.send(:remove_const, :Bar)
@@ -35,3 +35,4 @@ describe ActiveFedora::Base do
35
35
  end
36
36
 
37
37
  end
38
+
@@ -1,64 +1,58 @@
1
1
  require 'spec_helper'
2
2
 
3
- module SpecModelM
4
- class Basic < ActiveFedora::Base
5
- end
6
- class CamelCased
7
- include ActiveFedora::Model
8
- def name
9
- self.class.to_s
3
+ describe ActiveFedora::Model do
4
+
5
+ before(:all) do
6
+ module SpecModel
7
+ class Basic < ActiveFedora::Base
8
+ end
10
9
  end
10
+ @model_query = "has_model_s:#{solr_uri("info:fedora/afmodel:SpecModel_Basic")}"
11
11
  end
12
- end
13
-
14
- describe ActiveFedora::Model do
15
-
12
+
13
+ after(:all) do
14
+ Object.send(:remove_const, :SpecModel)
15
+ end
16
+
16
17
  describe '.solr_query_handler' do
17
18
  after do
18
- SpecModelM::Basic.solr_query_handler = 'standard' # reset to default
19
+ # reset to default
20
+ SpecModel::Basic.solr_query_handler = 'standard'
19
21
  end
20
- it 'should have a default' do
21
- expect(SpecModelM::Basic.solr_query_handler).to eq('standard')
22
+ it "should have a default" do
23
+ SpecModel::Basic.solr_query_handler.should == 'standard'
22
24
  end
23
- it 'should be settable' do
24
- SpecModelM::Basic.solr_query_handler = 'search'
25
- expect(SpecModelM::Basic.solr_query_handler).to eq('search')
25
+ it "should be settable" do
26
+ SpecModel::Basic.solr_query_handler = 'search'
27
+ SpecModel::Basic.solr_query_handler.should == 'search'
26
28
  end
27
29
  end
28
-
29
- describe 'URI translation' do
30
- before :each do
31
- @camel = SpecModelM::CamelCased.new
32
- end
33
- it '#to_class_uri' do
34
- expect(@camel.to_class_uri).to eq 'info:fedora/afmodel:SpecModelM_CamelCased'
35
- end
36
-
37
- context 'with the namespace declared in the model' do
38
- it '#to_class_uri' do
39
- expect(@camel).to receive(:pid_namespace).and_return('test-cModel')
40
- expect(@camel.to_class_uri).to eq 'info:fedora/test-cModel:SpecModelM_CamelCased'
30
+
31
+ describe "URI translation" do
32
+ before :all do
33
+ module SpecModel
34
+ class CamelCased
35
+ include ActiveFedora::Model
36
+ end
41
37
  end
42
38
  end
43
-
44
- context 'with the suffix declared in the model' do
45
- it '#to_class_uri' do
46
- expect(@camel).to receive(:pid_suffix).and_return('-TEST-SUFFIX')
47
- expect(@camel.to_class_uri).to eq 'info:fedora/afmodel:SpecModelM_CamelCased-TEST-SUFFIX'
48
- end
39
+
40
+ after :all do
41
+ SpecModel.send(:remove_const, :CamelCased)
49
42
  end
50
-
51
- describe '.classname_from_uri' do
52
- it 'should turn an afmodel URI into a Model class name' do
53
- expect(ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:SpecModelM_CamelCased')).to eq(['SpecModelM::CamelCased', 'afmodel'])
43
+ subject {SpecModel::CamelCased}
44
+
45
+ describe ".classname_from_uri" do
46
+ it "should turn an afmodel URI into a Model class name" do
47
+ ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:SpecModel_CamelCased').should == ['SpecModel::CamelCased', 'afmodel']
54
48
  end
55
- it 'should not change plurality' do
56
- expect(ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:MyMetadata')).to eq(['MyMetadata', 'afmodel'])
49
+ it "should not change plurality" do
50
+ ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:MyMetadata').should == ['MyMetadata', 'afmodel']
57
51
  end
58
- it 'should capitalize the first letter' do
59
- expect(ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:image')).to eq(['Image', 'afmodel'])
52
+ it "should capitalize the first letter" do
53
+ ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:image').should == ['Image', 'afmodel']
60
54
  end
61
55
  end
62
56
  end
63
-
57
+
64
58
  end
@@ -1,40 +1,40 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::NomDatastream do
4
- describe 'test' do
4
+ describe "test" do
5
5
  subject {
6
6
  class MyNomDatastream < ActiveFedora::NomDatastream
7
-
7
+
8
8
  set_terminology do |t|
9
9
  t.a :path => '//a', :accessor => lambda { |x| x.text }, :index => 'a_s'
10
10
  t.b :path => '//b', :index => 'b_s'
11
11
  end
12
- end
12
+ end
13
13
 
14
14
  MyNomDatastream.from_xml '<root><a>123</a><b><c>asdf</c></b></root>'
15
15
  }
16
16
 
17
- it 'should work' do
18
- expect(subject.a).to include('123')
17
+ it "should work" do
18
+ subject.a.should include("123")
19
19
  end
20
20
 
21
- it 'should to_solr' do
22
- expect(subject.to_solr['a_s']).to include('123')
23
- expect(subject.to_solr['b_s']).to include('asdf')
21
+ it "should to_solr" do
22
+ subject.to_solr['a_s'].should include('123')
23
+ subject.to_solr['b_s'].should include('asdf')
24
24
  end
25
25
 
26
- it 'should be a managed datastream' do
27
- expect(subject.controlGroup).to eq('M')
26
+ it "should be a managed datastream" do
27
+ subject.controlGroup.should == 'M'
28
28
  end
29
29
  end
30
30
 
31
- describe 'with options for .set_terminology' do
31
+ describe "with options for .set_terminology" do
32
32
  subject {
33
33
  class TerminologyOptions < ActiveFedora::NomDatastream
34
34
  set_terminology({
35
35
  :namespaces => {
36
- 'dc' => 'http://purl.org/dc/elements/1.1/',
37
- 'dcterms' => 'http://purl.org/dc/terms/'
36
+ 'dc' => "http://purl.org/dc/elements/1.1/",
37
+ 'dcterms' => "http://purl.org/dc/terms/"
38
38
  }
39
39
  }) do |t|
40
40
  t.a :path => 'a', :xmlns => 'dc', :accessor => lambda { |x| x.text }
@@ -53,8 +53,8 @@ describe ActiveFedora::NomDatastream do
53
53
  )
54
54
  }
55
55
 
56
- it 'should scope #a attribute to only the dc namespace' do
57
- expect(subject.a).to eq(['123'])
56
+ it "should scope #a attribute to only the dc namespace" do
57
+ subject.a.should == ["123"]
58
58
  end
59
59
 
60
60
  end
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::NtriplesRDFDatastream do
4
- describe 'an instance with content' do
5
- before do
4
+ describe "an instance with content" do
5
+ before do
6
6
  class MyDatastream < ActiveFedora::NtriplesRDFDatastream
7
7
  map_predicates do |map|
8
8
  map.created(:in => RDF::DC)
@@ -11,84 +11,84 @@ describe ActiveFedora::NtriplesRDFDatastream do
11
11
  map.creator(:in => RDF::DC)
12
12
  map.educationLevel(:in => RDF::DC)
13
13
  map.based_near(:in => RDF::FOAF)
14
- map.related_url(:to => 'seeAlso', :in => RDF::RDFS)
14
+ map.related_url(:to => "seeAlso", :in => RDF::RDFS)
15
15
  end
16
16
  end
17
- @subject = MyDatastream.new(double('inner object', :pid => 'test:1', :new_record? => true), 'descMetadata')
17
+ @subject = MyDatastream.new(double('inner object', :pid=>'test:1', :new_record? =>true), 'descMetadata')
18
18
  @subject.content = File.new('spec/fixtures/mixed_rdf_descMetadata.nt').read
19
19
  end
20
20
  after do
21
21
  Object.send(:remove_const, :MyDatastream)
22
22
  end
23
- it 'should have a subject' do
24
- expect(@subject.rdf_subject).to eq('info:fedora/test:1')
23
+ it "should have a subject" do
24
+ @subject.rdf_subject.should == "info:fedora/test:1"
25
25
  end
26
- it 'should have controlGroup' do
27
- expect(@subject.controlGroup).to eq('M')
26
+ it "should have controlGroup" do
27
+ @subject.controlGroup.should == 'M'
28
28
  end
29
- it 'should have mimeType' do
30
- expect(@subject.mimeType).to eq('text/plain')
29
+ it "should have mimeType" do
30
+ @subject.mimeType.should == 'text/plain'
31
31
  end
32
- it 'should have dsid' do
33
- expect(@subject.dsid).to eq('descMetadata')
32
+ it "should have dsid" do
33
+ @subject.dsid.should == 'descMetadata'
34
34
  end
35
- it 'should have fields' do
36
- expect(@subject.created).to eq(['2010-12-31'])
37
- expect(@subject.title).to eq(['Title of work'])
38
- expect(@subject.publisher).to eq(['Penn State'])
39
- expect(@subject.based_near).to eq(['New York, NY, US'])
40
- expect(@subject.related_url).to eq(['http://google.com/'])
35
+ it "should have fields" do
36
+ @subject.created.should == ["2010-12-31"]
37
+ @subject.title.should == ["Title of work"]
38
+ @subject.publisher.should == ["Penn State"]
39
+ @subject.based_near.should == ["New York, NY, US"]
40
+ @subject.related_url.should == ["http://google.com/"]
41
41
  end
42
42
 
43
- it 'should be able to call enumerable methods on the fields' do
44
- expect(@subject.title.join(', ')).to eq('Title of work')
45
- expect(@subject.title.count).to eq(1)
46
- expect(@subject.title.size).to eq(1)
47
- expect(@subject.title[0]).to eq('Title of work')
48
- expect(@subject.title.to_a).to eq(['Title of work'])
43
+ it "should be able to call enumerable methods on the fields" do
44
+ @subject.title.join(', ').should == "Title of work"
45
+ @subject.title.count.should == 1
46
+ @subject.title.size.should == 1
47
+ @subject.title[0].should == "Title of work"
48
+ @subject.title.to_a.should == ["Title of work"]
49
49
  val = []
50
50
  @subject.title.each_with_index {|v, i| val << "#{i}. #{v}"}
51
- expect(val).to eq(['0. Title of work'])
51
+ val.should == ["0. Title of work"]
52
52
  end
53
53
 
54
- it 'should return fields that are not TermProxies' do
55
- expect(@subject.created).to be_kind_of Array
54
+ it "should return fields that are not TermProxies" do
55
+ @subject.created.should be_kind_of Array
56
56
  end
57
- it 'should have method missing' do
58
- expect{@subject.frank}.to raise_exception NoMethodError
57
+ it "should have method missing" do
58
+ lambda{@subject.frank}.should raise_exception NoMethodError
59
59
  end
60
60
 
61
- it 'should set fields' do
61
+ it "should set fields" do
62
62
  @subject.publisher = "St. Martin's Press"
63
- expect(@subject.publisher).to eq(["St. Martin's Press"])
63
+ @subject.publisher.should == ["St. Martin's Press"]
64
64
  end
65
- it 'should set rdf literal fields' do
66
- @subject.creator = RDF.Literal('Geoff Ryman')
67
- expect(@subject.creator).to eq(['Geoff Ryman'])
65
+ it "should set rdf literal fields" do
66
+ @subject.creator = RDF.Literal("Geoff Ryman")
67
+ @subject.creator.should == ["Geoff Ryman"]
68
68
  end
69
- it 'should append fields' do
69
+ it "should append fields" do
70
70
  @subject.publisher << "St. Martin's Press"
71
- expect(@subject.publisher).to eq(['Penn State', "St. Martin's Press"])
71
+ @subject.publisher.should == ["Penn State", "St. Martin's Press"]
72
72
  end
73
- it 'should delete fields' do
74
- @subject.related_url.delete(RDF::URI('http://google.com/'))
75
- expect(@subject.related_url).to eq([])
73
+ it "should delete fields" do
74
+ @subject.related_url.delete(RDF::URI("http://google.com/"))
75
+ @subject.related_url.should == []
76
76
  end
77
77
  end
78
78
 
79
- describe 'some dummy instances' do
79
+ describe "some dummy instances" do
80
80
  before do
81
81
  @one = ActiveFedora::RDFDatastream.new('fakepid', 'myFoobar')
82
82
  @two = ActiveFedora::RDFDatastream.new('fakepid', 'myQuix')
83
83
  end
84
- it 'should generate predictable prexies' do
85
- expect(@one .prefix('baz')).to eq(:my_foobar__baz)
86
- expect(@two.prefix('baz')).to eq(:my_quix__baz)
84
+ it "should generate predictable prexies" do
85
+ @one .prefix("baz").should == :my_foobar__baz
86
+ @two.prefix("baz").should == :my_quix__baz
87
87
  end
88
88
  end
89
89
 
90
- describe 'an instance with a custom subject' do
91
- before do
90
+ describe "an instance with a custom subject" do
91
+ before do
92
92
  class MyDatastream < ActiveFedora::NtriplesRDFDatastream
93
93
  rdf_subject { |ds| "info:fedora/#{ds.pid}/content" }
94
94
  map_predicates do |map|
@@ -96,7 +96,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
96
96
  map.title(:in => RDF::DC)
97
97
  map.publisher(:in => RDF::DC)
98
98
  map.based_near(:in => RDF::FOAF)
99
- map.related_url(:to => 'seeAlso', :in => RDF::RDFS)
99
+ map.related_url(:to => "seeAlso", :in => RDF::RDFS)
100
100
  end
101
101
  end
102
102
  @subject = MyDatastream.new(@inner_object, 'mixed_rdf')
@@ -109,16 +109,16 @@ describe ActiveFedora::NtriplesRDFDatastream do
109
109
  Object.send(:remove_const, :MyDatastream)
110
110
  end
111
111
 
112
- it 'should have fields' do
113
- expect(@subject.title).to eq(['Title of datastream'])
112
+ it "should have fields" do
113
+ @subject.title.should == ["Title of datastream"]
114
114
  end
115
115
 
116
- it 'should have a custom subject' do
117
- expect(@subject.rdf_subject).to eq('info:fedora/test:1/content')
116
+ it "should have a custom subject" do
117
+ @subject.rdf_subject.should == 'info:fedora/test:1/content'
118
118
  end
119
119
  end
120
120
 
121
- describe 'a new instance' do
121
+ describe "a new instance" do
122
122
  before(:each) do
123
123
  class MyDatastream < ActiveFedora::NtriplesRDFDatastream
124
124
  map_predicates do |map|
@@ -131,35 +131,35 @@ describe ActiveFedora::NtriplesRDFDatastream do
131
131
  after(:each) do
132
132
  Object.send(:remove_const, :MyDatastream)
133
133
  end
134
- it 'should support to_s method' do
135
- expect(@subject.publisher.to_s).to eq([].to_s)
136
- @subject.publisher = 'Bob'
137
- expect(@subject.publisher.to_s).to eq(['Bob'].to_s)
138
- @subject.publisher << 'Jim'
139
- expect(@subject.publisher.to_s).to eq(['Bob', 'Jim'].to_s)
134
+ it "should support to_s method" do
135
+ @subject.publisher.to_s.should == [].to_s
136
+ @subject.publisher = "Bob"
137
+ @subject.publisher.to_s.should == ["Bob"].to_s
138
+ @subject.publisher << "Jim"
139
+ @subject.publisher.to_s.should == ["Bob", "Jim"].to_s
140
140
  end
141
141
  end
142
142
 
143
- describe 'solr integration' do
143
+ describe "solr integration" do
144
144
  before(:all) do
145
145
  class MyDatastream < ActiveFedora::NtriplesRDFDatastream
146
146
  map_predicates do |map|
147
- map.created(:in => RDF::DC) do |index|
147
+ map.created(:in => RDF::DC) do |index|
148
148
  index.as :sortable, :displayable
149
149
  index.type :date
150
150
  end
151
151
  map.title(:in => RDF::DC) do |index|
152
152
  index.as :stored_searchable, :sortable
153
- index.type :text
153
+ index.type :text
154
154
  end
155
- map.publisher(:in => RDF::DC) do |index|
155
+ map.publisher(:in => RDF::DC) do |index|
156
156
  index.as :facetable, :sortable, :stored_searchable
157
157
  end
158
158
  map.based_near(:in => RDF::FOAF) do |index|
159
- index.as :facetable, :stored_searchable
159
+ index.as :facetable, :stored_searchable
160
160
  index.type :text
161
161
  end
162
- map.related_url(:to => 'seeAlso', :in => RDF::RDFS) do |index|
162
+ map.related_url(:to => "seeAlso", :in => RDF::RDFS) do |index|
163
163
  index.as :stored_searchable
164
164
  end
165
165
  map.rights(:in => RDF::DC)
@@ -171,88 +171,93 @@ describe ActiveFedora::NtriplesRDFDatastream do
171
171
  after(:all) do
172
172
  Object.send(:remove_const, :MyDatastream)
173
173
  end
174
- before(:each) do
174
+ before(:each) do
175
175
  @subject.stub(:pid => 'test:1')
176
176
  end
177
- it 'should provide .to_solr and return a SolrDocument' do
178
- expect(@subject).to respond_to(:to_solr)
179
- expect(@subject.to_solr).to be_kind_of(Hash)
177
+ it "should provide .to_solr and return a SolrDocument" do
178
+ @subject.should respond_to(:to_solr)
179
+ @subject.to_solr.should be_kind_of(Hash)
180
180
  end
181
- it 'should optionally allow you to provide the Solr::Document to add fields to and return that document when done' do
182
- doc = {}
183
- expect(@subject.to_solr(doc)).to eq(doc)
181
+
182
+ it "should have a solr_name method" do
183
+ expect(MyDatastream.primary_solr_name('descMetadata', :based_near)).to eq 'desc_metadata__based_near_sim'
184
+ expect(MyDatastream.primary_solr_name('props', :title)).to eq 'props__title_tesim'
184
185
  end
185
- it 'should iterate through @fields hash' do
186
+
187
+ it "should optionally allow you to provide the Solr::Document to add fields to and return that document when done" do
188
+ doc = Hash.new
189
+ @subject.to_solr(doc).should == doc
190
+ end
191
+ it "should iterate through @fields hash" do
186
192
  solr_doc = @subject.to_solr
187
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__publisher', type: :string)]).to eq(['publisher1'])
188
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__publisher', :sortable)]).to eq('publisher1')
189
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__publisher', :facetable)]).to eq(['publisher1'])
190
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__based_near', type: :string)]).to eq(['coverage1', 'coverage2'])
191
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__based_near', :facetable)]).to eq(['coverage1', 'coverage2'])
192
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__created', :sortable, type: :date)]).to eq('2009-10-10T00:00:00Z')
193
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__created', :displayable)]).to eq(['2009-10-10'])
194
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__title', type: :string)]).to eq(['fake-title'])
195
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__title', :sortable)]).to eq('fake-title')
196
- expect(solr_doc[ActiveFedora::SolrService.solr_name('solr_rdf__related_url', type: :string)]).to eq(['http://example.org/'])
193
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", type: :string)].should == ["publisher1"]
194
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :sortable)].should == "publisher1"
195
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :facetable)].should == ["publisher1"]
196
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", type: :string)].should == ["coverage1", "coverage2"]
197
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", :facetable)].should == ["coverage1", "coverage2"]
198
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__created", :sortable, type: :date)].should == "2009-10-10T00:00:00Z"
199
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__created", :displayable)].should == ["2009-10-10"]
200
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__title", type: :string)].should == ["fake-title"]
201
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__title", :sortable)].should == "fake-title"
202
+ solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__related_url", type: :string)].should == ["http://example.org/"]
197
203
  end
198
204
 
199
- describe 'with an actual object' do
205
+ describe "with an actual object" do
200
206
  before(:each) do
201
207
  class Foo < ActiveFedora::Base
202
- has_metadata :name => 'descMetadata', :type => MyDatastream
203
- delegate :created, :to => :descMetadata, multiple: true
204
- delegate :title, :to => :descMetadata, multiple: true
205
- delegate :publisher, :to => :descMetadata, multiple: true
206
- delegate :based_near, :to => :descMetadata, multiple: true
207
- delegate :related_url, :to => :descMetadata, multiple: true
208
- delegate :rights, :to => :descMetadata, multiple: true
208
+ has_metadata :name => "descMetadata", :type => MyDatastream
209
+ has_attributes :created, :title, :publisher, :based_near, :related_url, :rights, datastream: :descMetadata, multiple: true
209
210
  end
210
211
  @obj = MyDatastream.new(@inner_object, 'solr_rdf')
211
212
  repository = double()
212
213
  @obj.stub(:repository => repository, :pid => 'test:1')
213
- allow(repository).to receive(:modify_datastream)
214
- allow(repository).to receive(:add_datastream)
215
- @obj.created = '2012-03-04'
216
- @obj.title = 'Of Mice and Men, The Sequel'
214
+ repository.stub(:modify_datastream)
215
+ repository.stub(:add_datastream)
216
+ @obj.created = "2012-03-04"
217
+ @obj.title = "Of Mice and Men, The Sequel"
217
218
  @obj.publisher = "Bob's Blogtastic Publishing"
218
- @obj.based_near = ['Tacoma, WA', 'Renton, WA']
219
- @obj.related_url = 'http://example.org/blogtastic/'
219
+ @obj.based_near = ["Tacoma, WA", "Renton, WA"]
220
+ @obj.related_url = "http://example.org/blogtastic/"
220
221
  @obj.rights = "Totally open, y'all"
221
222
  @obj.save
222
223
  end
224
+ after do
225
+ Object.send(:remove_const, :Foo)
226
+ end
227
+
223
228
 
224
- describe '.fields()' do
225
- it 'should return the right fields' do
226
- expect(@obj.send(:fields).keys).to eq(['created', 'title', 'publisher', 'based_near', 'related_url'])
229
+ describe ".fields()" do
230
+ it "should return the right fields" do
231
+ @obj.send(:fields).keys.should == ["created", "title", "publisher", "based_near", "related_url"]
227
232
  end
228
- it 'should return the right values' do
233
+ it "should return the right values" do
229
234
  fields = @obj.send(:fields)
230
- expect(fields[:related_url][:values]).to eq(['http://example.org/blogtastic/'])
231
- expect(fields[:based_near][:values]).to eq(['Tacoma, WA', 'Renton, WA'])
235
+ fields[:related_url][:values].should == ["http://example.org/blogtastic/"]
236
+ fields[:based_near][:values].should == ["Tacoma, WA", "Renton, WA"]
232
237
  end
233
- it 'should return the right type information' do
238
+ it "should return the right type information" do
234
239
  fields = @obj.send(:fields)
235
- expect(fields[:created][:type]).to eq(:date)
240
+ fields[:created][:type].should == :date
236
241
  end
237
242
  end
238
- describe '.to_solr()' do
239
- it 'should return the right fields' do
240
- expect(@obj.to_solr.keys).to include(ActiveFedora::SolrService.solr_name('solr_rdf__related_url', type: :string),
241
- ActiveFedora::SolrService.solr_name('solr_rdf__publisher', type: :string),
242
- ActiveFedora::SolrService.solr_name('solr_rdf__publisher', :sortable),
243
- ActiveFedora::SolrService.solr_name('solr_rdf__publisher', :facetable),
244
- ActiveFedora::SolrService.solr_name('solr_rdf__created', :sortable, type: :date),
245
- ActiveFedora::SolrService.solr_name('solr_rdf__created', :displayable),
246
- ActiveFedora::SolrService.solr_name('solr_rdf__title', type: :string),
247
- ActiveFedora::SolrService.solr_name('solr_rdf__title', :sortable),
248
- ActiveFedora::SolrService.solr_name('solr_rdf__based_near', type: :string),
249
- ActiveFedora::SolrService.solr_name('solr_rdf__based_near', :facetable))
243
+ describe ".to_solr()" do
244
+ it "should return the right fields" do
245
+ @obj.to_solr.keys.should include(ActiveFedora::SolrService.solr_name("solr_rdf__related_url", type: :string),
246
+ ActiveFedora::SolrService.solr_name("solr_rdf__publisher", type: :string),
247
+ ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :sortable),
248
+ ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :facetable),
249
+ ActiveFedora::SolrService.solr_name("solr_rdf__created", :sortable, type: :date),
250
+ ActiveFedora::SolrService.solr_name("solr_rdf__created", :displayable),
251
+ ActiveFedora::SolrService.solr_name("solr_rdf__title", type: :string),
252
+ ActiveFedora::SolrService.solr_name("solr_rdf__title", :sortable),
253
+ ActiveFedora::SolrService.solr_name("solr_rdf__based_near", type: :string),
254
+ ActiveFedora::SolrService.solr_name("solr_rdf__based_near", :facetable))
250
255
 
251
256
  end
252
257
 
253
- it 'should return the right values' do
254
- expect(@obj.to_solr[ActiveFedora::SolrService.solr_name('solr_rdf__related_url', type: :string)]).to eq(['http://example.org/blogtastic/'])
255
- expect(@obj.to_solr[ActiveFedora::SolrService.solr_name('solr_rdf__based_near', type: :string)]).to eq(['Tacoma, WA', 'Renton, WA'])
258
+ it "should return the right values" do
259
+ @obj.to_solr[ActiveFedora::SolrService.solr_name("solr_rdf__related_url", type: :string)].should == ["http://example.org/blogtastic/"]
260
+ @obj.to_solr[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", type: :string)].should == ["Tacoma, WA","Renton, WA"]
256
261
  end
257
262
  end
258
263
  end