active-fedora 6.7.8 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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