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
@@ -2,370 +2,370 @@ require 'spec_helper'
2
2
  require 'config_helper'
3
3
 
4
4
  describe ActiveFedora::FileConfigurator do
5
-
5
+
6
6
  subject {ActiveFedora.configurator }
7
-
7
+
8
8
  after :all do
9
9
  unstub_rails
10
10
  # Restore to default fedora configs
11
11
  restore_spec_configuration
12
12
  end
13
13
 
14
- describe "#initialize" do
15
- it "should trigger configuration reset (to empty defaults)" do
16
- ActiveFedora::FileConfigurator.any_instance.should_receive(:reset!)
14
+ describe '#initialize' do
15
+ it 'should trigger configuration reset (to empty defaults)' do
16
+ expect_any_instance_of(ActiveFedora::FileConfigurator).to receive(:reset!)
17
17
  ActiveFedora::FileConfigurator.new
18
- end
18
+ end
19
19
  end
20
20
 
21
- describe "#config_options" do
21
+ describe '#config_options' do
22
22
  before do
23
23
  subject.reset!
24
24
  end
25
- it "should be an empty hash" do
26
- subject.config_options.should == {}
25
+ it 'should be an empty hash' do
26
+ expect(subject.config_options).to eq({})
27
27
  end
28
28
  end
29
29
 
30
- describe "#fedora_config" do
30
+ describe '#fedora_config' do
31
31
  before do
32
32
  subject.reset!
33
33
  end
34
- it "should trigger configuration to load" do
35
- subject.should_receive(:load_fedora_config)
34
+ it 'should trigger configuration to load' do
35
+ expect(subject).to receive(:load_fedora_config)
36
36
  subject.fedora_config
37
- end
37
+ end
38
38
  end
39
- describe "#solr_config" do
39
+ describe '#solr_config' do
40
40
  before do
41
41
  subject.reset!
42
42
  end
43
- it "should trigger configuration to load" do
44
- subject.should_receive(:load_solr_config)
43
+ it 'should trigger configuration to load' do
44
+ expect(subject).to receive(:load_solr_config)
45
45
  subject.solr_config
46
- end
46
+ end
47
47
  end
48
48
 
49
- describe "#reset!" do
49
+ describe '#reset!' do
50
50
  before { subject.reset! }
51
- it "should clear @fedora_config" do
52
- subject.instance_variable_get(:@fedora_config).should == {}
51
+ it 'should clear @fedora_config' do
52
+ expect(subject.instance_variable_get(:@fedora_config)).to eq({})
53
53
  end
54
- it "should clear @solr_config" do
55
- subject.instance_variable_get(:@solr_config).should == {}
54
+ it 'should clear @solr_config' do
55
+ expect(subject.instance_variable_get(:@solr_config)).to eq({})
56
56
  end
57
- it "should clear @config_options" do
58
- subject.instance_variable_get(:@config_options).should == {}
57
+ it 'should clear @config_options' do
58
+ expect(subject.instance_variable_get(:@config_options)).to eq({})
59
59
  end
60
60
  end
61
61
 
62
- describe "initialization methods" do
63
-
64
- describe "get_config_path(:fedora)" do
65
- it "should use the config_options[:config_path] if it exists" do
66
- subject.should_receive(:config_options).and_return({:fedora_config_path => "/path/to/fedora.yml"})
67
- File.should_receive(:file?).with("/path/to/fedora.yml").and_return(true)
68
- subject.get_config_path(:fedora).should eql("/path/to/fedora.yml")
62
+ describe 'initialization methods' do
63
+
64
+ describe 'get_config_path(:fedora)' do
65
+ it 'should use the config_options[:config_path] if it exists' do
66
+ expect(subject).to receive(:config_options).and_return({:fedora_config_path => '/path/to/fedora.yml'})
67
+ expect(File).to receive(:file?).with('/path/to/fedora.yml').and_return(true)
68
+ expect(subject.get_config_path(:fedora)).to eql('/path/to/fedora.yml')
69
69
  end
70
70
 
