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,45 +1,45 @@
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
- ActiveFedora::SolrService.stub(:query).and_return([])
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
8
  ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
9
- object = double("object", :new_record? => false, :pid => 'object:b', :save => nil)
10
-
11
- subject.should_receive(:add_relationship).with('predicate', object)
12
-
9
+ object = double('object', :new_record? => false, :pid => 'object:b', :save => nil)
10
+
11
+ expect(subject).to receive(:add_relationship).with('predicate', object)
12
+
13
13
  ac << object
14
14
 
15
15
  end
16
16
 
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
- ActiveFedora::SolrService.stub(:query).and_return([])
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([])
21
21
  ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
22
- object = double("object", :new_record? => false, :pid => 'object:b', :save => nil)
23
-
24
- subject.should_receive(:add_relationship).with('predicate', object)
25
-
26
- object.should_receive(:add_relationship).with('inverse_predicate', subject)
27
-
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
+
28
28
  ac << object
29
29
 
30
30
  end
31
31
 
32
- it "should call solr query multiple times" do
32
+ it 'should call solr query multiple times' do
33
33
 
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)
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)
36
36
  ids = []
37
37
  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
- subject.should_receive(:ids_for_outbound).and_return(ids)
41
- ActiveFedora::SolrService.should_receive(:query).with(query1, {:rows=>10}).and_return([])
42
- ActiveFedora::SolrService.should_receive(:query).with(query2, {:rows=>10}).and_return([])
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([])
43
43
 
44
44
  ac = ActiveFedora::Associations::HasAndBelongsToManyAssociation.new(subject, predicate)
45
45
  ac.find_target
@@ -1,17 +1,17 @@
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
- ActiveFedora::SolrService.stub(:query).and_return([])
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
8
  ac = ActiveFedora::Associations::HasManyAssociation.new(subject, predicate)
9
- object = double("object", :new_record? => false, :pid => 'object:b', :save => nil)
10
-
11
- object.should_receive(:add_relationship).with('predicate', subject)
12
-
9
+ object = double('object', :new_record? => false, :pid => 'object:b', :save => nil)
10
+
11
+ expect(object).to receive(:add_relationship).with('predicate', subject)
12
+
13
13
  ac << object
14
14
 
15
15
  end
16
-
16
+
17
17
  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
- f.datastreams.size.should == 3
20
+ expect(f.datastreams.size).to eq(3)
21
21
  streams = f.datastreams.values.map{|x| x.class.to_s}.sort
