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,8 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
  require 'ostruct'
3
- require 'active_fedora/rspec_matchers/belong_to_associated_active_fedora_object_matcher'
3
+ require "active_fedora/rspec_matchers/belong_to_associated_active_fedora_object_matcher"
4
4
 
5
- describe RSpec::Matchers, 'belong_to_associated_active_fedora_object_matcher' do
5
+ describe RSpec::Matchers, "belong_to_associated_active_fedora_object_matcher" do
6
6
  subject { OpenStruct.new(:pid => pid )}
7
7
  let(:pid) { 123 }
8
8
  let(:object1) { Object.new }
@@ -10,17 +10,17 @@ describe RSpec::Matchers, 'belong_to_associated_active_fedora_object_matcher' do
10
10
  let(:association) { :association }
11
11
 
12
12
  it 'should match when association is properly stored in fedora' do
13
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
14
- expect(subject).to receive(association).and_return(object1)
15
- expect(subject).to belong_to_associated_active_fedora_object(association).with_object(object1)
13
+ subject.class.should_receive(:find).with(pid).and_return(subject)
14
+ subject.should_receive(association).and_return(object1)
15
+ subject.should belong_to_associated_active_fedora_object(association).with_object(object1)
16
16
  end
17
17
 
18
18
  it 'should not match when association is different' do