71
- it "should look in Rails.root/config/fedora.yml if it exists and no fedora_config_path passed in" do
72
- subject.should_receive(:config_options).and_return({})
73
- stub_rails(:root => "/rails/root")
74
- File.should_receive(:file?).with("/rails/root/config/fedora.yml").and_return(true)
75
- subject.get_config_path(:fedora).should eql("/rails/root/config/fedora.yml")
71
+ it 'should look in Rails.root/config/fedora.yml if it exists and no fedora_config_path passed in' do
72
+ expect(subject).to receive(:config_options).and_return({})
73
+ stub_rails(:root => '/rails/root')
74
+ expect(File).to receive(:file?).with('/rails/root/config/fedora.yml').and_return(true)
75
+ expect(subject.get_config_path(:fedora)).to eql('/rails/root/config/fedora.yml')
76
76
  unstub_rails
77
77
  end
78
78
 
79
- it "should look in ./config/fedora.yml if neither rails.root nor :fedora_config_path are set" do
80
- subject.should_receive(:config_options).and_return({})
81
- Dir.stub(:getwd => "/current/working/directory")
82
- File.should_receive(:file?).with("/current/working/directory/config/fedora.yml").and_return(true)
83
- subject.get_config_path(:fedora).should eql("/current/working/directory/config/fedora.yml")
79
+ it 'should look in ./config/fedora.yml if neither rails.root nor :fedora_config_path are set' do
80
+ expect(subject).to receive(:config_options).and_return({})
81
+ Dir.stub(:getwd => '/current/working/directory')
82
+ expect(File).to receive(:file?).with('/current/working/directory/config/fedora.yml').and_return(true)
83
+ expect(subject.get_config_path(:fedora)).to eql('/current/working/directory/config/fedora.yml')
84
84
  end
85
85
 
86
- it "should return default fedora.yml that ships with active-fedora if none of the above" do
87
- subject.should_receive(:config_options).and_return({})
88
- Dir.should_receive(:getwd).and_return("/current/working/directory")
89
- File.should_receive(:file?).with("/current/working/directory/config/fedora.yml").and_return(false)
90
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','fedora.yml'))).and_return(true)
91
- logger.should_receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.")
92
- subject.get_config_path(:fedora).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','fedora.yml')))
86
+ it 'should return default fedora.yml that ships with active-fedora if none of the above' do
87
+ expect(subject).to receive(:config_options).and_return({})
88
+ expect(Dir).to receive(:getwd).and_return('/current/working/directory')
89
+ expect(File).to receive(:file?).with('/current/working/directory/config/fedora.yml').and_return(false)
90
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'fedora.yml'))).and_return(true)
91
+ expect(logger).to receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.")
92
+ expect(subject.get_config_path(:fedora)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'fedora.yml')))
93
93
  end
94
94
  end
95
95
 
96
- describe "get_config_path(:predicate_mappings)" do
97
- it "should use the config_options[:config_path] if it exists" do
98
- subject.should_receive(:config_options).and_return({:predicate_mappings_config_path => "/path/to/predicate_mappings.yml"})
99
- File.should_receive(:file?).with("/path/to/predicate_mappings.yml").and_return(true)
100
- subject.get_config_path(:predicate_mappings).should eql("/path/to/predicate_mappings.yml")
96
+ describe 'get_config_path(:predicate_mappings)' do
97
+ it 'should use the config_options[:config_path] if it exists' do
98
+ expect(subject).to receive(:config_options).and_return({:predicate_mappings_config_path => '/path/to/predicate_mappings.yml'})
99
+ expect(File).to receive(:file?).with('/path/to/predicate_mappings.yml').and_return(true)
100
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/path/to/predicate_mappings.yml')
101
101
  end
102
102
 
103
- it "should look in Rails.root/config/predicate_mappings.yml if it exists and no predicate_mappings_config_path passed in" do
104
- subject.should_receive(:config_options).and_return({})
105
- stub_rails(:root => "/rails/root")
106
- File.should_receive(:file?).with("/rails/root/config/predicate_mappings.yml").and_return(true)
107
- subject.get_config_path(:predicate_mappings).should eql("/rails/root/config/predicate_mappings.yml")
103
+ it 'should look in Rails.root/config/predicate_mappings.yml if it exists and no predicate_mappings_config_path passed in' do
104
+ expect(subject).to receive(:config_options).and_return({})
105
+ stub_rails(:root => '/rails/root')
106
+ expect(File).to receive(:file?).with('/rails/root/config/predicate_mappings.yml').and_return(true)
107
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/rails/root/config/predicate_mappings.yml')
108
108
  unstub_rails