22
- streams.pop.should == "ActiveFedora::SimpleDatastream"
23
- streams.pop.should == "ActiveFedora::RelsExtDatastream"
24
- streams.pop.should == "ActiveFedora::QualifiedDublinCoreDatastream"
22
+ expect(streams.pop).to eq('ActiveFedora::SimpleDatastream')
23
+ expect(streams.pop).to eq('ActiveFedora::RelsExtDatastream')
24
+ expect(streams.pop).to eq('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
- b.class.ds_specs.should_not == f.class.ds_specs
30
+ expect(b.class.ds_specs).not_to eq(f.class.ds_specs)
31
31
  end
32
32
  after do
33
33
  Object.send(:remove_const, :Bar)
@@ -35,4 +35,3 @@ describe ActiveFedora::Base do
35
35
  end
36
36
 
37
37
  end
38
-
@@ -1,74 +1,64 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveFedora::Model do
4
-
5
- before(:all) do
6
- module SpecModel
7
- class Basic < ActiveFedora::Base
8
- end
9
- end
10
- @model_query = "has_model_s:#{solr_uri("info:fedora/afmodel:SpecModel_Basic")}"
3
+ module SpecModelM
4
+ class Basic < ActiveFedora::Base
11
5
  end
12
-
13
- after(:all) do
14
- Object.send(:remove_const, :SpecModel)
6
+ class CamelCased
7
+ include ActiveFedora::Model
8
+ def name
9
+ self.class.to_s
10
+ end
15
11
  end
16
-
12
+ end
13
+
14
+ describe ActiveFedora::Model do
15
+
17
16
  describe '.solr_query_handler' do
18
17
  after do
19
- # reset to default
20
- SpecModel::Basic.solr_query_handler = 'standard'
18
+ SpecModelM::Basic.solr_query_handler = 'standard' # reset to default
21
19
  end
22
- it "should have a default" do
23
- SpecModel::Basic.solr_query_handler.should == 'standard'
20
+ it 'should have a default' do
21
+ expect(SpecModelM::Basic.solr_query_handler).to eq('standard')
24
22
  end
25
- it "should be settable" do
26
- SpecModel::Basic.solr_query_handler = 'search'
27
- SpecModel::Basic.solr_query_handler.should == 'search'
23
+ it 'should be settable' do
24
+ SpecModelM::Basic.solr_query_handler = 'search'
25
+ expect(SpecModelM::Basic.solr_query_handler).to eq('search')
28
26
  end
29
27
  end
30
-
31
- describe "URI translation" do
32
- before :all do
33
- module SpecModel
34
- class CamelCased
35
- include ActiveFedora::Model
36
- end
37
- end
38
28
 
29
+ describe 'URI translation' do
30
+ before :each do
31
+ @camel = SpecModelM::CamelCased.new
39
32
  end
40
-
41
- after :all do
42
- SpecModel.send(:remove_const, :CamelCased)
33
+ it '#to_class_uri' do
34
+ expect(@camel.to_class_uri).to eq 'info:fedora/afmodel:SpecModelM_CamelCased'
43
35
  end
44
- subject {SpecModel::CamelCased}
45
-
46
- its(:to_class_uri) {should == 'info:fedora/afmodel:SpecModel_CamelCased' }
47
-
48
- context "with the namespace declared in the model" do
49
- before do
50
- subject.stub(:pid_namespace).and_return("test-cModel")
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'
51
41
  end
52
- its(:to_class_uri) {should == 'info:fedora/test-cModel:SpecModel_CamelCased' }
53
42
  end
54
- context "with the suffix declared in the model" do
55
- before do
56
- subject.stub(:pid_suffix).and_return("-TEST-SUFFIX")
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'
57
48
  end
58
- its(:to_class_uri) {should == 'info:fedora/afmodel:SpecModel_CamelCased-TEST-SUFFIX' }
59
49
  end
60
-
61
- describe ".classname_from_uri" do
62
- it "should turn an afmodel URI into a Model class name" do
63
- ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:SpecModel_CamelCased').should == ['SpecModel::CamelCased', 'afmodel']
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'])
64
54
  end
65
- it "should not change plurality" do
66
- ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:MyMetadata').should == ['MyMetadata', 'afmodel']
55
+ it 'should not change plurality' do
56
+ expect(ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:MyMetadata')).to eq(['MyMetadata', 'afmodel'])
67
57
  end
68
- it "should capitalize the first letter" do
69
- ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:image').should == ['Image', 'afmodel']
58
+ it 'should capitalize the first letter' do
59
+ expect(ActiveFedora::Model.classname_from_uri('info:fedora/afmodel:image')).to eq(['Image', 'afmodel'])
70
60
  end
71
61
  end
72
62
  end
73
-
63
+
74
64
  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
- subject.a.should include("123")
17
+ it 'should work' do
18
+ expect(subject.a).to include('123')
19
19
  end
20
20
 
21
- it "should to_solr" do
22
- subject.to_solr['a_s'].should include('123')
23
- subject.to_solr['b_s'].should include('asdf')
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')
24
24
  end
25
25
 
26
- it "should be a managed datastream" do
27
- subject.controlGroup.should == 'M'
26
+ it 'should be a managed datastream' do
27
+ expect(subject.controlGroup).to eq('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
- subject.a.should == ["123"]
56
+ it 'should scope #a attribute to only the dc namespace' do
57
+ expect(subject.a).to eq(['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
- @subject.rdf_subject.should == "info:fedora/test:1"
23
+ it 'should have a subject' do
24
+ expect(@subject.rdf_subject).to eq('info:fedora/test:1')
25
25
  end
26
- it "should have controlGroup" do
27
- @subject.controlGroup.should == 'M'
26
+ it 'should have controlGroup' do
27
+ expect(@subject.controlGroup).to eq('M')
28
28
  end
29
- it "should have mimeType" do
30
- @subject.mimeType.should == 'text/plain'
29
+ it 'should have mimeType' do
30
+ expect(@subject.mimeType).to eq('text/plain')
31
31
  end
32
- it "should have dsid" do
33
- @subject.dsid.should == 'descMetadata'
32
+ it 'should have dsid' do
33
+ expect(@subject.dsid).to eq('descMetadata')
34
34
  end
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/"]
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/'])
41
41
  end
42
42
 
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"]
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'])
49
49
  val = []
50
50
  @subject.title.each_with_index {|v, i| val << "#{i}. #{v}"}
51
- val.should == ["0. Title of work"]
51
+ expect(val).to eq(['0. Title of work'])
52
52
  end
53
53
 
54
- it "should return fields that are not TermProxies" do
55
- @subject.created.should be_kind_of Array
54
+ it 'should return fields that are not TermProxies' do
55
+ expect(@subject.created).to be_kind_of Array
56
56
  end
57
- it "should have method missing" do
58
- lambda{@subject.frank}.should raise_exception NoMethodError
57
+ it 'should have method missing' do
58
+ expect{@subject.frank}.to 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
- @subject.publisher.should == ["St. Martin's Press"]
63
+ expect(@subject.publisher).to eq(["St. Martin's Press"])
64
64
  end
65
- it "should set rdf literal fields" do
66
- @subject.creator = RDF.Literal("Geoff Ryman")
67
- @subject.creator.should == ["Geoff Ryman"]
65
+ it 'should set rdf literal fields' do
66
+ @subject.creator = RDF.Literal('Geoff Ryman')
67
+ expect(@subject.creator).to eq(['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
- @subject.publisher.should == ["Penn State", "St. Martin's Press"]
71
+ expect(@subject.publisher).to eq(['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
- @subject.related_url.should == []
73
+ it 'should delete fields' do
74
+ @subject.related_url.delete(RDF::URI('http://google.com/'))
75
+ expect(@subject.related_url).to eq([])
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
- @one .prefix("baz").should == :my_foobar__baz
86
- @two.prefix("baz").should == :my_quix__baz
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)
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
- @subject.title.should == ["Title of datastream"]
112
+ it 'should have fields' do
113
+ expect(@subject.title).to eq(['Title of datastream'])
114
114
  end
115
115
 
116
- it "should have a custom subject" do
117
- @subject.rdf_subject.should == 'info:fedora/test:1/content'
116
+ it 'should have a custom subject' do
117
+ expect(@subject.rdf_subject).to eq('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
- @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
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)
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,35 +171,35 @@ 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
- @subject.should respond_to(:to_solr)
179
- @subject.to_solr.should be_kind_of(Hash)
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)
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 = Hash.new
183
- @subject.to_solr(doc).should == doc
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)
184
184
  end
185
- it "should iterate through @fields hash" do
185
+ it 'should iterate through @fields hash' do
186
186
  solr_doc = @subject.to_solr
187
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", type: :string)].should == ["publisher1"]
188
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :sortable)].should == "publisher1"
189
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__publisher", :facetable)].should == ["publisher1"]
190
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", type: :string)].should == ["coverage1", "coverage2"]
191
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", :facetable)].should == ["coverage1", "coverage2"]
192
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__created", :sortable, type: :date)].should == "2009-10-10T00:00:00Z"
193
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__created", :displayable)].should == ["2009-10-10"]
194
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__title", type: :string)].should == ["fake-title"]
195
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__title", :sortable)].should == "fake-title"
196
- solr_doc[ActiveFedora::SolrService.solr_name("solr_rdf__related_url", type: :string)].should == ["http://example.org/"]
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/'])
197
197
  end
198
198
 
199
- describe "with an actual object" do
199
+ describe 'with an actual object' do
200
200
  before(:each) do
201
201
  class Foo < ActiveFedora::Base
202
- has_metadata :name => "descMetadata", :type => MyDatastream
202
+ has_metadata :name => 'descMetadata', :type => MyDatastream
203
203
  delegate :created, :to => :descMetadata, multiple: true
204
204
  delegate :title, :to => :descMetadata, multiple: true
205
205
  delegate :publisher, :to => :descMetadata, multiple: true
@@ -210,49 +210,49 @@ describe ActiveFedora::NtriplesRDFDatastream do
210
210
  @obj = MyDatastream.new(@inner_object, 'solr_rdf')
211
211
  repository = double()
212
212
  @obj.stub(:repository => repository, :pid => 'test:1')
213
- repository.stub(:modify_datastream)
214
- repository.stub(:add_datastream)
215
- @obj.created = "2012-03-04"
216
- @obj.title = "Of Mice and Men, The Sequel"
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'
217
217
  @obj.publisher = "Bob's Blogtastic Publishing"
218
- @obj.based_near = ["Tacoma, WA", "Renton, WA"]
219
- @obj.related_url = "http://example.org/blogtastic/"
218
+ @obj.based_near = ['Tacoma, WA', 'Renton, WA']
219
+ @obj.related_url = 'http://example.org/blogtastic/'
220
220
  @obj.rights = "Totally open, y'all"
221
221
  @obj.save
222
222
  end
223
223
 
224
- describe ".fields()" do
225
- it "should return the right fields" do
226
- @obj.send(:fields).keys.should == ["created", "title", "publisher", "based_near", "related_url"]
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'])
227
227
  end
228
- it "should return the right values" do
228
+ it 'should return the right values' do
229
229
  fields = @obj.send(:fields)
230
- fields[:related_url][:values].should == ["http://example.org/blogtastic/"]
231
- fields[:based_near][:values].should == ["Tacoma, WA", "Renton, WA"]
230
+ expect(fields[:related_url][:values]).to eq(['http://example.org/blogtastic/'])
231
+ expect(fields[:based_near][:values]).to eq(['Tacoma, WA', 'Renton, WA'])
232
232
  end
233
- it "should return the right type information" do
233
+ it 'should return the right type information' do
234
234
  fields = @obj.send(:fields)
235
- fields[:created][:type].should == :date
235
+ expect(fields[:created][:type]).to eq(:date)
236
236
  end
237
237
  end
238
- describe ".to_solr()" do
239
- it "should return the right fields" do
240
- @obj.to_solr.keys.should 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))
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))
250
250
 
251
251
  end
252
252
 
253
- it "should return the right values" do
254
- @obj.to_solr[ActiveFedora::SolrService.solr_name("solr_rdf__related_url", type: :string)].should == ["http://example.org/blogtastic/"]
255
- @obj.to_solr[ActiveFedora::SolrService.solr_name("solr_rdf__based_near", type: :string)].should == ["Tacoma, WA","Renton, WA"]
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'])
256
256
  end
257
257
  end
258
258
  end