19
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
20
- expect(subject).to receive(association).and_return(object1)
21
- expect {
22
- expect(subject).to belong_to_associated_active_fedora_object(association).with_object(object2)
23
- }.to (
19
+ subject.class.should_receive(:find).with(pid).and_return(subject)
20
+ subject.should_receive(association).and_return(object1)
21
+ lambda {
22
+ subject.should belong_to_associated_active_fedora_object(association).with_object(object2)
23
+ }.should (
24
24
  raise_error(
25
25
  RSpec::Expectations::ExpectationNotMetError,
26
26
  /expected #{subject.class} PID=#{pid} association: #{association.inspect}/
@@ -29,12 +29,12 @@ describe RSpec::Matchers, 'belong_to_associated_active_fedora_object_matcher' do
29
29
  end
30
30
 
31
31
  it 'should require :with_object option' do
32
- expect {
33
- expect(subject).to belong_to_associated_active_fedora_object(association)
34
- }.to(
32
+ lambda {
33
+ subject.should belong_to_associated_active_fedora_object(association)
34
+ }.should(
35
35
  raise_error(
36
36
  ArgumentError,
37
- 'subject.should belong_to_associated_active_fedora_object(<association_name>).with_object(<object>)'
37
+ "subject.should belong_to_associated_active_fedora_object(<association_name>).with_object(<object>)"
38
38
  )
39
39
  )
40
40
  end
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
  require 'ostruct'
3
- require 'active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher'
3
+ require "active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher"
4
4
 
5
- describe RSpec::Matchers, 'have_many_associated_active_fedora_objects_matcher' do
5
+ describe RSpec::Matchers, "have_many_associated_active_fedora_objects_matcher" do
6
6
  subject { OpenStruct.new(:pid => pid )}
7
7
  let(:pid) { 123 }
8
8
  let(:object1) { Object.new }
@@ -11,17 +11,17 @@ describe RSpec::Matchers, 'have_many_associated_active_fedora_objects_matcher' d
11
11
  let(:association) { :association }
12
12
 
13
13
  it 'should match when association is properly stored in fedora' do
14
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
15
- expect(subject).to receive(association).and_return([object1, object2])
16
- expect(subject).to have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
14
+ subject.class.should_receive(:find).with(pid).and_return(subject)
15
+ subject.should_receive(association).and_return([object1,object2])
16
+ subject.should have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
17
17
  end
18
18
 
19
19
  it 'should not match when association is different' do
20
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
21
- expect(subject).to receive(association).and_return([object1, object3])
22
- expect {
23
- expect(subject).to have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
24
- }.to (
20
+ subject.class.should_receive(:find).with(pid).and_return(subject)
21
+ subject.should_receive(association).and_return([object1,object3])
22
+ lambda {
23
+ subject.should have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
24
+ }.should (
25
25
  raise_error(
26
26
  RSpec::Expectations::ExpectationNotMetError,
27
27
  /expected #{subject.class} PID=#{pid} association: #{association.inspect}/
@@ -30,12 +30,12 @@ describe RSpec::Matchers, 'have_many_associated_active_fedora_objects_matcher' d
30
30
  end
31
31
 
32
32
  it 'should require :with_objects option' do
33
- expect {
34
- expect(subject).to have_many_associated_active_fedora_objects(association)
35
- }.to(
33
+ lambda {
34
+ subject.should have_many_associated_active_fedora_objects(association)
35
+ }.should(
36
36
  raise_error(
37
37
  ArgumentError,
38
- 'subject.should have_many_associated_active_fedora_objects(<association_name>).with_objects(<objects[]>)'
38
+ "subject.should have_many_associated_active_fedora_objects(<association_name>).with_objects(<objects[]>)"
39
39
  )
40
40
  )
41
41
  end
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
  require 'ostruct'
3
- require 'active_fedora/rspec_matchers/have_predicate_matcher'
3
+ require "active_fedora/rspec_matchers/have_predicate_matcher"
4
4
 
5
- describe RSpec::Matchers, 'have_predicate_matcher' do
5
+ describe RSpec::Matchers, "have_predicate_matcher" do
6
6
  subject { OpenStruct.new(:pid => pid )}
7
7
  let(:pid) { 123 }
8
8
  let(:object1) { Object.new }
@@ -11,17 +11,17 @@ describe RSpec::Matchers, 'have_predicate_matcher' do
11
11
  let(:predicate) { :predicate }
12
12
 
13
13
  it 'should match when relationship is "what we have in Fedora"' do
14
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
15
- expect(subject).to receive(:relationships).with(predicate).and_return([object1, object2])
16
- expect(subject).to have_predicate(predicate).with_objects([object1, object2])
14
+ subject.class.should_receive(:find).with(pid).and_return(subject)
15
+ subject.should_receive(:relationships).with(predicate).and_return([object1,object2])
16
+ subject.should have_predicate(predicate).with_objects([object1, object2])
17
17
  end
18
18
 
19
19
  it 'should not match when relationship is different' do
20
- expect(subject.class).to receive(:find).with(pid).and_return(subject)
21
- expect(subject).to receive(:relationships).with(predicate).and_return([object1, object3])
22
- expect {
23
- expect(subject).to have_predicate(predicate).with_objects([object1, object2])
24
- }.to (
20
+ subject.class.should_receive(:find).with(pid).and_return(subject)
21
+ subject.should_receive(:relationships).with(predicate).and_return([object1,object3])
22
+ lambda {
23
+ subject.should have_predicate(predicate).with_objects([object1, object2])
24
+ }.should (
25
25
  raise_error(
26
26
  RSpec::Expectations::ExpectationNotMetError,
27
27
  /expected #{subject.class} PID=#{pid} relationship: #{predicate.inspect}/
@@ -30,12 +30,12 @@ describe RSpec::Matchers, 'have_predicate_matcher' do
30
30
  end
31
31
 
32
32
  it 'should require :with_objects option' do
33
- expect {
34
- expect(subject).to have_predicate(predicate)
35
- }.to(
33
+ lambda {
34
+ subject.should have_predicate(predicate)
35
+ }.should(
36
36
  raise_error(
37
37
  ArgumentError,
38
- 'subject.should have_predicate(<predicate>).with_objects(<objects[]>)'
38
+ "subject.should have_predicate(<predicate>).with_objects(<objects[]>)"
39
39
  )
40
40
  )
41
41
  end
@@ -1,28 +1,28 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
  require 'ostruct'
3
3
  require 'webmock/rspec'
4
4
  WebMock.allow_net_connect!
5
- require 'active_fedora/rspec_matchers/match_fedora_datastream_matcher'
5
+ require "active_fedora/rspec_matchers/match_fedora_datastream_matcher"
6
6
 
7
- describe RSpec::Matchers, 'match_fedora_datastream' do
7
+ describe RSpec::Matchers, "match_fedora_datastream" do
8
8
  let(:pid) { 123 }
9
9
  let(:expected_xml) { '<xml><node>Value</node></xml>' }
10
10
  let(:datastream_name) { 'metadata' }
11
11
  let(:datastream_url) {
12
- File.join(ActiveFedora.config.credentials[:url], 'objects', pid.to_s, 'datastreams', datastream_name, 'content')
12
+ File.join(ActiveFedora.config.credentials[:url], 'objects', pid.to_s,'datastreams', datastream_name, 'content')
13
13
  }
14
14
  subject { OpenStruct.new(:pid => pid )}
15
15
 
16
16
  it 'should match based on request' do
17
17
  stub_request(:get, datastream_url).to_return(:body => expected_xml, :status => 200)
18
- expect(subject).to match_fedora_datastream(datastream_name).with(expected_xml)
18
+ subject.should match_fedora_datastream(datastream_name).with(expected_xml)
19
19
  end
20
20
 
21
21
  it 'should handle non-matching requests' do
22
22
  stub_request(:get, datastream_url).to_return(:body => "<parent>#{expected_xml}</parent>", :status => 200)
23
- expect {
24
- expect(subject).to match_fedora_datastream(datastream_name).with(expected_xml)
25
- }.to(
23
+ lambda {
24
+ subject.should match_fedora_datastream(datastream_name).with(expected_xml)
25
+ }.should(
26
26
  raise_error(
27
27
  RSpec::Expectations::ExpectationNotMetError,
28
28
  /expected #{subject.class} PID=#{pid} datastream: #{datastream_name.inspect} to match Fedora/
@@ -32,12 +32,12 @@ describe RSpec::Matchers, 'match_fedora_datastream' do
32
32
 
33
33
  it 'should require :with option' do
34
34
  stub_request(:get, datastream_url).to_return(:body => "<parent>#{expected_xml}</parent>", :status => 200)
35
- expect {
36
- expect(subject).to match_fedora_datastream(datastream_name)
37
- }.to(
35
+ lambda {
36
+ subject.should match_fedora_datastream(datastream_name)
37
+ }.should(
38
38
  raise_error(
39
39
  ArgumentError,
40
- 'match_fedora_datastream(<datastream_name>).with(<expected_xml>)'
40
+ "match_fedora_datastream(<datastream_name>).with(<expected_xml>)"
41
41
  )
42
42
  )
43
43
  end
@@ -3,11 +3,11 @@ require 'active_fedora/rubydora_connection'
3
3
 
4
4
  describe ActiveFedora::RubydoraConnection do
5
5
  describe 'initialize' do
6
- it 'should pass through valid options' do
7
- @instance = ActiveFedora::RubydoraConnection.new :timeout => 3600, :fake_option => :missing, :force => true, :validateChecksum => true
8
- expect(@instance.connection.client.options[:timeout]).to eq(3600)
9
- expect(@instance.connection.config[:validateChecksum]).to eq(true)
10
- expect(@instance.connection.client.options.has_key?(:fake_option)).to be_falsey
6
+ it "should pass through valid options" do
7
+ @instance = ActiveFedora::RubydoraConnection.new :timeout => 3600, :fake_option => :missing, :force => true, :validateChecksum=>true
8
+ @instance.connection.client.options[:timeout].should == 3600
9
+ @instance.connection.config[:validateChecksum].should == true
10
+ @instance.connection.client.options.has_key?(:fake_option).should be_false
11
11
  end
12
12
  end
13
13
  end
@@ -1,42 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
- require 'xmlsimple'
4
-
5
3
  @@last_pid = 0
6
-
7
- class SpecNode2
8
- include ActiveFedora::SemanticNode
9
-
10
- attr_accessor :pid
11
- def internal_uri
12
- 'info:fedora/' + pid.to_s
13
- end
14
- end
15
-
16
4
  describe ActiveFedora::SemanticNode do
17
5
 
18
-
19
- describe 'with a bunch of objects' do
6
+ describe "with a bunch of objects" do
20
7
  def increment_pid
21
- @@last_pid += 1
8
+ @@last_pid += 1
22
9
  end
23
-
10
+
24
11
  before(:each) do
25
12
  class SpecNode
26
13
  include ActiveFedora::SemanticNode
27
-
14
+
28
15
  attr_accessor :pid
29
- def initialize(params = {})
30
- self.pid = params[:pid]
31
- end
32
- def internal_uri
33
- 'info:fedora/' + pid.to_s
34
- end
35
- end
36
-
37
- class AudioRecord
38
- attr_accessor :pid
39
- def initialize(params = {})
16
+ def initialize (params={})
40
17
  self.pid = params[:pid]
41
18
  end
42
19
  def internal_uri
@@ -45,126 +22,90 @@ describe ActiveFedora::SemanticNode do
45
22
  end
46
23
 
47
24
  @node = SpecNode.new
48
- allow(@node).to receive(:rels_ext).and_return(double('rels_ext', :content_will_change! => true, :content => ''))
25
+ @node.stub(:rels_ext).and_return(double("rels_ext", :content_will_change! => true, :content=>''))
49
26
  @node.pid = increment_pid
50
- @test_object = SpecNode2.new
51
- @test_object.pid = increment_pid
52
- allow(@test_object).to receive(:rels_ext).and_return(double('rels_ext', :content_will_change! => true, :content => ''))
53
27
  end
54
-
28
+
55
29
  after(:each) do
56
30
  Object.send(:remove_const, :SpecNode)
57
- begin
58
- @test_object.delete
59
- rescue
60
- end
61
- begin
62
- @test_object2.delete
63
- rescue
64
- end
65
- begin
66
- @test_object3.delete
67
- rescue
68
- end
69
- begin
70
- @test_object4.delete
71
- rescue
72
- end
73
- begin
74
- @test_object5.delete
75
- rescue
76
- end
77
31
  end
78
32
 
79
-
80
- it 'should provide .internal_uri' do
81
- expect(@node).to respond_to(:internal_uri)
33
+ describe "pid_from_uri" do
34
+ it "should strip the info:fedora/ out of a given string" do
35
+ SpecNode.pid_from_uri("info:fedora/FOO:BAR").should == "FOO:BAR"
36
+ end
82
37
  end
83
-
84
-
85
- describe '.add_relationship' do
86
- it 'should add relationship to the relationships graph' do
87
- @node.add_relationship('isMemberOf', 'demo:9')
88
- expect(@node.ids_for_outbound('isMemberOf')).to eq(['demo:9'])
38
+
39
+ describe ".add_relationship" do
40
+ it "should add relationship to the relationships graph" do
41
+ @node.add_relationship("isMemberOf", 'demo:9')
42
+ @node.ids_for_outbound("isMemberOf").should == ['demo:9']
89
43
  end
90
- it 'should not be written into the graph until it is saved' do
44
+ it "should not be written into the graph until it is saved" do
91
45
  @n1 = ActiveFedora::Base.new
92
46
  @node.add_relationship(:has_part, @n1)
93
- expect(@node.relationships.statements.to_a.first.object.to_s).to eq('info:fedora/')
47
+ @node.relationships.statements.to_a.first.object.to_s.should == 'info:fedora/'
94
48
  @n1.save
95
- expect(@node.relationships.statements.to_a.first.object.to_s).to eq(@n1.internal_uri)
49
+ @node.relationships.statements.to_a.first.object.to_s.should == @n1.internal_uri
96
50
  end
97
51
 
98
- it 'should add a literal relationship to the relationships graph' do
99
- @node.add_relationship('isMemberOf', 'demo:9', true)
100
- expect(@node.relationships('isMemberOf')).to eq(['demo:9'])
52
+ it "should add a literal relationship to the relationships graph" do
53
+ @node.add_relationship("isMemberOf", 'demo:9', true)
54
+ @node.relationships("isMemberOf").should == ['demo:9']
101
55
  end
102
-
103
- it 'adding relationship to an instance should not affect class-level relationships hash' do
56
+
57
+ it "adding relationship to an instance should not affect class-level relationships hash" do
104
58
  local_test_node1 = SpecNode.new
105
59
  local_test_node2 = SpecNode.new
106
- allow(local_test_node1).to receive(:rels_ext).and_return(double('rels_ext', :content_will_change! => true, :content => ''))
60
+ local_test_node1.stub(:rels_ext).and_return(double("rels_ext", :content_will_change! => true, :content=>''))
107
61
  local_test_node1.add_relationship(:is_member_of, 'demo:10')
108
- allow(local_test_node2).to receive(:rels_ext).and_return(double('rels-ext', :content => ''))
109
-
110
- expect(local_test_node1.relationships(:is_member_of)).to eq(['demo:10'])
111
- expect(local_test_node2.relationships(:is_member_of)).to eq([])
62
+ local_test_node2.stub(:rels_ext).and_return(double('rels-ext', :content=>''))
63
+
64
+ local_test_node1.relationships(:is_member_of).should == ["demo:10"]
65
+ local_test_node2.relationships(:is_member_of).should == []
112
66
  end
113
-
67
+
114
68
  end
115
69
 
116
- describe '.clear_relationship' do
70
+ describe ".clear_relationship" do
117
71
  before do
118
72
  @node.add_relationship(:is_member_of, 'demo:9')
119
73
  @node.add_relationship(:is_member_of, 'demo:7')
120
74
  @node.add_relationship(:has_description, 'demo:9')
121
75
  end
122
- it 'should clear the specified relationship' do
76
+ it "should clear the specified relationship" do
123
77
  @node.clear_relationship(:is_member_of)
124
- expect(@node.relationships(:is_member_of)).to eq([])
125
- expect(@node.relationships(:has_description)).to eq(['demo:9'])
78
+ @node.relationships(:is_member_of).should == []
79
+ @node.relationships(:has_description).should == ['demo:9']
126
80
  end
127
-
128
- end
129
-
130
-
131
- it 'should provide .outbound_relationships' do
132
- expect(@node).to respond_to(:outbound_relationships)
133
81
  end
134
-
135
-
82
+
136
83
  describe '#remove_relationship' do
137
84
  it 'should remove a relationship from the relationships hash' do
138
- allow(@test_object).to receive(:rels_ext).and_return(double('rels_ext', :content_will_change! => true, :content => ''))
139
- @test_object.add_relationship(:has_part, 'info:fedora/3')
140
- @test_object.add_relationship(:has_part, 'info:fedora/4')
85
+ @node.stub(:rels_ext).and_return(double("rels_ext", :content_will_change! => true, :content=>''))
86
+ @node.add_relationship(:has_part, "info:fedora/3")
87
+ @node.add_relationship(:has_part, "info:fedora/4")
141
88
  #check both are there
142
- expect(@test_object.ids_for_outbound(:has_part)).to include '3', '4'
143
- @test_object.remove_relationship(:has_part, 'info:fedora/3')
89
+ @node.ids_for_outbound(:has_part).should include "3", "4"
90
+ @node.remove_relationship(:has_part, "info:fedora/3")
144
91
  #check returns false if relationship does not exist and does nothing with different predicate
145
- @test_object.remove_relationship(:has_member, 'info:fedora/4')
92
+ @node.remove_relationship(:has_member,"info:fedora/4")
146
93
  #check only one item removed
147
- expect(@test_object.ids_for_outbound(:has_part)).to eq(['4'])
148
- @test_object.remove_relationship(:has_part, 'info:fedora/4')
94
+ @node.ids_for_outbound(:has_part).should == ['4']
95
+ @node.remove_relationship(:has_part,"info:fedora/4")
149
96
  #check last item removed and predicate removed since now emtpy
150
- expect(@test_object.ids_for_outbound(:has_part)).to eq([])
151
-
152
- expect(@test_object.relationships_are_dirty).to eq(true)
97
+ @node.ids_for_outbound(:has_part).should == []
153
98
 
99
+ @node.relationships_are_dirty.should == true
100
+
154
101
  end
155
102
  end
156
103
 
157
104
  describe '#assert_kind_of' do
158
105
  it 'should raise an exception if object supplied is not the correct type' do
159
- had_exception = false
160
- begin
161
- @test_object.assert_kind_of 'SpecNode2', @test_object, ActiveFedora::Base
162
- rescue
163
- had_exception = true
164
- end
165
- raise 'Failed to throw exception with kind of mismatch' unless had_exception
106
+ expect {@node.assert_kind_of 'SpecNode', @node, ActiveFedora::Base}.to raise_error
166
107
  #now should not throw any exception
167
- @test_object.assert_kind_of 'SpecNode2', @test_object, SpecNode2
108
+ @node.assert_kind_of 'SpecNode', @node, SpecNode
168
109
  end
169
110
  end
170
111
  end