109
109
  end
110
110
 
111
- it "should look in ./config/predicate_mappings.yml if neither rails.root nor :predicate_mappings_config_path are set" do
112
- subject.should_receive(:config_options).and_return({})
113
- Dir.stub(:getwd => "/current/working/directory")
114
- File.should_receive(:file?).with("/current/working/directory/config/predicate_mappings.yml").and_return(true)
115
- subject.get_config_path(:predicate_mappings).should eql("/current/working/directory/config/predicate_mappings.yml")
111
+ it 'should look in ./config/predicate_mappings.yml if neither rails.root nor :predicate_mappings_config_path are set' do
112
+ expect(subject).to receive(:config_options).and_return({})
113
+ Dir.stub(:getwd => '/current/working/directory')
114
+ expect(File).to receive(:file?).with('/current/working/directory/config/predicate_mappings.yml').and_return(true)
115
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/current/working/directory/config/predicate_mappings.yml')
116
116
  end
117
117
 
118
- it "should return default predicate_mappings.yml that ships with active-fedora if none of the above" do
119
- subject.should_receive(:config_options).and_return({})
120
- Dir.should_receive(:getwd).and_return("/current/working/directory")
121
- File.should_receive(:file?).with("/current/working/directory/config/predicate_mappings.yml").and_return(false)
122
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','predicate_mappings.yml'))).and_return(true)
123
- logger.should_receive(:warn).with("Using the default predicate_mappings.yml that comes with active-fedora. If you want to override this, pass the path to predicate_mappings.yml to ActiveFedora - ie. ActiveFedora.init(:predicate_mappings_config_path => '/path/to/predicate_mappings.yml') - or set Rails.root and put predicate_mappings.yml into \#{Rails.root}/config.")
124
- subject.get_config_path(:predicate_mappings).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','predicate_mappings.yml')))
118
+ it 'should return default predicate_mappings.yml that ships with active-fedora if none of the above' do
119
+ expect(subject).to receive(:config_options).and_return({})
120
+ expect(Dir).to receive(:getwd).and_return('/current/working/directory')
121
+ expect(File).to receive(:file?).with('/current/working/directory/config/predicate_mappings.yml').and_return(false)
122
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'predicate_mappings.yml'))).and_return(true)
123
+ expect(logger).to receive(:warn).with("Using the default predicate_mappings.yml that comes with active-fedora. If you want to override this, pass the path to predicate_mappings.yml to ActiveFedora - ie. ActiveFedora.init(:predicate_mappings_config_path => '/path/to/predicate_mappings.yml') - or set Rails.root and put predicate_mappings.yml into \#{Rails.root}/config.")
124
+ expect(subject.get_config_path(:predicate_mappings)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'predicate_mappings.yml')))
125
125
  end
126
126
  end
127
127
 
128
- describe "get_config_path(:solr)" do
129
- it "should return the solr_config_path if set in config_options hash" do
130
- subject.stub(:config_options => {:solr_config_path => "/path/to/solr.yml"})
131
- File.should_receive(:file?).with("/path/to/solr.yml").and_return(true)
132
- subject.get_config_path(:solr).should eql("/path/to/solr.yml")
128
+ describe 'get_config_path(:solr)' do
129
+ it 'should return the solr_config_path if set in config_options hash' do
130
+ subject.stub(:config_options => {:solr_config_path => '/path/to/solr.yml'})
131
+ expect(File).to receive(:file?).with('/path/to/solr.yml').and_return(true)
132
+ expect(subject.get_config_path(:solr)).to eql('/path/to/solr.yml')
133
133
  end
134
-
135
- it "should return the solr.yml file in the same directory as the fedora.yml if it exists" do
136
- subject.should_receive(:path).and_return("/path/to/fedora/config/fedora.yml")
137
- File.should_receive(:file?).with("/path/to/fedora/config/solr.yml").and_return(true)
138
- subject.get_config_path(:solr).should eql("/path/to/fedora/config/solr.yml")
134
+
135
+ it 'should return the solr.yml file in the same directory as the fedora.yml if it exists' do
136
+ expect(subject).to receive(:path).and_return('/path/to/fedora/config/fedora.yml')
137
+ expect(File).to receive(:file?).with('/path/to/fedora/config/solr.yml').and_return(true)
138
+ expect(subject.get_config_path(:solr)).to eql('/path/to/fedora/config/solr.yml')
139
139
  end
