active-fedora 6.7.8 → 6.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +938 -0
  5. data/.travis.yml +5 -6
  6. data/Gemfile +3 -1
  7. data/Rakefile +7 -5
  8. data/active-fedora.gemspec +7 -8
  9. data/lib/active_fedora/om_datastream.rb +1 -0
  10. data/lib/active_fedora/rdf_xml_writer.rb +31 -62
  11. data/lib/active_fedora/version.rb +1 -1
  12. data/spec/config_helper.rb +14 -14
  13. data/spec/integration/associations_spec.rb +232 -232
  14. data/spec/integration/attributes_spec.rb +11 -12
  15. data/spec/integration/auditable_spec.rb +10 -10
  16. data/spec/integration/base_spec.rb +163 -163
  17. data/spec/integration/bug_spec.rb +7 -7
  18. data/spec/integration/complex_rdf_datastream_spec.rb +88 -88
  19. data/spec/integration/datastream_collections_spec.rb +69 -69
  20. data/spec/integration/datastream_spec.rb +43 -43
  21. data/spec/integration/datastreams_spec.rb +63 -63
  22. data/spec/integration/delegating_spec.rb +14 -14
  23. data/spec/integration/delete_all_spec.rb +38 -42
  24. data/spec/integration/fedora_solr_sync_spec.rb +5 -5
  25. data/spec/integration/full_featured_model_spec.rb +101 -101
  26. data/spec/integration/has_many_associations_spec.rb +24 -24
  27. data/spec/integration/model_spec.rb +30 -30
  28. data/spec/integration/nested_attribute_spec.rb +41 -41
  29. data/spec/integration/ntriples_datastream_spec.rb +107 -107
  30. data/spec/integration/om_datastream_spec.rb +67 -67
  31. data/spec/integration/persistence_spec.rb +6 -6
  32. data/spec/integration/rdf_nested_attributes_spec.rb +56 -56
  33. data/spec/integration/relation_delegation_spec.rb +24 -26
  34. data/spec/integration/rels_ext_datastream_spec.rb +20 -20
  35. data/spec/integration/scoped_query_spec.rb +40 -41
  36. data/spec/integration/solr_instance_loader_spec.rb +4 -4
  37. data/spec/integration/solr_service_spec.rb +46 -46
  38. data/spec/rails3_test_app/config/application.rb +1 -1
  39. data/spec/rails3_test_app/config/environments/development.rb +0 -1
  40. data/spec/rails3_test_app/config/environments/production.rb +1 -1
  41. data/spec/rails3_test_app/spec/spec_helper.rb +3 -3
  42. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +4 -4
  43. data/spec/samples/hydra-mods_article_datastream.rb +334 -334
  44. data/spec/samples/hydra-rights_metadata_datastream.rb +57 -57
  45. data/spec/samples/marpa-dc_datastream.rb +17 -17
  46. data/spec/samples/models/audio_record.rb +16 -16
  47. data/spec/samples/models/image.rb +2 -2
  48. data/spec/samples/models/mods_article.rb +5 -5
  49. data/spec/samples/models/oral_history.rb +18 -18
  50. data/spec/samples/models/seminar.rb +24 -24
  51. data/spec/samples/models/seminar_audio_file.rb +17 -17
  52. data/spec/samples/oral_history_sample_model.rb +21 -21
  53. data/spec/samples/special_thing.rb +14 -14
  54. data/spec/spec_helper.rb +7 -11
  55. data/spec/support/an_active_model.rb +2 -2
  56. data/spec/support/mock_fedora.rb +16 -17
  57. data/spec/unit/active_fedora_spec.rb +58 -58
  58. data/spec/unit/association_proxy_spec.rb +5 -7
  59. data/spec/unit/base_active_model_spec.rb +25 -26
  60. data/spec/unit/base_cma_spec.rb +5 -5
  61. data/spec/unit/base_datastream_management_spec.rb +27 -27
  62. data/spec/unit/base_delegate_spec.rb +80 -82
  63. data/spec/unit/base_delegate_to_spec.rb +37 -39
  64. data/spec/unit/base_extra_spec.rb +48 -48
  65. data/spec/unit/base_spec.rb +300 -300
  66. data/spec/unit/callback_spec.rb +19 -19
  67. data/spec/unit/code_configurator_spec.rb +17 -17
  68. data/spec/unit/config_spec.rb +16 -8
  69. data/spec/unit/content_model_spec.rb +60 -60
  70. data/spec/unit/datastream_collections_spec.rb +229 -229
  71. data/spec/unit/datastream_spec.rb +57 -54
  72. data/spec/unit/datastreams_spec.rb +77 -77
  73. data/spec/unit/file_configurator_spec.rb +217 -217
  74. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +26 -26
  75. data/spec/unit/has_many_collection_spec.rb +9 -9
  76. data/spec/unit/inheritance_spec.rb +12 -13
  77. data/spec/unit/model_spec.rb +41 -51
  78. data/spec/unit/nom_datastream_spec.rb +15 -15
  79. data/spec/unit/ntriples_datastream_spec.rb +112 -112
  80. data/spec/unit/om_datastream_spec.rb +233 -227
  81. data/spec/unit/persistence_spec.rb +6 -6
  82. data/spec/unit/predicates_spec.rb +73 -73
  83. data/spec/unit/property_spec.rb +9 -17
  84. data/spec/unit/qualified_dublin_core_datastream_spec.rb +33 -33
  85. data/spec/unit/query_spec.rb +188 -217
  86. data/spec/unit/rdf_datastream_spec.rb +28 -21
  87. data/spec/unit/rdf_list_nested_attributes_spec.rb +34 -34
  88. data/spec/unit/rdf_list_spec.rb +80 -104
  89. data/spec/unit/rdf_node_spec.rb +7 -7
  90. data/spec/unit/rdf_xml_writer_spec.rb +10 -10
  91. data/spec/unit/rdfxml_rdf_datastream_spec.rb +27 -27
  92. data/spec/unit/relationship_graph_spec.rb +51 -51
  93. data/spec/unit/rels_ext_datastream_spec.rb +75 -69
  94. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +15 -15
  95. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +15 -15
  96. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +15 -15
  97. data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +12 -12
  98. data/spec/unit/rubydora_connection_spec.rb +5 -5
  99. data/spec/unit/semantic_node_spec.rb +59 -59
  100. data/spec/unit/serializers_spec.rb +4 -4
  101. data/spec/unit/service_definitions_spec.rb +26 -26
  102. data/spec/unit/simple_datastream_spec.rb +17 -17
  103. data/spec/unit/solr_config_options_spec.rb +27 -28
  104. data/spec/unit/solr_digital_object_spec.rb +21 -21
  105. data/spec/unit/solr_service_spec.rb +81 -81
  106. data/spec/unit/unsaved_digital_object_spec.rb +20 -20
  107. data/spec/unit/validations_spec.rb +21 -21
  108. metadata +70 -58
  109. data/gemfiles/gemfile.rails3 +0 -11
  110. data/gemfiles/gemfile.rails4 +0 -10
@@ -1,14 +1,13 @@
1
+ sudo: false
1
2
  language: ruby
2
3
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
-
6
- gemfile:
7
- - gemfiles/gemfile.rails3
8
- - gemfiles/gemfile.rails4
4
+ - 2.2.5
5
+ - 2.3.1
9
6
 
10
7
  notifications:
11
8
  irc: "irc.freenode.org#projecthydra"
12
9
 
13
10
  before_install:
14
11
  - gem install bundler