140
-
141
- context "no solr.yml in same directory as fedora.yml and fedora.yml does not contain solr url" do
140
+
141
+ context 'no solr.yml in same directory as fedora.yml and fedora.yml does not contain solr url' do
142
142
 
143
143
  before :each do
144
144
  subject.stub(:config_options => {})
145
- subject.should_receive(:path).and_return("/path/to/fedora/config/fedora.yml")
146
- File.should_receive(:file?).with("/path/to/fedora/config/solr.yml").and_return(false)
145
+ expect(subject).to receive(:path).and_return('/path/to/fedora/config/fedora.yml')
146
+ expect(File).to receive(:file?).with('/path/to/fedora/config/solr.yml').and_return(false)
147
147
  end
148
148
  after :each do
149
149
  unstub_rails
150
150
  end
151
151
 
152
- it "should not raise an error if there is not a solr.yml in the same directory as the fedora.yml and the fedora.yml has a solr url defined and look in rails.root" do
153
- stub_rails(:root=>"/rails/root")
154
- File.should_receive(:file?).with("/rails/root/config/solr.yml").and_return(true)
155
- subject.get_config_path(:solr).should eql("/rails/root/config/solr.yml")
152
+ it 'should not raise an error if there is not a solr.yml in the same directory as the fedora.yml and the fedora.yml has a solr url defined and look in rails.root' do
153
+ stub_rails(:root => '/rails/root')
154
+ expect(File).to receive(:file?).with('/rails/root/config/solr.yml').and_return(true)
155
+ expect(subject.get_config_path(:solr)).to eql('/rails/root/config/solr.yml')
156
156
  end
157
157
 
158
- it "should look in ./config/solr.yml if no rails root" do
159
- Dir.stub(:getwd => "/current/working/directory")
160
- File.should_receive(:file?).with("/current/working/directory/config/solr.yml").and_return(true)
161
- subject.get_config_path(:solr).should eql("/current/working/directory/config/solr.yml")
158
+ it 'should look in ./config/solr.yml if no rails root' do
159
+ Dir.stub(:getwd => '/current/working/directory')
160
+ expect(File).to receive(:file?).with('/current/working/directory/config/solr.yml').and_return(true)
161
+ expect(subject.get_config_path(:solr)).to eql('/current/working/directory/config/solr.yml')
162
162
  end
163
163
 
164
- it "should return the default solr.yml file that ships with active-fedora if no other option is set" do
165
- Dir.stub(:getwd => "/current/working/directory")
166
- File.should_receive(:file?).with("/current/working/directory/config/solr.yml").and_return(false)
167
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','solr.yml'))).and_return(true)
168
- logger.should_receive(:warn).with("Using the default solr.yml that comes with active-fedora. If you want to override this, pass the path to solr.yml to ActiveFedora - ie. ActiveFedora.init(:solr_config_path => '/path/to/solr.yml') - or set Rails.root and put solr.yml into \#{Rails.root}/config.")
169
- subject.get_config_path(:solr).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','solr.yml')))
164
+ it 'should return the default solr.yml file that ships with active-fedora if no other option is set' do
165
+ Dir.stub(:getwd => '/current/working/directory')
166
+ expect(File).to receive(:file?).with('/current/working/directory/config/solr.yml').and_return(false)
167
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'solr.yml'))).and_return(true)
168
+ expect(logger).to receive(:warn).with("Using the default solr.yml that comes with active-fedora. If you want to override this, pass the path to solr.yml to ActiveFedora - ie. ActiveFedora.init(:solr_config_path => '/path/to/solr.yml') - or set Rails.root and put solr.yml into \#{Rails.root}/config.")
169
+ expect(subject.get_config_path(:solr)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'solr.yml')))
170
170
  end
171
171
  end
172
172
 
173
173
  end
174
174
 
175
- describe "load_fedora_config" do
175
+ describe 'load_fedora_config' do
176
176
  before(:each) do
177
177
  subject.reset!
178
178
  end
179
- it "should load the file specified in fedora_config_path" do
180
- subject.stub(:load_solrizer_config)
181
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
182
- subject.should_receive(:load_solr_config)
183
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:8983\ntest:\n url: http://myfedora:8080")
184
- subject.load_fedora_config.should == {:url=>"http://myfedora:8080"}
185
- subject.fedora_config.should == {:url=>"http://myfedora:8080"}
179
+ it 'should load the file specified in fedora_config_path' do
180
+ allow(subject).to receive(:load_solrizer_config)
181
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
182
+ expect(subject).to receive(:load_solr_config)
183
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:8983\ntest:\n url: http://myfedora:8080")
184
+ expect(subject.load_fedora_config).to eq({:url => 'http://myfedora:8080'})
185
+ expect(subject.fedora_config).to eq({:url => 'http://myfedora:8080'})
186
186
  end
187
187
 
188
- it "should allow sharding" do
189
- subject.stub(:load_solrizer_config)
190
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
191
- subject.should_receive(:load_solr_config)
192
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
193
- subject.load_fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
194
- subject.fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
188
+ it 'should allow sharding' do
189
+ allow(subject).to receive(:load_solrizer_config)
190
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
191
+ expect(subject).to receive(:load_solr_config)
192
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
193
+ expect(subject.load_fedora_config).to eq([{:url => 'http://myfedora:8080'}, {:url => 'http://myfedora:8081'}])
194
+ expect(subject.fedora_config).to eq([{:url => 'http://myfedora:8080'}, {:url => 'http://myfedora:8081'}])
195
195
  end
196
196
 
197
- it "should parse the file using ERb" do
198
- subject.stub(:load_solrizer_config)
199
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
200
- subject.should_receive(:load_solr_config)
201
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:<%= 8983 %>\ntest:\n url: http://myfedora:<%= 8081 %>")
202
- subject.load_fedora_config.should == {:url=>"http://myfedora:8081"}
203
- subject.fedora_config.should == {:url=>"http://myfedora:8081"}
197
+ it 'should parse the file using ERb' do
198
+ allow(subject).to receive(:load_solrizer_config)
199
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
200
+ expect(subject).to receive(:load_solr_config)
201
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:<%= 8983 %>\ntest:\n url: http://myfedora:<%= 8081 %>")
202
+ expect(subject.load_fedora_config).to eq({:url => 'http://myfedora:8081'})
203
+ expect(subject.fedora_config).to eq({:url => 'http://myfedora:8081'})
204
204
  end
205
205
  end
206
206
 
207
- describe "load_solr_config" do
207
+ describe 'load_solr_config' do
208
208
  before(:each) do
209
209
  subject.reset!
210
210
  end