12
+
13
+ jdk: oraclejdk8
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Bundler will rely on active-fedora.gemspec for dependency information.
4
4
 
@@ -10,3 +10,5 @@ group :development, :test do
10
10
  end
11
11
 
12
12
  gem 'jruby-openssl', :platform=> :jruby
13
+
14
+ gem 'activemodel', '~> 4.2'
data/Rakefile CHANGED
@@ -1,19 +1,21 @@
1
1
  require 'rake/clean'
2
2
  require 'rubygems'
3
3
  require 'bundler'
4
- require "bundler/setup"
5
- require "active-fedora"
4
+ require 'bundler/setup'
5
+ require 'active-fedora'
6
6
 
7
7
  Bundler::GemHelper.install_tasks
8
8
 
9
+ # peg to an expected-to-match version of jetty, if not specified
10
+ ZIP_URL ||= ENV['ZIP_URL'] || 'https://github.com/projecthydra/hydra-jetty/archive/v7.2.0.zip'
11
+
9
12
  # load rake tasks defined in lib/tasks that are not loaded in lib/active_fedora.rb
10
- load "lib/tasks/active_fedora_dev.rake" if defined?(Rake)
13
+ load 'lib/tasks/active_fedora_dev.rake' if defined?(Rake)
11
14
 
12
15
  CLEAN.include %w[**/.DS_Store tmp *.log *.orig *.tmp **/*~]
13
16
 
14
- task :ci => ['jetty:clean', 'active_fedora:ci']
17
+ task :ci => ['jetty:clean', 'active_fedora:ci']
15
18
  task :spec => ['active_fedora:rspec']
16
19
  task :rcov => ['active_fedora:rcov']
17
20
 
18
-
19
21
  task :default => [:ci]
@@ -15,24 +15,24 @@ Gem::Specification.new do |s|
15
15
  s.required_ruby_version = '>= 1.9.3'
16
16
 
17
17
  s.add_dependency('rsolr')
18
- s.add_dependency('om', '~> 3.0.0')
18
+ s.add_dependency('om', '~> 3.0')
19
19
  s.add_dependency('nom-xml', '>=0.5.1')
20
- s.add_dependency("activesupport", '>= 3.0.0')
20
+ s.add_dependency("activesupport", '>= 3')
21
21
  s.add_dependency("mediashelf-loggable")
22
- s.add_dependency("rubydora", '~> 1.7.4')
23
- s.add_dependency("rdf", '~> 1.1.1.1')
24
- s.add_dependency("rdf-rdfxml", '1.0.1')
22
+ s.add_dependency("rubydora", '~>1.6', '>= 1.6.5')
23
+ s.add_dependency("rdf", '~> 1.1', '>= 1.1.1.1')
24
+ s.add_dependency("rdf-rdfxml", '~>1.1')
25
25
  s.add_dependency("deprecation")
26
26
  s.add_development_dependency("rdoc")
27
27
  s.add_development_dependency("yard")
28
28
  s.add_development_dependency("RedCloth") # for RDoc formatting
29
29
  s.add_development_dependency("rake")
30
30
  s.add_development_dependency("jettywrapper", ">=1.4.0")
31
- s.add_development_dependency("rspec", "~> 2.9")
31
+ s.add_development_dependency("rspec", "~> 2.99")
32
32
  s.add_development_dependency("equivalent-xml")
33
33
  s.add_development_dependency("rest-client")
34
34
  s.add_development_dependency("webmock")
35
-
35
+
36
36
  s.files = `git ls-files`.split("\n")
37
37
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
38
38
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -43,4 +43,3 @@ Gem::Specification.new do |s|
43
43
  s.require_paths = ["lib"]
44
44
 
45
45
  end
46
-
@@ -126,6 +126,7 @@ module ActiveFedora
126
126
 
127
127
  def content_changed?
128
128
  return false if !xml_loaded
129
+ return true if changed_attributes.any?
129
130
  super
130
131
  end
131
132
 
@@ -1,80 +1,49 @@
1
- require 'uri'
2
1
  require 'rdf/rdfxml'
3
2
 
4
3
  module ActiveFedora
5
4
  # This class ensures that the RELS-EXT datastream is always serialized
6
5
  # with an rdf:Description container for the properties
7
6
  # the default behavior for RDF:RDFXML::Writer is to change that element if
8
- # an rdf:type assertion is present; this is incompatible with Fedora
7
+ # an rdf:type assertion is present; this is incompatible with Fedora 3
9
8
  class RDFXMLWriter < RDF::RDFXML::Writer
10
- def subject(subject, parent_node)
11
-
12
- raise RDF::WriterError, "Illegal use of subject #{subject.inspect}, not supported in RDF/XML" unless subject.resource?
13
-
14
- node = if !is_done?(subject)
15
- subject_not_done(subject, parent_node)
16
- elsif @force_RDF_about.include?(subject)
17
- force_about(subject, parent_node)
18
- end
19
- @force_RDF_about.delete(subject)
9
+ # Display a subject.
10
+ #
11
+ # If the Haml template contains an entry matching the subject's rdf:type URI, that entry will be used as the template for this subject and it's properties.
12
+ #
13
+ # @example Displays a subject as a Resource Definition:
14
+ # <div typeof="rdfs:Resource" about="http://example.com/resource">
15
+ # <h1 property="dc:title">label</h1>
16
+ # <ul>
17
+ # <li content="2009-04-30T06:15:51Z" property="dc:created">2009-04-30T06:15:51+00:00</li>
18
+ # </ul>
19
+ # </div>
20
+ #
21
+ # @param [RDF::Resource] subject
22
+ # @param [Hash{Symbol => Object}] options
23
+ # @option options [:li, nil] :element(:div)
24
+ # Serialize using &lt;li&gt; rather than template default element
25
+ # @option options [RDF::Resource] :rel (nil)
26
+ # Optional @rel property
27
+ # @return [Nokogiri::XML::Element, {Namespace}]
28
+ #
29
+ def subject(subject, options = {})
30
+ return if is_done?(subject)
20
31
 
21
- parent_node.add_child(node) if node
22
- end
23
-
24
- private
25
-
26
- def force_about(subject, parent_node)
27
- add_debug {"subject: #{subject.inspect}, force about"}
28
- node = Nokogiri::XML::Element.new("rdf:Description", parent_node.document)
29
- if subject.is_a?(RDF::Node)
30
- node["rdf:nodeID"] = subject.id
31
- else
32
- node["rdf:about"] = relativize(subject)
33
- end
34
- node
35
- end
36
-
37
- def subject_not_done(subject, parent_node)
38
32
  subject_done(subject)
39
- properties = @graph.properties(subject)
40
- add_debug {"subject: #{subject.inspect}, props: #{properties.inspect}"}
41
-
42
- @graph.query(:subject => subject).each do |st|
43
- raise RDF::WriterError, "Illegal use of predicate #{st.predicate.inspect}, not supported in RDF/XML" unless st.predicate.uri?
44
- end
45
33
 
34
+ properties = properties_for_subject(subject)
35
+ typeof = type_of(properties[RDF.type.to_s], subject)
46
36
  prop_list = order_properties(properties)
47
- add_debug {"=> property order: #{prop_list.to_sentence}"}
48
37
 
49
- qname = "rdf:Description"
50
- prefixes[:rdf] = RDF.to_uri
38
+ add_debug {"subject: #{curie.inspect}, typeof: #{typeof.inspect}, props: #{prop_list.inspect}"}
51
39
 
52
- node = Nokogiri::XML::Element.new(qname, parent_node.document)
53
-
54
- if subject.is_a?(RDF::Node)
55
- # Only need nodeID if it's referenced elsewhere
56
- if ref_count(subject) > (@depth == 0 ? 0 : 1)
57
- node["rdf:nodeID"] = subject.id
58
- else
59
- node.add_child(Nokogiri::XML::Comment.new(node.document, "Serialization for #{subject}")) if RDF::RDFXML::debug?
60
- end
61
- else
62
- node["rdf:about"] = relativize(subject)
63
- end
40
+ render_opts = {:typeof => typeof, :property_values => properties}.merge(options)
64
41
 
65
- prop_list.each do |prop|
66
- prop_ref = RDF::URI.intern(prop)
67
-
68
- properties[prop].each do |object|
69
- raise RDF::WriterError, "Illegal use of object #{object.inspect}, not supported in RDF/XML" unless object.resource? || object.literal?
70
-
71
- @depth += 1
72
- predicate(prop_ref, object, node, properties[prop].length == 1)
73
- @depth -= 1
74
- end
75
- end
76
- node
42
+ render_subject_template(subject, prop_list, render_opts)
77
43
  end
78
44
 
45
+ def type_of(type, subject)
46
+ ""
47
+ end
79
48
  end
80
49
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "6.7.8"
2
+ VERSION = "6.8.0"
3
3
  end
@@ -1,26 +1,26 @@
1
1
  def mock_yaml(hash, path)
2
- mock_file = double(path.split("/")[-1])
3
- File.stub(:exist?).with(path).and_return(true)
4
- File.stub(:open).with(path).and_return(mock_file)
5
- YAMLAdaptor.stub(:load).and_return(hash)
2
+ mock_file = double(path.split('/')[-1])
3
+ allow(File).to receive(:exist?).with(path).and_return(true)
4
+ allow(File).to receive(:open).with(path).and_return(mock_file)
5
+ allow(YAMLAdaptor).to receive(:load).and_return(hash)
6
6
  end
7
7
 
8
8
  def default_predicate_mapping_file
9
- File.expand_path(File.join(File.dirname(__FILE__),"..","config","predicate_mappings.yml"))
9
+ File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'predicate_mappings.yml'))
10
10
  end
11
11
 
12
- def stub_rails(opts={})
13
- Object.const_set("Rails",Class)
14
- Rails.send(:undef_method,:env) if Rails.respond_to?(:env)
15
- Rails.send(:undef_method,:root) if Rails.respond_to?(:root)
16
- opts.each { |k,v| Rails.send(:define_method,k){ return v } }
12
+ def stub_rails(opts = {})
13
+ Object.const_set('Rails', Class)
14
+ Rails.send(:undef_method, :env) if Rails.respond_to?(:env)
15
+ Rails.send(:undef_method, :root) if Rails.respond_to?(:root)
16
+ opts.each { |k, v| Rails.send(:define_method, k){ return v } }
17
17
  end
18
18
 
19
19
  def unstub_rails
20
- Object.send(:remove_const,:Rails) if defined?(Rails)
20
+ Object.send(:remove_const, :Rails) if defined?(Rails)
21
21
  end
22
-
22
+
23
23
  def setup_pretest_env
24
- ENV['RAILS_ENV']='test'
25
- ENV['environment']='test'
24
+ ENV['RAILS_ENV'] = 'test'
25
+ ENV['environment'] = 'test'
26
26
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
- describe "use a URI as the property" do
4
+ describe 'use a URI as the property' do
5
5
  before do
6
- class Book < ActiveFedora::Base
7
- belongs_to :author, :property=>RDF::DC.creator, :class_name=>'Person'
6
+ class Book < ActiveFedora::Base
7
+ belongs_to :author, :property => RDF::DC.creator, :class_name => 'Person'
8
8
  end
9
9
 
10
10
  class Person < ActiveFedora::Base
@@ -19,24 +19,24 @@ describe ActiveFedora::Base do
19
19
  let(:person) { Person.create}
20
20
  let(:book) { Book.new(author: person) }
21
21
 
22
- it "should go" do
22
+ it 'should go' do
23
23
  book.save
24
24
  end
25
25
 
26
26
  end
27
27
 
28
- describe "complex example" do
28
+ describe 'complex example' do
29
29
  before do
30
- class Library < ActiveFedora::Base
31
- has_many :books, :property=>:has_constituent
30
+ class Library < ActiveFedora::Base
31
+ has_many :books, :property => :has_constituent
32
32
  end
33
33
 
34
- class Book < ActiveFedora::Base
35
- belongs_to :library, :property=>:has_constituent
36
- belongs_to :author, :property=>:has_member, :class_name=>'Person'
37
- belongs_to :publisher, :property=>:has_member
38
- has_and_belongs_to_many :topics, :property=>:has_topic, :inverse_of=>:is_topic_of
39
- has_and_belongs_to_many :collections, :property=>:is_member_of_collection
34
+ class Book < ActiveFedora::Base
35
+ belongs_to :library, :property => :has_constituent
36
+ belongs_to :author, :property => :has_member, :class_name => 'Person'
37
+ belongs_to :publisher, :property => :has_member
38
+ has_and_belongs_to_many :topics, :property => :has_topic, :inverse_of => :is_topic_of
39
+ has_and_belongs_to_many :collections, :property => :is_member_of_collection
40
40
  end
41
41
 
42
42
  class SpecialInheritedBook < Book
@@ -51,8 +51,8 @@ describe ActiveFedora::Base do
51
51
  class Collection < ActiveFedora::Base
52
52
  end
53
53
 
54
- class Topic < ActiveFedora::Base
55
- has_and_belongs_to_many :books, :property=>:is_topic_of
54
+ class Topic < ActiveFedora::Base
55
+ has_and_belongs_to_many :books, :property => :is_topic_of
56
56
  end
57
57
  end
58
58
 
@@ -65,8 +65,8 @@ describe ActiveFedora::Base do
65
65
  Object.send(:remove_const, :SpecialInheritedBook)
66
66
  end
67
67
 
68
- describe "an unsaved instance" do
69
- describe "of has_many" do
68
+ describe 'an unsaved instance' do
69
+ describe 'of has_many' do
70
70
  before do
71
71
  @library = Library.new()
72
72
  @book = Book.new
@@ -75,85 +75,85 @@ describe ActiveFedora::Base do
75
75
  @book2.save
76
76
  end
77
77
 
78
- it "should build child" do
78
+ it 'should build child' do
79
79
  new_book = @library.books.build({})
80
- new_book.should be_new_record
81
- new_book.should be_kind_of Book
82
- new_book.library.should be_nil
83
- @library.books.should == [new_book]
84
- #TODO save the associated children too, requires something like ActiveRecord::AutosaveAssociation (ver 3.0.12)
80
+ expect(new_book).to be_new_record
81
+ expect(new_book).to be_kind_of Book
82
+ expect(new_book.library).to be_nil
83
+ expect(@library.books).to eq([new_book])
84
+ #TODO save the associated children too, requires something like ActiveRecord::AutosaveAssociation (ver 3.0.12)
85
85
  #@library.save
86
86
  #new_book.library.should == @library
87
87
  end
88
88
 
89
89
  it "should not create children if the parent isn't saved" do
90
- lambda {@library.books.create({})}.should raise_error ActiveFedora::RecordNotSaved, "You cannot call create unless the parent is saved"
90
+ expect {@library.books.create({})}.to raise_error ActiveFedora::RecordNotSaved, 'You cannot call create unless the parent is saved'
91
91
  end
92
92
 
93
- it "should create children" do
93
+ it 'should create children' do
94
94
  @library.save!
95
95
  new_book = @library.books.create({})
96
- new_book.should_not be_new_record
97
- new_book.should be_kind_of Book
98
- new_book.library.should == @library
96
+ expect(new_book).not_to be_new_record
97
+ expect(new_book).to be_kind_of Book
98
+ expect(new_book.library).to eq(@library)
99
99
  end
100
100
 
101
- it "should build parent" do
101
+ it 'should build parent' do
102
102
  new_library = @book.build_library({})
103
- new_library.should be_new_record
104
- new_library.should be_kind_of Library
105
- @book.library.should == new_library
103
+ expect(new_library).to be_new_record
104
+ expect(new_library).to be_kind_of Library
105
+ expect(@book.library).to eq(new_library)
106
106
  end
107
107
 
108
- it "should create parent" do
108
+ it 'should create parent' do
109
109
  new_library = @book.create_library({})
110
- new_library.should_not be_new_record
111
- new_library.should be_kind_of Library
112
- @book.library.should == new_library
110
+ expect(new_library).not_to be_new_record
111
+ expect(new_library).to be_kind_of Library
112
+ expect(@book.library).to eq(new_library)
113
113
  end
114
114
 
115
- it "should let you shift onto the association" do
116
- @library.new_record?.should be_true
115
+ it 'should let you shift onto the association' do
116
+ expect(@library.new_record?).to be_truthy
117
117
  @library.books.size == 0
118
- @library.books.should == []
119
- @library.book_ids.should ==[]
118
+ expect(@library.books).to eq([])
119
+ expect(@library.book_ids).to eq([])
120
120
  @library.books << @book
121
- @library.books.should == [@book]
122
- @library.book_ids.should ==[@book.pid]
121
+ expect(@library.books).to eq([@book])
122
+ expect(@library.book_ids).to eq([@book.pid])
123
123
 
124
124
  end
125
125
 
126
- it "should let you set an array of objects" do
126
+ it 'should let you set an array of objects' do
127
127
  @library.books = [@book, @book2]
128
- @library.books.should == [@book, @book2]
128
+ expect(@library.books).to eq([@book, @book2])
129
129
  @library.save
130
130
 
131
131
  @library.books = [@book]
132
- @library.books.should == [@book]
133
-
132
+ expect(@library.books).to eq([@book])
133
+
134
134
  end
135
- it "should let you set an array of object ids" do
135
+ it 'should let you set an array of object ids' do
136
136
  @library.book_ids = [@book.pid, @book2.pid]
137
- @library.books.should == [@book, @book2]
137
+ expect(@library.books).to eq([@book, @book2])
138
138
  end
139
139
 
140
- it "setter should wipe out previously saved relations" do
140
+ it 'setter should wipe out previously saved relations' do
141
141
  @library.book_ids = [@book.pid, @book2.pid]
142
142
  @library.book_ids = [@book2.pid]
143
- @library.books.should == [@book2]
144
-
143
+ expect(@library.books).to eq([@book2])
144
+
145
145
  end
146
146
 
147
- it "saving the parent should save the relationships on the children" do
147
+ it 'saving the parent should save the relationships on the children' do
148
148
  @library.save
149
149
  @library.books = [@book, @book2]
150
150
  @library.save
151
151
  @library = Library.find(@library.pid)
152
- @library.books.should == [@book, @book2]
152
+ expect(@library.books).to eq([@book, @book2])
153
153
  end
154
154
 
155
155
 
156
- it "should let you lookup an array of objects with solr" do
156
+ it 'should let you lookup an array of objects with solr' do
157
157
  @library.save
158
158
  @book.library = @library
159
159
  @book2.library = @library
@@ -161,13 +161,13 @@ describe ActiveFedora::Base do
161
161
  @book2.save
162
162
 
163
163
  @library = Library.find(@library.pid)
164
- @library.books.should == [@book, @book2]
165
-
166
- solr_resp = @library.books(:response_format=>:solr)
167
- solr_resp.size.should == 2
168
- solr_resp[0]['id'].should == @book.pid
169
- solr_resp[1]['id'].should == @book2.pid
170
-
164
+ expect(@library.books).to eq([@book, @book2])
165
+
166
+ solr_resp = @library.books(:response_format => :solr)
167
+ expect(solr_resp.size).to eq(2)
168
+ expect(solr_resp[0]['id']).to eq(@book.pid)
169
+ expect(solr_resp[1]['id']).to eq(@book2.pid)
170
+
171
171
  end
172
172
 
173
173
 
@@ -178,7 +178,7 @@ describe ActiveFedora::Base do
178
178
  end
179
179
  end
180
180
 
181
- describe "of belongs to" do
181
+ describe 'of belongs to' do
182
182
  before do
183
183
  @library = Library.new()
184
184
  @library.save
@@ -188,12 +188,12 @@ describe ActiveFedora::Base do
188
188
  it "shouldn't do anything if you set a nil id" do
189
189
  @book.library_id = nil
190
190
  end
191
- it "should be settable from the book side" do
191
+ it 'should be settable from the book side' do
192
192
  @book.library_id = @library.pid
193
- @book.library.should == @library
194
- @book.library.pid.should == @library.pid
195
- @book.attributes= {:library_id => ""}
196
- @book.library_id.should be_nil
193
+ expect(@book.library).to eq(@library)
194
+ expect(@book.library.pid).to eq(@library.pid)
195
+ @book.attributes = {:library_id => ''}
196
+ expect(@book.library_id).to be_nil
197
197
  end
198
198
  after do
199
199
  @library.delete
@@ -201,43 +201,43 @@ describe ActiveFedora::Base do
201
201
  end
202
202
  end
203
203
 
204
- describe "of has_many_and_belongs_to" do
204
+ describe 'of has_many_and_belongs_to' do
205
205
  before do
206
206
  @topic1 = Topic.create
207
207
  @topic2 = Topic.create
208
208
  @book = Book.create
209
209
  @special_book = SpecialInheritedBook.create
210
210
  end
211
- it "habtm should set and remove relationships bidirectionally" do
211
+ it 'habtm should set and remove relationships bidirectionally' do
212
212
  @book.topics << @topic1
213
- @book.topics.should == [@topic1]
214
- @topic1.books.should == [@book]
215
- @topic1.reload.books.should == [@book]
213
+ expect(@book.topics).to eq([@topic1])
214
+ expect(@topic1.books).to eq([@book])
215
+ expect(@topic1.reload.books).to eq([@book])
216
216
 
217
217
  @book.topics.delete(@topic1)
218
218
  #@topic1.books.delete(@book)
219
- @book.topics.should == []
220
- @topic1.books.should == []
219
+ expect(@book.topics).to eq([])
220
+ expect(@topic1.books).to eq([])
221
221
  end
222
- it "Should allow for more than 10 items" do
222
+ it 'Should allow for more than 10 items' do
223
223
 
224
224
  (0..11).each do
225
225
  @book.topics << Topic.create
226
226
  end
227
227
  @book.save
228
- @book.topics.count.should == 12
228
+ expect(@book.topics.count).to eq(12)
229
229
  book2 = Book.find(@book.pid)
230
- book2.topics.count.should == 12
230
+ expect(book2.topics.count).to eq(12)
231
231
  end
232
232
 
233
- it "Should find inherited objects along with base objects" do
233
+ it 'Should find inherited objects along with base objects' do
234
234
  @book.topics << @topic1
235
235
  @special_book.topics << @topic1
236
- @topic1.books.should == [@book, @special_book]
237
- @topic1.reload.books.should == [@book, @special_book]
236
+ expect(@topic1.books).to eq([@book, @special_book])
237
+ expect(@topic1.reload.books).to eq([@book, @special_book])
238
238
  end
239
239
 
240
- it "Should cast found books to the correct cmodel" do
240
+ it 'Should cast found books to the correct cmodel' do
241
241
  @topic1.books[0].class == Book
242
242
  @topic1.books[1].class == SpecialInheritedBook
243
243
  end
@@ -251,11 +251,11 @@ describe ActiveFedora::Base do
251
251
  end
252
252
  end
253
253
 
254
-
255
254
 
256
255
 
257
- describe "a saved instance" do
258
- describe "of belongs_to" do
256
+
257
+ describe 'a saved instance' do
258
+ describe 'of belongs_to' do
259
259
  before do
260
260
  @library = Library.new()
261
261
  @library.save()
@@ -266,19 +266,19 @@ describe ActiveFedora::Base do
266
266
  @publisher = Publisher.new
267
267
  @publisher.save
268
268
  end
269
- it "should have many books once it has been saved" do
269
+ it 'should have many books once it has been saved' do
270
270
  @library.books << @book
271
271
 
272
- @book.library.pid.should == @library.pid
272
+ expect(@book.library.pid).to eq(@library.pid)
273
273
  @library.books.reload
274
- @library.books.should == [@book]
274
+ expect(@library.books).to eq([@book])
275
275
 
276
276
  @library2 = Library.find(@library.pid)
277
- @library2.books.should == [@book]
277
+ expect(@library2.books).to eq([@book])
278
278
  end
279
279
 
280
- it "should have a count once it has been saved" do
281
- @library.books << @book << Book.create
280
+ it 'should have a count once it has been saved' do
281
+ @library.books << @book << Book.create
282
282
  @library.save
283
283
 
284
284
  # @book.library.pid.should == @library.pid
@@ -286,46 +286,46 @@ describe ActiveFedora::Base do
286
286
  # @library.books.should == [@book]
287
287
 
288
288
  @library2 = Library.find(@library.pid)
289
- @library2.books.size.should == 2
289
+ expect(@library2.books.size).to eq(2)
290
290
  end
291
291
 
292
- it "should respect the :class_name parameter" do
292
+ it 'should respect the :class_name parameter' do
293
293
  @book.author = @person
294
294
  @book.save
295
- Book.find(@book.id).author_id.should == @person.pid
296
- Book.find(@book.id).author.send(:find_target).should be_kind_of Person
295
+ expect(Book.find(@book.id).author_id).to eq(@person.pid)
296
+ expect(Book.find(@book.id).author.send(:find_target)).to be_kind_of Person
297
297
  end
298
298
 
299
- it "should respect multiple associations that share the same :property and respect associated class" do
299
+ it 'should respect multiple associations that share the same :property and respect associated class' do
300
300
  @book.author = @person
301
301
  @book.publisher = @publisher
302
302
  @book.save
303
-
304
- Book.find(@book.id).publisher_id.should == @publisher.pid
305
- Book.find(@book.id).publisher.send(:find_target).should be_kind_of Publisher
306
303
 
307
- Book.find(@book.id).author_id.should == @person.pid
308
- Book.find(@book.id).author.send(:find_target).should be_kind_of Person
304
+ expect(Book.find(@book.id).publisher_id).to eq(@publisher.pid)
305
+ expect(Book.find(@book.id).publisher.send(:find_target)).to be_kind_of Publisher
306
+
307
+ expect(Book.find(@book.id).author_id).to eq(@person.pid)
308
+ expect(Book.find(@book.id).author.send(:find_target)).to be_kind_of Person
309
309
  end
310
310
 
311
- describe "when changing the belonger" do
311
+ describe 'when changing the belonger' do
312
312
  before do
313
313
  @book.library = @library
314
314
  @book.save
315
315
  @library2 = Library.create
316
316
  end
317
- it "should replace an existing instance" do
318
- @book.library_id.should == @library.id
317
+ it 'should replace an existing instance' do
318
+ expect(@book.library_id).to eq(@library.id)
319
319
  @book.library = @library2
320
320
  @book.save
321
- Book.find(@book.id).library_id.should == @library2.id
321
+ expect(Book.find(@book.id).library_id).to eq(@library2.id)
322
322
  end
323
323
  after do
324
324
  @library2.delete
325
325
  end
326
326
  end
327
327
 
328
- describe "when dealing with inherited objects" do
328
+ describe 'when dealing with inherited objects' do
329
329
  before do
330
330
  @library2 = Library.create
331
331
  @special_book = SpecialInheritedBook.create
@@ -336,7 +336,7 @@ describe ActiveFedora::Base do
336
336
  @special_book.save
337
337
  end
338
338
 
339
- it "should cast to the most specific class for the association" do
339
+ it 'should cast to the most specific class for the association' do
340
340
  @library2.books[0].class == Book
341
341
  @library2.books[1].class == SpecialInheritedBook
342
342
  end
@@ -354,41 +354,41 @@ describe ActiveFedora::Base do
354
354
  @publisher.delete
355
355
  end
356
356
  end
357
- describe "of has_many_and_belongs_to" do
357
+ describe 'of has_many_and_belongs_to' do
358
358
  before do
359
359
  @book = Book.create
360
360
  end
361
361
  after do
362
362
  @book.delete
363
363
  end
364
- describe "when invese is specified" do
364
+ describe 'when invese is specified' do
365
365
  before do
366
366
  @topic1 = Topic.create
367
367
  @topic2 = Topic.create
368
368
  end
369
- it "should set relationships bidirectionally" do
369
+ it 'should set relationships bidirectionally' do
370
370
  @book.topics << @topic1
371
- @book.topics.should == [@topic1]
372
- @book.relationships(:has_topic).should == [@topic1.internal_uri]
373
- @topic1.relationships(:has_topic).should == []
374
- @topic1.relationships(:is_topic_of).should == [@book.internal_uri]
375
- Topic.find(@topic1.pid).books.should == [@book] #Can't have saved it because @book isn't saved yet.
371
+ expect(@book.topics).to eq([@topic1])
372
+ expect(@book.relationships(:has_topic)).to eq([@topic1.internal_uri])
373
+ expect(@topic1.relationships(:has_topic)).to eq([])
374
+ expect(@topic1.relationships(:is_topic_of)).to eq([@book.internal_uri])
375
+ expect(Topic.find(@topic1.pid).books).to eq([@book]) #Can't have saved it because @book isn't saved yet.
376
376
  end
377
- it "should save new child objects" do
377
+ it 'should save new child objects' do
378
378
  @book.topics << Topic.new
379
- @book.topics.first.pid.should_not be_nil
379
+ expect(@book.topics.first.pid).not_to be_nil
380
380
  end
381
- it "should clear out the old associtions" do
381
+ it 'should clear out the old associtions' do
382
382
  @book.topics = [@topic1]
383
383
  @book.topics = [@topic2]
384
- @book.topic_ids.should == [@topic2.pid]
384
+ expect(@book.topic_ids).to eq([@topic2.pid])
385
385
  end
386
386
  after do
387
387
  @topic1.delete
388
388
  @topic2.delete
389
389
  end
390
390
  end
391
- describe "when invese is not specified" do
391
+ describe 'when invese is not specified' do
392
392
  before do
393
393
  @c = Collection.create
394
394
  @book.collections << @c
@@ -397,22 +397,22 @@ describe ActiveFedora::Base do
397
397
  after do
398
398
  @c.delete
399
399
  end
400
- it "should have a collection" do
401
- @book.relationships(:is_member_of_collection).should == [@c.internal_uri]
402
- @book.collections.should == [@c]
400
+ it 'should have a collection' do
401
+ expect(@book.relationships(:is_member_of_collection)).to eq([@c.internal_uri])
402
+ expect(@book.collections).to eq([@c])
403
403
  end
404
- it "habtm should not set foreign relationships if :inverse_of is not specified" do
405
- @c.relationships(:is_member_of_collection).should == []
404
+ it 'habtm should not set foreign relationships if :inverse_of is not specified' do
405
+ expect(@c.relationships(:is_member_of_collection)).to eq([])
406
406
  end
407
- it "should load the collections" do
407
+ it 'should load the collections' do
408
408
  reloaded = Book.find(@book.pid)
409
- reloaded.collections.should == [@c]
409
+ expect(reloaded.collections).to eq([@c])
410
410
  end
411
411
  end
412
412
  end
413
413
  end
414
414
 
415
- describe "setting belongs_to" do
415
+ describe 'setting belongs_to' do
416
416
  before do
417
417
  @library = Library.new()
418
418
  @library.save()
@@ -422,51 +422,51 @@ describe ActiveFedora::Base do
422
422
  @publisher = Publisher.new
423
423
  @publisher.save
424
424
  end
425
- it "should set the association" do
425
+ it 'should set the association' do
426
426
  @book.library = @library
427
- @book.library.pid.should == @library.pid
427
+ expect(@book.library.pid).to eq(@library.pid)
428
428
  @book.save
429
429
 
430
430
 
431
- Book.find(@book.pid).library.pid.should == @library.pid
432
-
431
+ expect(Book.find(@book.pid).library.pid).to eq(@library.pid)
432
+
433
433
  end
434
- it "should clear the association" do
434
+ it 'should clear the association' do
435
435
  @book.library = @library
436
436
  @book.library = nil
437
437
  @book.save
438
438
 
439
- Book.find(@book.pid).library.should be_nil
440
-
439
+ expect(Book.find(@book.pid).library).to be_nil
440
+
441
441
  end
442
442
 
443
- it "should replace the association" do
443
+ it 'should replace the association' do
444
444
  @library2 = Library.new
445
445
  @library2.save
446
446
  @book.library = @library
447
447
  @book.save
448
448
  @book.library = @library2
449
449
  @book.save
450
- Book.find(@book.pid).library.pid.should == @library2.pid
450
+ expect(Book.find(@book.pid).library.pid).to eq(@library2.pid)
451
451
 
452
452
  end
453
453
 
454
- it "should only replace the matching class association" do
454
+ it 'should only replace the matching class association' do
455
455
  @publisher2 = Publisher.new
456
456
  @publisher2.save
457
457
 
458
458
  @book.publisher = @publisher
459
- @book.author = @author
460
- @book.save
459
+ @book.author = @author
460
+ @book.save
461
461
 
462
462
  @book.publisher = @publisher2
463
463
  @book.save
464
464
 
465
- Book.find(@book.pid).publisher.pid.should == @publisher2.pid
466
- Book.find(@book.pid).author.pid.should == @author.pid
465
+ expect(Book.find(@book.pid).publisher.pid).to eq(@publisher2.pid)
466
+ expect(Book.find(@book.pid).author.pid).to eq(@author.pid)
467
467
  end
468
468
 
469
- it "should only clear the matching class association" do
469
+ it 'should only clear the matching class association' do
470
470
  @book.publisher = @publisher
471
471
  @book.author = @author
472
472
  @book.save
@@ -474,16 +474,16 @@ describe ActiveFedora::Base do
474
474
  @book.author = nil
475
475
  @book.save
476
476
 
477
- Book.find(@book.pid).author.should be_nil
478
- Book.find(@book.pid).publisher.pid.should == @publisher.pid
477
+ expect(Book.find(@book.pid).author).to be_nil
478
+ expect(Book.find(@book.pid).publisher.pid).to eq(@publisher.pid)
479
479
  end
480
480
 
481
- it "should be able to be set by id" do
481
+ it 'should be able to be set by id' do
482
482
  @book.library_id = @library.pid
483
- @book.library_id.should == @library.pid
484
- @book.library.pid.should == @library.pid
483
+ expect(@book.library_id).to eq(@library.pid)
484
+ expect(@book.library.pid).to eq(@library.pid)
485
485
  @book.save
486
- Book.find(@book.pid).library_id.should == @library.pid
486
+ expect(Book.find(@book.pid).library_id).to eq(@library.pid)
487
487
  end
488
488
 
489
489
  after do
@@ -497,10 +497,10 @@ describe ActiveFedora::Base do
497
497
  end
498
498
  end
499
499
 
500
- describe "belongs_to when class_name is ActiveFedora::Base" do
500
+ describe 'belongs_to when class_name is ActiveFedora::Base' do
501
501
  before :all do
502
502
  class Textbook < ActiveFedora::Base
503
- belongs_to :container, :property=>:is_part_of, :class_name=>'ActiveFedora::Base'
503
+ belongs_to :container, :property => :is_part_of, :class_name => 'ActiveFedora::Base'
504
504
  end
505
505
  class Shelf < ActiveFedora::Base; end
506
506
  end
@@ -517,28 +517,28 @@ describe ActiveFedora::Base do
517
517
  let(:shelf) { Shelf.create}
518
518
  subject { Textbook.new }
519
519
 
520
- it "Should not raise a deprecation message" do
521
- Deprecation.should_not_receive(:warn) # a deprecation in 6.6.0 that's going away in 7.0.0
520
+ it 'Should not raise a deprecation message' do
521
+ expect(Deprecation).not_to receive(:warn) # a deprecation in 6.6.0 that's going away in 7.0.0
522
522
  subject.container_id = shelf.id
523
523
  end
524
524
  end
525
525
 
526
- describe "single direction habtm" do
526
+ describe 'single direction habtm' do
527
527
  before :all do
528
528
  class Course < ActiveFedora::Base
529
- has_and_belongs_to_many :textbooks, :property=>:is_part_of
529
+ has_and_belongs_to_many :textbooks, :property => :is_part_of
530
530
  end
531
531
  class Textbook < ActiveFedora::Base
532
- has_many :courses, :property=>:is_part_of
532
+ has_many :courses, :property => :is_part_of
533
533
  end
534
-
534
+
535
535
  end
536
536
  after :all do
537
537
  Object.send(:remove_const, :Course)
538
538
  Object.send(:remove_const, :Textbook)
539
539
  end
540
540
 
541
- describe "with a parent that has two children" do
541
+ describe 'with a parent that has two children' do
542
542
  before do
543
543
  @course = Course.create
544
544
  @t1 = Textbook.create()
@@ -547,46 +547,46 @@ describe ActiveFedora::Base do
547
547
  @course.save
548
548
  end
549
549
 
550
- it "should load the association stored in the parent" do
550
+ it 'should load the association stored in the parent' do
551
551
  @reloaded_course = Course.find(@course.pid)
552
- @reloaded_course.textbooks.should == [@t1, @t2]
552
+ expect(@reloaded_course.textbooks).to eq([@t1, @t2])
553
553
  end
554
554
 
555
- it "should allow a parent to be deleted from the has_many association" do
555
+ it 'should allow a parent to be deleted from the has_many association' do
556
556
  @reloaded_course = Course.find(@course.pid)
557
557
  @t1.courses.delete(@reloaded_course)
558
558
  @reloaded_course.save
559
559
 
560
560
  @reloaded_course = Course.find(@course.pid)
561
- @reloaded_course.textbooks.should == [@t2]
561
+ expect(@reloaded_course.textbooks).to eq([@t2])
562
562
  end
563
563
 
564
- it "should allow replacing the children" do
564
+ it 'should allow replacing the children' do
565
565
  @t3 = Textbook.create()
566
566
  @t4 = Textbook.create()
567
567
  @course.textbooks = [@t3, @t4]
568
568
  @course.save
569
569
 
570
- @course.reload.textbooks.should == [@t3, @t4]
570
+ expect(@course.reload.textbooks).to eq([@t3, @t4])
571
571
  end
572
572
 
573
- it "should allow a child to be deleted from the has_and_belongs_to_many association" do
573
+ it 'should allow a child to be deleted from the has_and_belongs_to_many association' do
574
574
  @reloaded_course = Course.find(@course.pid)
575
575
  @reloaded_course.textbooks.delete(@t1)
576
576
  @reloaded_course.save
577
577
  @t1.save
578
578
 
579
579
  @reloaded_course = Course.find(@course.pid)
580
- @reloaded_course.textbooks.should == [@t2]
580
+ expect(@reloaded_course.textbooks).to eq([@t2])
581
581
  end
582
582
  end
583
583
  end
584
584
 
585
- describe "association hooks" do
586
- describe "for habtm" do
585
+ describe 'association hooks' do
586
+ describe 'for habtm' do
587
587
  before :all do
588
588
  class LibraryBook < ActiveFedora::Base
589
- has_and_belongs_to_many :pages, :property=>:is_part_of, after_remove: :after_hook, before_remove: :before_hook
589
+ has_and_belongs_to_many :pages, :property => :is_part_of, after_remove: :after_hook, before_remove: :before_hook
590
590
 
591
591
  def before_hook(m)
592
592
  say_hi(m)
@@ -601,16 +601,16 @@ describe ActiveFedora::Base do
601
601
 
602
602
  end
603
603
  class Page < ActiveFedora::Base
604
- has_many :library_books, :property=>:is_part_of
604
+ has_many :library_books, :property => :is_part_of
605
605
  end
606
-
606
+
607
607
  end
608
608
  after :all do
609
609
  Object.send(:remove_const, :LibraryBook)
610
610
  Object.send(:remove_const, :Page)
611
611
  end
612
612
 
613
- describe "removing association" do
613
+ describe 'removing association' do
614
614
  subject {LibraryBook.create}
615
615
  before do
616
616
  @p1 = Page.create
@@ -618,36 +618,36 @@ describe ActiveFedora::Base do
618
618
  subject.pages << @p1 << @p2
619
619
  subject.save!
620
620
  end
621
- it "should save between the before and after hooks" do
622
- subject.should_receive(:say_hi).with(@p2).twice
621
+ it 'should save between the before and after hooks' do
622
+ expect(subject).to receive(:say_hi).with(@p2).twice
623
623
  subject.pages.delete(@p2)
624
624
  end
625
625
  end
626
626
  end
627
- describe "for has_many" do
627
+ describe 'for has_many' do
628
628
  before :all do
629
629
  class LibraryBook < ActiveFedora::Base
630
- has_many :pages, :property=>:is_part_of, after_remove: :say_hi
630
+ has_many :pages, :property => :is_part_of, after_remove: :say_hi
631
631
 
632
632
  end
633
633
  class Page < ActiveFedora::Base
634
- belongs_to :library_book, :property=>:is_part_of
634
+ belongs_to :library_book, :property => :is_part_of
635
635
  end
636
-
636
+
637
637
  end
638
638
  after :all do
639
639
  Object.send(:remove_const, :LibraryBook)
640
640
  Object.send(:remove_const, :Page)
641
641
  end
642
642
 
643
- describe "removing association" do
643
+ describe 'removing association' do
644
644
  subject {LibraryBook.new}
645
645
  before do
646
646
  @p1 = subject.pages.build
647
647
  @p2 = subject.pages.build
648
648
  end
649
- it "should run the hooks" do
650
- subject.should_receive(:say_hi).with(@p2)
649
+ it 'should run the hooks' do
650
+ expect(subject).to receive(:say_hi).with(@p2)
651
651
  subject.pages.delete(@p2)
652
652
  end
653
653
  end
@@ -655,13 +655,13 @@ describe ActiveFedora::Base do
655
655
  end
656
656
 
657
657
 
658
- describe "when a object is deleted" do
658
+ describe 'when a object is deleted' do
659
659
  before (:all) do
660
660
  class MasterFile < ActiveFedora::Base
661
- belongs_to :media_object, :property=>:is_part_of
661
+ belongs_to :media_object, :property => :is_part_of
662
662
  end
663
663
  class MediaObject < ActiveFedora::Base
664
- has_many :parts, :class_name=>'MasterFile', :property=>:is_part_of
664
+ has_many :parts, :class_name => 'MasterFile', :property => :is_part_of
665
665
  end
666
666
  end
667
667
 
@@ -678,14 +678,14 @@ describe ActiveFedora::Base do
678
678
  Object.send(:remove_const, :MediaObject)
679
679
  end
680
680
 
681
- it "should also remove the relationships that point at that object" do
681
+ it 'should also remove the relationships that point at that object' do
682
682
  @media.delete
683
683
  @master = MasterFile.find(@master.pid)
684
- @master.relationships(:is_part_of).should == []
684
+ expect(@master.relationships(:is_part_of)).to eq([])
685
685
  end
686
686
  end
687
687
 
688
- describe "has_many" do
688
+ describe 'has_many' do
689
689
  describe "when an object doesn't have a property, and the class_name is predictable" do
690
690
  before (:all) do
691
691
  class Bauble < ActiveFedora::Base
@@ -700,8 +700,8 @@ describe ActiveFedora::Base do
700
700
  Object.send(:remove_const, :MediaObject)
701
701
  end
702
702
 
703
- it "it should find the predicate" do
704
- MediaObject.new.baubles.send(:find_predicate).should == :is_part_of
703
+ it 'it should find the predicate' do
704
+ expect(MediaObject.new.baubles.send(:find_predicate)).to eq(:is_part_of)
705
705
  end
706
706
  end
707
707
 
@@ -711,7 +711,7 @@ describe ActiveFedora::Base do
711
711
  belongs_to :media_object, property: :is_part_of
712
712
  end
713
713
  class MediaObject < ActiveFedora::Base
714
- has_many :parts, :class_name=>'MasterFile'
714
+ has_many :parts, :class_name => 'MasterFile'
715
715
  end
716
716
  end
717
717
  after :all do
@@ -719,12 +719,12 @@ describe ActiveFedora::Base do
719
719
  Object.send(:remove_const, :MediaObject)
720
720
  end
721
721
 
722
- it "it should find the predicate" do
723
- MediaObject.new.parts.send(:find_predicate).should == :is_part_of
722
+ it 'it should find the predicate' do
723
+ expect(MediaObject.new.parts.send(:find_predicate)).to eq(:is_part_of)
724
724
  end
725
725
  end
726
726
 
727
- describe "an object has an explicity property" do
727
+ describe 'an object has an explicity property' do
728
728
  before (:all) do
729
729
  class Bauble < ActiveFedora::Base
730
730
  belongs_to :media_object, property: :is_part_of
@@ -738,8 +738,8 @@ describe ActiveFedora::Base do
738
738
  Object.send(:remove_const, :MediaObject)
739
739
  end
740
740
 
741
- it "it should find the predicate" do
742
- MediaObject.new.baubles.send(:find_predicate).should == :has_baubles
741
+ it 'it should find the predicate' do
742
+ expect(MediaObject.new.baubles.send(:find_predicate)).to eq(:has_baubles)
743
743
  end
744
744
  end
745
745
  describe "an object doesn't have a property" do
@@ -756,14 +756,14 @@ describe ActiveFedora::Base do
756
756
  Object.send(:remove_const, :MediaObject)
757
757
  end
758
758
 
759
- it "it should find the predicate" do
760
- expect { MediaObject.new.shoes.send(:find_predicate) }.to raise_error RuntimeError, "No :property attribute was set or could be inferred for has_many :shoes on MediaObject"
759
+ it 'it should find the predicate' do
760
+ expect { MediaObject.new.shoes.send(:find_predicate) }.to raise_error RuntimeError, 'No :property attribute was set or could be inferred for has_many :shoes on MediaObject'
761
761
  end
762
762
  end
763
763
  end
764
764
 
765
- describe "casting when the class name is ActiveFedora::Base" do
766
- describe "for habtm" do
765
+ describe 'casting when the class name is ActiveFedora::Base' do
766
+ describe 'for habtm' do
767
767
  before :all do
768
768
  class Novel < ActiveFedora::Base
769
769
  has_and_belongs_to_many :contents, property: :is_part_of, class_name: 'ActiveFedora::Base'
@@ -777,7 +777,7 @@ describe ActiveFedora::Base do
777
777
  class Image < ActiveFedora::Base
778
778
  has_many :books, property: :is_part_of, class_name: 'ActiveFedora::Base'
779
779
  end
780
-
780
+
781
781
  end
782
782
  after :all do
783
783
  Object.send(:remove_const, :Novel)
@@ -786,7 +786,7 @@ describe ActiveFedora::Base do
786
786
  Object.send(:remove_const, :Image)
787
787
  end
788
788
 
789
- describe "saving between the before and after hooks" do
789
+ describe 'saving between the before and after hooks' do
790
790
  let(:text1) { Text.create}
791
791
  let(:image1) { Image.create}
792
792
  let(:text2) { Text.create}
@@ -794,33 +794,33 @@ describe ActiveFedora::Base do
794
794
  let(:book1) { TextBook.create}
795
795
  let(:book2) { Novel.create}
796
796
 
797
- it "should work when added via the has_and_belongs_to_many" do
797
+ it 'should work when added via the has_and_belongs_to_many' do
798
798
  book1.contents = [text1, image1]
799
799
  book1.save!
800
800
  book2.contents = [text2, image2]
801
801
  book2.save!
802
802
 
803
- book1.reload.contents.should include(text1, image1)
804
- text1.reload.books.should == [book1]
805
- image1.reload.books.should == [book1]
803
+ expect(book1.reload.contents).to include(text1, image1)
804
+ expect(text1.reload.books).to eq([book1])
805
+ expect(image1.reload.books).to eq([book1])
806
806
 
807
- book2.reload.contents.should include(text2, image2)
808
- text2.reload.books.should == [book2]
809
- image2.reload.books.should == [book2]
807
+ expect(book2.reload.contents).to include(text2, image2)
808
+ expect(text2.reload.books).to eq([book2])
809
+ expect(image2.reload.books).to eq([book2])
810
810
  end
811
811
 
812
- it "should work when added via the has_many" do
812
+ it 'should work when added via the has_many' do
813
813
  text2.books << book2
814
814
  book2.save
815
- book2.reload.contents.should == [text2]
816
- text2.reload.books.should == [book2]
815
+ expect(book2.reload.contents).to eq([text2])
816
+ expect(text2.reload.books).to eq([book2])
817
817
  end
818
818
  end
819
819
  end
820
820
  end
821
821
 
822
- describe "casting inheritance additional test cases" do
823
- describe "for habtm" do
822
+ describe 'casting inheritance additional test cases' do
823
+ describe 'for habtm' do
824
824
  before :all do
825
825
  class SimpleObject < ActiveFedora::Base
826
826
  belongs_to :simple_collection, property: :is_part_of, class_name: 'SimpleCollection'
@@ -846,7 +846,7 @@ describe ActiveFedora::Base do
846
846
  Object.send(:remove_const, :ComplexCollection)
847
847
  end
848
848
 
849
- describe "saving between the before and after hooks" do
849
+ describe 'saving between the before and after hooks' do
850
850
  before do
851
851
  @simple_collection = SimpleCollection.create
852
852
  @complex_collection = ComplexCollection.create
@@ -869,32 +869,32 @@ describe ActiveFedora::Base do
869
869
  end
870
870
 
871
871
 
872
- it "casted association methods should work and return the most complex class" do
873
- @complex_object.simple_collection.should be_instance_of SimpleCollection
874
- @complex_object.complex_collection.should be_instance_of ComplexCollection
872
+ it 'casted association methods should work and return the most complex class' do
873
+ expect(@complex_object.simple_collection).to be_instance_of SimpleCollection
874
+ expect(@complex_object.complex_collection).to be_instance_of ComplexCollection
875
875
 
876
- @simple_object.simple_collection.should be_instance_of SimpleCollection
877
- @simple_object.complex_collection.should be_instance_of ComplexCollection
878
- @simple_object_second.simple_collection.should be_instance_of SimpleCollection
879
- @simple_object_second.complex_collection.should be_nil
876
+ expect(@simple_object.simple_collection).to be_instance_of SimpleCollection
877
+ expect(@simple_object.complex_collection).to be_instance_of ComplexCollection
878
+ expect(@simple_object_second.simple_collection).to be_instance_of SimpleCollection
879
+ expect(@simple_object_second.complex_collection).to be_nil
880
880
 
881
- @complex_collection.objects[0].should be_instance_of SimpleObject
882
- @complex_collection.objects[1].should be_instance_of ComplexObject
881
+ expect(@complex_collection.objects[0]).to be_instance_of SimpleObject
882
+ expect(@complex_collection.objects[1]).to be_instance_of ComplexObject
883
883
 
884
- @simple_collection.objects[0].should be_instance_of SimpleObject
885
- @simple_collection.objects[1].should be_instance_of SimpleObject
886
- @simple_collection.objects[2].should be_instance_of ComplexObject
884
+ expect(@simple_collection.objects[0]).to be_instance_of SimpleObject
885
+ expect(@simple_collection.objects[1]).to be_instance_of SimpleObject
886
+ expect(@simple_collection.objects[2]).to be_instance_of ComplexObject
887
887
 
888
888
  end
889
889
 
890
- it "specified ending relationships should ignore classes not specified" do
891
- @complex_collection.complex_objects.length.should == 1
892
- @complex_collection.complex_objects[0].should be_instance_of ComplexObject
893
- @complex_collection.complex_objects[1].should be_nil
890
+ it 'specified ending relationships should ignore classes not specified' do
891
+ expect(@complex_collection.complex_objects.length).to eq(1)
892
+ expect(@complex_collection.complex_objects[0]).to be_instance_of ComplexObject
893
+ expect(@complex_collection.complex_objects[1]).to be_nil
894
894
 
895
- @simple_collection.complex_objects.length.should == 1
896
- @simple_collection.complex_objects[0].should be_instance_of ComplexObject
897
- @simple_collection.complex_objects[1].should be_nil
895
+ expect(@simple_collection.complex_objects.length).to eq(1)
896
+ expect(@simple_collection.complex_objects[0]).to be_instance_of ComplexObject
897
+ expect(@simple_collection.complex_objects[1]).to be_nil
898
898
 
899
899
  end
900
900