211
- it "should load the file specified in solr_config_path" do
212
- subject.stub(:load_solrizer_config)
213
- subject.should_receive(:get_config_path).with(:solr).and_return("/path/to/solr.yml")
214
- subject.should_receive(:load_fedora_config)
215
- IO.should_receive(:read).with("/path/to/solr.yml").and_return("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
216
- subject.load_solr_config.should == {:url=>"http://mysolr:8080"}
217
- subject.solr_config.should == {:url=>"http://mysolr:8080"}
211
+ it 'should load the file specified in solr_config_path' do
212
+ allow(subject).to receive(:load_solrizer_config)
213
+ expect(subject).to receive(:get_config_path).with(:solr).and_return('/path/to/solr.yml')
214
+ expect(subject).to receive(:load_fedora_config)
215
+ expect(IO).to receive(:read).with('/path/to/solr.yml').and_return("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
216
+ expect(subject.load_solr_config).to eq({:url => 'http://mysolr:8080'})
217
+ expect(subject.solr_config).to eq({:url => 'http://mysolr:8080'})
218
218
  end
219
219
 
220
- it "should parse the file using ERb" do
221
- subject.stub(:load_solrizer_config)
222
- subject.should_receive(:get_config_path).with(:solr).and_return("/path/to/solr.yml")
223
- subject.should_receive(:load_fedora_config)
224
- IO.should_receive(:read).with("/path/to/solr.yml").and_return("development:\n default:\n url: http://devsolr:<%= 8983 %>\ntest:\n default:\n url: http://mysolr:<%= 8081 %>")
225
- subject.load_solr_config.should == {:url=>"http://mysolr:8081"}
226
- subject.solr_config.should == {:url=>"http://mysolr:8081"}
220
+ it 'should parse the file using ERb' do
221
+ allow(subject).to receive(:load_solrizer_config)
222
+ expect(subject).to receive(:get_config_path).with(:solr).and_return('/path/to/solr.yml')
223
+ expect(subject).to receive(:load_fedora_config)
224
+ expect(IO).to receive(:read).with('/path/to/solr.yml').and_return("development:\n default:\n url: http://devsolr:<%= 8983 %>\ntest:\n default:\n url: http://mysolr:<%= 8081 %>")
225
+ expect(subject.load_solr_config).to eq({:url => 'http://mysolr:8081'})
226
+ expect(subject.solr_config).to eq({:url => 'http://mysolr:8081'})
227
227
  end
228
228
  end
229
229
 
230
- describe "load_configs" do
231
- describe "when config is not loaded" do
230
+ describe 'load_configs' do
231
+ describe 'when config is not loaded' do
232
232
  before do
233
233
  subject.instance_variable_set :@config_loaded, nil
234
234
  end
235
- it "should load the fedora and solr configs" do
236
- subject.config_loaded?.should be_false
235
+ it 'should load the fedora and solr configs' do
236
+ expect(subject.config_loaded?).to be_falsey
237
237
  subject.load_configs
238
- subject.config_loaded?.should be_true
238
+ expect(subject.config_loaded?).to be_truthy
239
239
  end
240
240
  end
241
- describe "when config is loaded" do
241
+ describe 'when config is loaded' do
242
242
  before do
243
243
  subject.instance_variable_set :@config_loaded, true
244
244
  end
245
- it "should load the fedora and solr configs" do
246
- subject.should_receive(:load_config).never
247
- subject.config_loaded?.should be_true
245
+ it 'should load the fedora and solr configs' do
246
+ expect(subject).to receive(:load_config).never
247
+ expect(subject.config_loaded?).to be_truthy
248
248
  subject.load_configs
249
- subject.config_loaded?.should be_true
249
+ expect(subject.config_loaded?).to be_truthy
250
250
  end
251
251
  end
252
252
  end
253
253
 
254
- describe "check_fedora_path_for_solr" do
255
- it "should find the solr.yml file and return it if it exists" do
256
- subject.should_receive(:path).and_return("/path/to/fedora/fedora.yml")
257
- File.should_receive(:file?).with("/path/to/fedora/solr.yml").and_return(true)
258
- subject.check_fedora_path_for_solr.should == "/path/to/fedora/solr.yml"
254
+ describe 'check_fedora_path_for_solr' do
255
+ it 'should find the solr.yml file and return it if it exists' do
256
+ expect(subject).to receive(:path).and_return('/path/to/fedora/fedora.yml')
257
+ expect(File).to receive(:file?).with('/path/to/fedora/solr.yml').and_return(true)
258
+ expect(subject.check_fedora_path_for_solr).to eq('/path/to/fedora/solr.yml')
259
259
  end
260
- it "should return nil if the solr.yml file is not there" do
261
- subject.should_receive(:path).and_return("/path/to/fedora/fedora.yml")
262
- File.should_receive(:file?).with("/path/to/fedora/solr.yml").and_return(false)
263
- subject.check_fedora_path_for_solr.should be_nil
260
+ it 'should return nil if the solr.yml file is not there' do
261
+ expect(subject).to receive(:path).and_return('/path/to/fedora/fedora.yml')
262
+ expect(File).to receive(:file?).with('/path/to/fedora/solr.yml').and_return(false)
263
+ expect(subject.check_fedora_path_for_solr).to be_nil
264
264
  end
265
265
  end
266
266
  end
267
-
268
- describe "setting the environment and loading configuration" do
269
-
267
+
268
+ describe 'setting the environment and loading configuration' do
269
+
270
270
  before(:all) do
271
271
  @fake_rails_root = File.expand_path(File.dirname(__FILE__) + '/../fixtures/rails_root')
272
272
  end
273
273
 
274
-
274
+
275
275
  after(:all) do
276
- config_file = File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml")
277
- environment = "test"
278
- ActiveFedora.init(:environment=>environment, :fedora_config_path=>config_file)
276
+ config_file = File.join(File.dirname(__FILE__), '..', '..', 'config', 'fedora.yml')
277
+ environment = 'test'
278
+ ActiveFedora.init(:environment => environment, :fedora_config_path => config_file)
279
279
  end
280
-
281
- it "can tell its config paths" do
280
+
281
+ it 'can tell its config paths' do
282
282
  subject.init
283
- subject.should respond_to(:solr_config_path)
283
+ expect(subject).to respond_to(:solr_config_path)
284
284
  end
285
- it "loads a config from the current working directory as a second choice" do
286
- subject.stub(:load_solrizer_config)
287
- Dir.stub(:getwd).and_return(@fake_rails_root)
285
+ it 'loads a config from the current working directory as a second choice' do
286
+ allow(subject).to receive(:load_solrizer_config)
287
+ allow(Dir).to receive(:getwd).and_return(@fake_rails_root)
288
288
  subject.init
289
- subject.get_config_path(:fedora).should eql("#{@fake_rails_root}/config/fedora.yml")
290
- subject.solr_config_path.should eql("#{@fake_rails_root}/config/solr.yml")
289
+ expect(subject.get_config_path(:fedora)).to eql("#{@fake_rails_root}/config/fedora.yml")
290
+ expect(subject.solr_config_path).to eql("#{@fake_rails_root}/config/solr.yml")
291
291
  end
292
- it "loads the config that ships with this gem as a last choice" do
293
- Dir.stub(:getwd).and_return("/fake/path")
294
- subject.stub(:load_solrizer_config)
295
- logger.should_receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.").exactly(3).times
292
+ it 'loads the config that ships with this gem as a last choice' do
293
+ allow(Dir).to receive(:getwd).and_return('/fake/path')
294
+ allow(subject).to receive(:load_solrizer_config)
295
+ expect(logger).to receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.").exactly(3).times
296
296
  subject.init
297
- expected_config = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "config"))
298
- subject.get_config_path(:fedora).should eql(expected_config+'/fedora.yml')
299
- subject.solr_config_path.should eql(expected_config+'/solr.yml')
297
+ expected_config = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config'))
298
+ expect(subject.get_config_path(:fedora)).to eql(expected_config + '/fedora.yml')
299
+ expect(subject.solr_config_path).to eql(expected_config + '/solr.yml')
300
300
  end
301
- it "raises an error if you pass in a string" do
302
- lambda{ subject.init("#{@fake_rails_root}/config/fake_fedora.yml") }.should raise_exception(ArgumentError)
301
+ it 'raises an error if you pass in a string' do
302
+ expect{ subject.init("#{@fake_rails_root}/config/fake_fedora.yml") }.to raise_exception(ArgumentError)
303
303
  end
304
- it "raises an error if you pass in a non-existant config file" do
305
- lambda{ subject.init(:fedora_config_path=>"really_fake_fedora.yml") }.should raise_exception(ActiveFedora::ConfigurationError)
304
+ it 'raises an error if you pass in a non-existant config file' do
305
+ expect{ subject.init(:fedora_config_path => 'really_fake_fedora.yml') }.to raise_exception(ActiveFedora::ConfigurationError)
306
306
  end
307
-
308
- describe "within Rails" do
309
- before(:all) do
310
- stub_rails(:root=>File.dirname(__FILE__) + '/../fixtures/rails_root')
307
+
308
+ describe 'within Rails' do
309
+ before(:all) do
310
+ stub_rails(:root => File.dirname(__FILE__) + '/../fixtures/rails_root')
311
311
  end
312
312
 
313
313
  after(:all) do
314
314
  unstub_rails
315
315
  end
316
-
317
- it "loads a config from Rails.root as a first choice" do
318
- subject.stub(:load_solrizer_config)
316
+
317
+ it 'loads a config from Rails.root as a first choice' do
318
+ allow(subject).to receive(:load_solrizer_config)
319
319
  subject.init
320
- subject.get_config_path(:fedora).should eql("#{Rails.root}/config/fedora.yml")
321
- subject.solr_config_path.should eql("#{Rails.root}/config/solr.yml")
320
+ expect(subject.get_config_path(:fedora)).to eql("#{Rails.root}/config/fedora.yml")
321
+ expect(subject.solr_config_path).to eql("#{Rails.root}/config/solr.yml")
322
322
  end
323
-
324
- it "can tell what environment it is set to run in" do
325
- stub_rails(:env=>"development")
323
+
324
+ it 'can tell what environment it is set to run in' do
325
+ stub_rails(:env => 'development')
326
326
  subject.init
327
- ActiveFedora.environment.should eql("development")
327
+ expect(ActiveFedora.environment).to eql('development')
328
328
  end
329
-
329
+
330
330
  end
331
331
  end
332
-
332
+
333
333
  ##########################
334
-
335
- describe ".build_predicate_config_path" do
336
- it "should return the path to the default config/predicate_mappings.yml if no valid path is given" do
337
- subject.send(:build_predicate_config_path).should == default_predicate_mapping_file
334
+
335
+ describe '.build_predicate_config_path' do
336
+ it 'should return the path to the default config/predicate_mappings.yml if no valid path is given' do
337
+ expect(subject.send(:build_predicate_config_path)).to eq(default_predicate_mapping_file)
338
338
  end
339
339
  end
340
340
 
341
- describe ".predicate_config" do
341
+ describe '.predicate_config' do
342
342
  before do
343
343
  subject.instance_variable_set :@config_loaded, nil
344
344
  end
345
- it "should return the default mapping if it has not been initialized" do
346
- subject.predicate_config().should == YAMLAdaptor.load(File.read(default_predicate_mapping_file))
345
+ it 'should return the default mapping if it has not been initialized' do
346
+ expect(subject.predicate_config()).to eq(YAMLAdaptor.load(File.read(default_predicate_mapping_file)))
347
347
  end
348
348
  end
349
349
 
350
- describe ".valid_predicate_mapping" do
351
- it "should return true if the predicate mapping has the appropriate keys and value types" do
352
- subject.send(:valid_predicate_mapping?,default_predicate_mapping_file).should be_true
350
+ describe '.valid_predicate_mapping' do
351
+ it 'should return true if the predicate mapping has the appropriate keys and value types' do
352
+ expect(subject.send(:valid_predicate_mapping?, default_predicate_mapping_file)).to be_truthy
353
353
  end
354
- it "should return false if the mapping is missing the :default_namespace" do
355
- mock_yaml({:default_namespace0=>"my_namespace",:predicate_mapping=>{:key0=>"value0", :key1=>"value1"}},"/path/to/predicate_mappings.yml")
356
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
354
+ it 'should return false if the mapping is missing the :default_namespace' do
355
+ mock_yaml({:default_namespace0 => 'my_namespace', :predicate_mapping => {:key0 => 'value0', :key1 => 'value1'}}, '/path/to/predicate_mappings.yml')
356
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
357
357
  end
358
- it "should return false if the :default_namespace is not a string" do
359
- mock_yaml({:default_namespace=>{:foo=>"bar"}, :predicate_mapping=>{:key0=>"value0", :key1=>"value1"}},"/path/to/predicate_mappings.yml")
360
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
358
+ it 'should return false if the :default_namespace is not a string' do
359
+ mock_yaml({:default_namespace => {:foo => 'bar'}, :predicate_mapping => {:key0 => 'value0', :key1 => 'value1'}}, '/path/to/predicate_mappings.yml')
360
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
361
361
  end
362
- it "should return false if the :predicate_mappings key is missing" do
363
- mock_yaml({:default_namespace=>"a string"},"/path/to/predicate_mappings.yml")
364
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
362
+ it 'should return false if the :predicate_mappings key is missing' do
363
+ mock_yaml({:default_namespace => 'a string'}, '/path/to/predicate_mappings.yml')
364
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
365
365
  end
366
- it "should return false if the :predicate_mappings key is not a hash" do
367
- mock_yaml({:default_namespace=>"a string",:predicate_mapping=>"another string"},"/path/to/predicate_mappings.yml")
368
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
366
+ it 'should return false if the :predicate_mappings key is not a hash' do
367
+ mock_yaml({:default_namespace => 'a string', :predicate_mapping => 'another string'}, '/path/to/predicate_mappings.yml')
368
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
369
369
  end
370
370
 
371
371
  end