active-fedora 3.0.7 → 3.1.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -1
- data/Gemfile.lock +39 -10
- data/History.txt +0 -4
- data/active-fedora.gemspec +4 -3
- data/lib/active_fedora.rb +9 -9
- data/lib/active_fedora/base.rb +92 -163
- data/lib/active_fedora/datastream.rb +59 -60
- data/lib/active_fedora/datastream_hash.rb +18 -0
- data/lib/active_fedora/metadata_datastream.rb +3 -2
- data/lib/active_fedora/metadata_datastream_helper.rb +3 -15
- data/lib/active_fedora/model.rb +3 -3
- data/lib/active_fedora/nokogiri_datastream.rb +305 -302
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +24 -19
- data/lib/active_fedora/rels_ext_datastream.rb +39 -37
- data/lib/active_fedora/rubydora_connection.rb +40 -0
- data/lib/active_fedora/semantic_node.rb +1 -1
- data/lib/active_fedora/solr_service.rb +1 -1
- data/lib/active_fedora/version.rb +1 -1
- data/lib/ruby-fedora.rb +0 -8
- data/lib/tasks/active_fedora.rake +14 -9
- data/lib/tasks/active_fedora_dev.rake +23 -40
- data/spec/integration/base_loader_spec.rb +4 -21
- data/spec/integration/base_spec.rb +300 -310
- data/spec/integration/bug_spec.rb +9 -10
- data/spec/integration/datastream_spec.rb +12 -12
- data/spec/integration/metadata_datastream_helper_spec.rb +7 -10
- data/spec/integration/model_spec.rb +3 -2
- data/spec/integration/rels_ext_datastream_spec.rb +9 -15
- data/spec/spec_helper.rb +2 -29
- data/spec/unit/active_fedora_spec.rb +5 -5
- data/spec/unit/base_cma_spec.rb +0 -7
- data/spec/unit/base_datastream_management_spec.rb +8 -67
- data/spec/unit/base_delegate_spec.rb +26 -9
- data/spec/unit/base_extra_spec.rb +5 -3
- data/spec/unit/base_file_management_spec.rb +10 -17
- data/spec/unit/base_named_datastream_spec.rb +76 -199
- data/spec/unit/base_spec.rb +152 -69
- data/spec/unit/content_model_spec.rb +1 -1
- data/spec/unit/datastream_concurrency_spec.rb +5 -4
- data/spec/unit/datastream_spec.rb +28 -48
- data/spec/unit/has_many_collection_spec.rb +2 -0
- data/spec/unit/inheritance_spec.rb +6 -6
- data/spec/unit/metadata_datastream_spec.rb +12 -28
- data/spec/unit/model_spec.rb +10 -10
- data/spec/unit/nokogiri_datastream_spec.rb +31 -33
- data/spec/unit/qualified_dublin_core_datastream_spec.rb +15 -15
- data/spec/unit/rels_ext_datastream_spec.rb +35 -29
- data/spec/unit/rubydora_connection_spec.rb +26 -0
- data/spec/unit/semantic_node_spec.rb +12 -17
- data/spec/unit/solr_config_options_spec.rb +13 -14
- data/spec/unit/solr_service_spec.rb +14 -17
- metadata +59 -55
- data/lib/fedora/base.rb +0 -38
- data/lib/fedora/connection.rb +0 -218
- data/lib/fedora/datastream.rb +0 -67
- data/lib/fedora/fedora_object.rb +0 -161
- data/lib/fedora/formats.rb +0 -30
- data/lib/fedora/generic_search.rb +0 -71
- data/lib/fedora/repository.rb +0 -298
- data/spec/integration/datastreams_crud_spec.rb +0 -208
- data/spec/integration/fedora_object_spec.rb +0 -77
- data/spec/integration/repository_spec.rb +0 -301
- data/spec/integration/rf_fedora_object_spec.rb +0 -95
- data/spec/unit/connection_spec.rb +0 -25
- data/spec/unit/fedora_object_spec.rb +0 -74
- data/spec/unit/repository_spec.rb +0 -143
- data/spec/unit/rf_datastream_spec.rb +0 -63
@@ -14,14 +14,12 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
before(:each) do
|
17
|
-
|
18
|
-
@test_ds = ActiveFedora::QualifiedDublinCoreDatastream.new
|
17
|
+
ActiveFedora::RubydoraConnection.instance.stubs(:nextid).returns("_nextid_")
|
18
|
+
@test_ds = ActiveFedora::QualifiedDublinCoreDatastream.new(nil, nil)
|
19
19
|
end
|
20
20
|
it "from_xml should parse everything correctly" do
|
21
21
|
#originally just tested that lcsh encoding and stuff worked, but the other stuff is worth testing
|
22
|
-
|
23
|
-
mockr.expects(:nextid).returns("meh:leh")
|
24
|
-
Fedora::Repository.stubs(:instance).returns(mockr)
|
22
|
+
ActiveFedora::RubydoraConnection.instance.expects(:nextid).returns("meh:leh")
|
25
23
|
tmpl = OralHistorySampleModel.new.datastreams['dublin_core']
|
26
24
|
|
27
25
|
tmpl.expects(:subject_append).with('sh1')
|
@@ -46,9 +44,9 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
|
|
46
44
|
tmpl.expects(:description_append).with('desc')
|
47
45
|
|
48
46
|
sample_xml = fixture('oh_qdc.xml')
|
49
|
-
sample_ds_xml = Nokogiri::XML::Document.parse(sample_xml).xpath('//foxml:datastream').first
|
47
|
+
sample_ds_xml = Nokogiri::XML::Document.parse(sample_xml).xpath('//foxml:datastream/foxml:datastreamVersion/foxml:xmlContent/dc').first
|
50
48
|
|
51
|
-
z = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(
|
49
|
+
z = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(sample_ds_xml.to_s, tmpl)
|
52
50
|
z.should === tmpl
|
53
51
|
end
|
54
52
|
|
@@ -64,8 +62,9 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
|
|
64
62
|
it "should have identity in and out" do
|
65
63
|
sample = fixture('oh_qdc.xml')
|
66
64
|
tmpl = OralHistorySampleModel.new.datastreams['dublin_core']
|
67
|
-
|
68
|
-
|
65
|
+
x1 = Nokogiri::XML::Document.parse(sample).xpath('/wrapper/foxml:datastream/foxml:datastreamVersion/foxml:xmlContent/dc').first.to_xml
|
66
|
+
z = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(x1, tmpl)
|
67
|
+
y = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(z.to_dc_xml, tmpl)
|
69
68
|
y.to_dc_xml.should == z.to_dc_xml
|
70
69
|
end
|
71
70
|
|
@@ -81,8 +80,8 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
|
|
81
80
|
|
82
81
|
it "should parse dcterms and dcelements from xml" do
|
83
82
|
doc = Nokogiri::XML::Document.parse(File.open( File.dirname(__FILE__)+'/../fixtures/changeme155.xml') )
|
84
|
-
stream = doc.xpath('//foxml:datastream[@ID=\'dublin_core\']')
|
85
|
-
n = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(ActiveFedora::QualifiedDublinCoreDatastream.new,
|
83
|
+
stream = doc.xpath('//foxml:datastream[@ID=\'dublin_core\']/foxml:datastreamVersion/foxml:xmlContent/dc')
|
84
|
+
n = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(stream.to_xml, ActiveFedora::QualifiedDublinCoreDatastream.new(nil, nil))
|
86
85
|
n.spatial_values.should == ["Boston [7013445]", "Dorchester [7013575]", "Roxbury [7015002]"]
|
87
86
|
n.title_values.should == ["Oral history with Frances Addelson, 1997 November 14"]
|
88
87
|
n.dirty?.should == false
|
@@ -122,10 +121,11 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
|
|
122
121
|
|
123
122
|
end
|
124
123
|
|
125
|
-
describe '
|
126
|
-
it "should call .
|
127
|
-
|
128
|
-
@test_ds.
|
124
|
+
describe 'serialize!' do
|
125
|
+
it "should call .content= with to_dc_xml" do
|
126
|
+
result = @test_ds.to_dc_xml
|
127
|
+
@test_ds.expects(:content=).with(result)
|
128
|
+
@test_ds.serialize!
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
@@ -18,39 +18,24 @@ describe ActiveFedora::RelsExtDatastream do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
before(:each) do
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
describe "#new" do
|
29
|
-
it "should create a datastream with DSID of RELS-EXT" do
|
30
|
-
test_datastream = ActiveFedora::RelsExtDatastream.new
|
31
|
-
test_datastream.dsid.should eql("RELS-EXT")
|
32
|
-
end
|
21
|
+
mock_inner = mock('inner object')
|
22
|
+
@mock_repo = mock('repository')
|
23
|
+
@mock_repo.stubs(:datastream_dissemination=>'My Content')
|
24
|
+
mock_inner.stubs(:repository).returns(@mock_repo)
|
25
|
+
mock_inner.stubs(:pid).returns(@pid)
|
26
|
+
@test_ds = ActiveFedora::RelsExtDatastream.new(mock_inner, "RELS-EXT")
|
33
27
|
end
|
34
28
|
|
35
29
|
it 'should respond to #save' do
|
36
30
|
@test_ds.should respond_to(:save)
|
37
31
|
end
|
38
32
|
|
39
|
-
describe '#
|
40
|
-
|
41
|
-
it "should call super.save" do
|
42
|
-
# Funny jiggering to mock super when RelsExt datstream calls super.save
|
43
|
-
Fedora::Repository.instance.expects(:save).returns(mock("boo"))
|
44
|
-
@test_ds.save
|
45
|
-
end
|
33
|
+
describe '#serialize!' do
|
46
34
|
|
47
35
|
it "should generate new rdf/xml as the datastream content if the object has been changed" do
|
48
|
-
@test_ds.
|
49
|
-
@test_ds.
|
50
|
-
@test_ds.
|
51
|
-
# Funny jiggering to mock super when RelsExt datstream calls super.save
|
52
|
-
Fedora::Repository.instance.expects(:save).returns(mock("boo"))
|
53
|
-
@test_ds.save
|
36
|
+
@test_ds.register_triple(:self, :is_member_of, "demo:10")
|
37
|
+
@test_ds.serialize!
|
38
|
+
@test_ds.content.should == " <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n <rdf:Description rdf:about='info:fedora/test:sample_pid'>\n <isMemberOf rdf:resource='demo:10' xmlns='info:fedora/fedora-system:def/relations-external#'/></rdf:Description>\n </rdf:RDF>\n"
|
54
39
|
end
|
55
40
|
|
56
41
|
end
|
@@ -68,11 +53,9 @@ describe ActiveFedora::RelsExtDatastream do
|
|
68
53
|
end
|
69
54
|
it "should load RELS-EXT relationships into relationships hash" do
|
70
55
|
@test_obj.relationships.should == {:self=>{:is_member_of=>["info:fedora/demo:10"], :is_part_of=>["info:fedora/demo:11"], :has_model=>["info:fedora/afmodel:ActiveFedora_Base"], :conforms_to=>["AnInterface"]}}
|
71
|
-
|
72
|
-
el = doc.xpath("/foxml:digitalObject//foxml:datastream[@ID='RELS-EXT']").first
|
73
|
-
new_ds = ActiveFedora::RelsExtDatastream.new
|
56
|
+
new_ds = ActiveFedora::RelsExtDatastream.new(nil, nil)
|
74
57
|
new_ds.relationships.should == {:self=>{}}
|
75
|
-
ActiveFedora::RelsExtDatastream.from_xml(new_ds
|
58
|
+
ActiveFedora::RelsExtDatastream.from_xml(@test_obj.rels_ext.content,new_ds)
|
76
59
|
new_ds.relationships.should == @test_obj.relationships
|
77
60
|
end
|
78
61
|
it "should handle un-mapped predicates gracefully" do
|
@@ -81,6 +64,29 @@ describe ActiveFedora::RelsExtDatastream do
|
|
81
64
|
@test_obj.save
|
82
65
|
@test_obj.relationships.should == {:self=>{:is_part_of=>["info:fedora/demo:11"], "foo"=>["info:fedora/foo:bar"], :has_model=>["info:fedora/afmodel:ActiveFedora_Base"], :is_member_of=>["info:fedora/demo:10"], :conforms_to=>["AnInterface"]}}
|
83
66
|
end
|
67
|
+
it "should handle un-mapped literals" do
|
68
|
+
pending
|
69
|
+
xml = "
|
70
|
+
<foxml:datastream ID=\"RELS-EXT\" STATE=\"A\" CONTROL_GROUP=\"X\" VERSIONABLE=\"true\" xmlns:foxml=\"info:fedora/fedora-system:def/foxml#\">
|
71
|
+
<foxml:datastreamVersion ID=\"RELS-EXT.0\" LABEL=\"\" CREATED=\"2011-09-20T19:48:43.714Z\" MIMETYPE=\"text/xml\" SIZE=\"622\">
|
72
|
+
<foxml:xmlContent>
|
73
|
+
<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">
|
74
|
+
<rdf:Description rdf:about=\"info:fedora/changeme:3489\">
|
75
|
+
<hasModel xmlns=\"info:fedora/fedora-system:def/model#\" rdf:resource=\"info:fedora/afmodel:ActiveFedora_Base\"/>
|
76
|
+
<isPartOf xmlns=\"info:fedora/fedora-system:def/relations-external#\" rdf:resource=\"info:fedora/demo:11\"/>
|
77
|
+
<isMemberOf xmlns=\"info:fedora/fedora-system:def/relations-external#\" rdf:resource=\"info:fedora/demo:10\"/>
|
78
|
+
<hasMetadata xmlns=\"info:fedora/fedora-system:def/relations-external#\">oai:hull.ac.uk:hull:2708</hasMetadata>
|
79
|
+
</rdf:Description>
|
80
|
+
</rdf:RDF>
|
81
|
+
</foxml:xmlContent>
|
82
|
+
</foxml:datastreamVersion>\n</foxml:datastream>\n"
|
83
|
+
doc = Nokogiri::XML::Document.parse(xml)
|
84
|
+
new_ds = ActiveFedora::RelsExtDatastream.new
|
85
|
+
ActiveFedora::RelsExtDatastream.from_xml(new_ds,doc.root)
|
86
|
+
new_ext = new_ds.to_rels_ext('changeme:3489')
|
87
|
+
new_ext.should match "<hasMetadata xmlns=\"info:fedora/fedora-system:def/relations-external#\">oai:hull.ac.uk:hull:2708</hasMetadata>"
|
88
|
+
|
89
|
+
end
|
84
90
|
end
|
85
91
|
|
86
92
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), "../spec_helper" )
|
2
|
+
require 'active_fedora/rubydora_connection'
|
3
|
+
|
4
|
+
describe ActiveFedora::RubydoraConnection do
|
5
|
+
|
6
|
+
describe 'nextid' do
|
7
|
+
before do
|
8
|
+
@instance = ActiveFedora::RubydoraConnection.instance
|
9
|
+
end
|
10
|
+
it "should get nextid" do
|
11
|
+
one = @instance.nextid
|
12
|
+
two = @instance.nextid
|
13
|
+
one = one.gsub('changeme:', '').to_i
|
14
|
+
two = two.gsub('changeme:', '').to_i
|
15
|
+
two.should == one + 1
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'find_model' do
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
|
@@ -1,11 +1,6 @@
|
|
1
1
|
require File.join( File.dirname(__FILE__), "../spec_helper" )
|
2
2
|
|
3
|
-
require 'active_fedora'
|
4
3
|
require 'xmlsimple'
|
5
|
-
#require 'mocha'
|
6
|
-
|
7
|
-
#include ActiveFedora::SemanticNode
|
8
|
-
#include Mocha::API
|
9
4
|
|
10
5
|
@@last_pid = 0
|
11
6
|
|
@@ -36,6 +31,16 @@ describe ActiveFedora::SemanticNode do
|
|
36
31
|
include ActiveFedora::SemanticNode
|
37
32
|
|
38
33
|
attr_accessor :pid
|
34
|
+
def initialize (params={})
|
35
|
+
self.pid = params[:pid]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class AudioRecord
|
40
|
+
attr_accessor :pid
|
41
|
+
def initialize (params={})
|
42
|
+
self.pid = params[:pid]
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
@node = SpecNode.new
|
@@ -268,18 +273,12 @@ describe ActiveFedora::SemanticNode do
|
|
268
273
|
|
269
274
|
it "resulting finder should search against solr and use Model#load_instance to build an array of objects" do
|
270
275
|
solr_result = (mock("solr result", :is_a? => true, :hits => @sample_solr_hits))
|
271
|
-
mock_repo = mock("repo")
|
272
|
-
mock_repo.expects(:find_model).with("_PID1_", "AudioRecord").returns("AR1")
|
273
|
-
mock_repo.expects(:find_model).with("_PID2_", "AudioRecord").returns("AR2")
|
274
|
-
mock_repo.expects(:find_model).with("_PID3_", "AudioRecord").returns("AR3")
|
275
276
|
SpecNode.create_inbound_relationship_finders("parts", :is_part_of, :inbound => true)
|
276
277
|
local_node = SpecNode.new()
|
277
278
|
local_node.expects(:pid).returns("test:sample_pid")
|
278
279
|
SpecNode.expects(:relationships_desc).returns({:inbound=>{"parts"=>{:predicate=>:is_part_of}}}).at_least_once()
|
279
280
|
ActiveFedora::SolrService.instance.conn.expects(:query).with("is_part_of_s:info\\:fedora/test\\:sample_pid", :rows=>25).returns(solr_result)
|
280
|
-
|
281
|
-
Kernel.expects(:const_get).with("AudioRecord").returns("AudioRecord").times(3)
|
282
|
-
local_node.parts.should == ["AR1", "AR2", "AR3"]
|
281
|
+
local_node.parts.map(&:pid).should == ["_PID1_", "_PID2_", "_PID3_"]
|
283
282
|
end
|
284
283
|
|
285
284
|
it "resulting finder should accept :solr as :response_format value and return the raw Solr Result" do
|
@@ -353,11 +352,7 @@ describe ActiveFedora::SemanticNode do
|
|
353
352
|
{"id"=> "my:_PID3_", "has_model_s"=>["info:fedora/afmodel:SpecNode"]}])
|
354
353
|
|
355
354
|
ActiveFedora::SolrService.instance.conn.expects(:query).with("id:my\\:_PID1_ OR id:my\\:_PID2_ OR id:my\\:_PID3_").returns(solr_result)
|
356
|
-
|
357
|
-
mock_repo.expects(:find_model).with("my:_PID2_", SpecNode).returns("AR2")
|
358
|
-
mock_repo.expects(:find_model).with("my:_PID3_", SpecNode).returns("AR3")
|
359
|
-
Fedora::Repository.expects(:instance).returns(mock_repo).times(3)
|
360
|
-
local_node.containers.should == ["AR1", "AR2", "AR3"]
|
355
|
+
local_node.containers.map(&:pid).should == ["my:_PID1_", "my:_PID2_", "my:_PID3_"]
|
361
356
|
end
|
362
357
|
|
363
358
|
it "should accept :solr as :response_format value and return the raw Solr Result" do
|
@@ -1,21 +1,21 @@
|
|
1
1
|
require File.join( File.dirname(__FILE__), "../spec_helper" )
|
2
2
|
|
3
|
-
require 'active_fedora/solr_service'
|
4
3
|
|
5
|
-
include ActiveFedora
|
4
|
+
#include ActiveFedora
|
6
5
|
|
7
6
|
describe ActiveFedora do
|
8
7
|
|
9
8
|
before(:all) do
|
10
|
-
module
|
9
|
+
module SolrSpecModel
|
11
10
|
class Basic
|
12
11
|
include ActiveFedora::Model
|
12
|
+
def initialize(opts)
|
13
|
+
end
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
18
|
before(:each) do
|
18
|
-
Fedora::Repository.instance.stubs(:nextid).returns("_nextid_")
|
19
19
|
@test_object = ActiveFedora::Base.new
|
20
20
|
end
|
21
21
|
|
@@ -53,11 +53,11 @@ describe ActiveFedora do
|
|
53
53
|
mock_result = mock("MockResult")
|
54
54
|
mock_result.expects(:hits).returns([{SOLR_DOCUMENT_ID => "changeme:30"}])
|
55
55
|
mock_solr.expects(:query).with(SOLR_DOCUMENT_ID + ':changeme\:30').returns(mock_result)
|
56
|
-
Fedora::Repository.instance.expects(:find_model).with("changeme:30",
|
56
|
+
#Fedora::Repository.instance.expects(:find_model).with("changeme:30", SolrSpecModel::Basic).returns("fake object")
|
57
57
|
|
58
58
|
ActiveFedora::SolrService.expects(:instance).returns(mock("SolrService", :conn => mock_solr))
|
59
59
|
|
60
|
-
res =
|
60
|
+
res = SolrSpecModel::Basic.find("changeme:30")
|
61
61
|
end
|
62
62
|
it "should be used by ActiveFedora::Base#find_by_solr" do
|
63
63
|
mock_solr = mock("SolrConnection")
|
@@ -65,7 +65,7 @@ describe ActiveFedora do
|
|
65
65
|
mock_solr.expects(:query).with(SOLR_DOCUMENT_ID + ':changeme\:30', {}).returns(mock_response)
|
66
66
|
ActiveFedora::SolrService.expects(:instance).returns(mock("SolrService", :conn => mock_solr))
|
67
67
|
|
68
|
-
|
68
|
+
SolrSpecModel::Basic.find_by_solr("changeme:30").should equal(mock_response)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -79,18 +79,17 @@ describe ActiveFedora do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should prevent Base.save from calling update_index if false" do
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
@test_object.
|
87
|
-
@test_object.stubs(:datastreams_in_memory).returns({:ds1 => dirty_ds})
|
82
|
+
dirty_ds = ActiveFedora::MetadataDatastream.new(@test_object.inner_object, 'ds1')
|
83
|
+
repo = @test_object.inner_object.repository
|
84
|
+
repo.expects(:add_datastream).twice
|
85
|
+
repo.expects(:ingest)
|
86
|
+
@test_object.stubs(:datastreams).returns({:ds1 => dirty_ds})
|
88
87
|
@test_object.expects(:update_index).never
|
89
88
|
@test_object.expects(:refresh)
|
90
89
|
@test_object.save
|
91
90
|
end
|
92
91
|
it "should prevent Base.delete from deleting the corresponding Solr document if false" do
|
93
|
-
|
92
|
+
Rubydora::DigitalObject.any_instance.expects(:delete)
|
94
93
|
ActiveFedora::SolrService.instance.conn.expects(:delete).with(@test_object.pid).never
|
95
94
|
@test_object.delete
|
96
95
|
end
|
@@ -1,8 +1,5 @@
|
|
1
1
|
require File.join( File.dirname(__FILE__), "../spec_helper" )
|
2
2
|
|
3
|
-
require 'active_fedora/solr_service'
|
4
|
-
|
5
|
-
include ActiveFedora
|
6
3
|
|
7
4
|
describe ActiveFedora::SolrService do
|
8
5
|
after(:all) do
|
@@ -12,34 +9,34 @@ describe ActiveFedora::SolrService do
|
|
12
9
|
it "should take a narg constructor and configure for localhost" do
|
13
10
|
mconn = mock('conn')
|
14
11
|
Solr::Connection.expects(:new).with('http://localhost:8080/solr', {:autocommit=>:on}).returns(mconn)
|
15
|
-
ss = SolrService.register
|
12
|
+
ss = ActiveFedora::SolrService.register
|
16
13
|
end
|
17
14
|
it "should accept host arg into constructor" do
|
18
15
|
mconn = mock('conn')
|
19
16
|
Solr::Connection.expects(:new).with('http://fubar', {:autocommit=>:on}).returns(mconn)
|
20
|
-
ss = SolrService.register('http://fubar')
|
17
|
+
ss = ActiveFedora::SolrService.register('http://fubar')
|
21
18
|
end
|
22
19
|
it "should merge options" do
|
23
20
|
mconn = mock('conn')
|
24
21
|
Solr::Connection.expects(:new).with('http://localhost:8080/solr', {:autocommit=>:on, :foo=>'bar'}).returns(mconn)
|
25
|
-
ss = SolrService.register(nil, {:foo=>'bar'})
|
22
|
+
ss = ActiveFedora::SolrService.register(nil, {:foo=>'bar'})
|
26
23
|
end
|
27
24
|
it "should clobber options" do
|
28
25
|
mconn = mock('conn')
|
29
26
|
Solr::Connection.expects(:new).with('http://localhost:8080/solr', {:autocommit=>:off, :foo=>:bar}).returns(mconn)
|
30
|
-
ss = SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
|
27
|
+
ss = ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
|
31
28
|
end
|
32
29
|
|
33
30
|
it "should set the threadlocal solr service" do
|
34
31
|
mconn = mock('conn')
|
35
32
|
Solr::Connection.expects(:new).with('http://localhost:8080/solr', {:autocommit=>:off, :foo=>:bar}).returns(mconn)
|
36
|
-
ss = SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
|
33
|
+
ss = ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
|
37
34
|
Thread.current[:solr_service].should == ss
|
38
|
-
SolrService.instance.should == ss
|
35
|
+
ActiveFedora::SolrService.instance.should == ss
|
39
36
|
end
|
40
37
|
it "should fail fast if solr service not initialized" do
|
41
38
|
Thread.current[:solr_service].should be_nil
|
42
|
-
proc{SolrService.instance}.should raise_error(SolrNotInitialized)
|
39
|
+
proc{ActiveFedora::SolrService.instance}.should raise_error(ActiveFedora::SolrNotInitialized)
|
43
40
|
end
|
44
41
|
before do
|
45
42
|
Thread.current[:solr_service]=nil
|
@@ -47,6 +44,12 @@ describe ActiveFedora::SolrService do
|
|
47
44
|
|
48
45
|
describe "#reify_solr_results" do
|
49
46
|
before(:each) do
|
47
|
+
class AudioRecord
|
48
|
+
attr_accessor :pid
|
49
|
+
def initialize (params={})
|
50
|
+
self.pid = params[:pid]
|
51
|
+
end
|
52
|
+
end
|
50
53
|
@sample_solr_hits = [{"id"=>"my:_PID1_", "has_model_s"=>["info:fedora/afmodel:AudioRecord"]},
|
51
54
|
{"id"=>"my:_PID2_", "has_model_s"=>["info:fedora/afmodel:AudioRecord"]},
|
52
55
|
{"id"=>"my:_PID3_", "has_model_s"=>["info:fedora/afmodel:AudioRecord"]}]
|
@@ -58,13 +61,7 @@ describe ActiveFedora::SolrService do
|
|
58
61
|
it "should use Repository.find_model to instantiate objects" do
|
59
62
|
solr_result = mock("solr result", :is_a? => true)
|
60
63
|
solr_result.expects(:hits).returns(@sample_solr_hits)
|
61
|
-
|
62
|
-
mock_repo = mock("repo")
|
63
|
-
mock_repo.expects(:find_model).with("my:_PID1_", "AudioRecord").returns("AR1")
|
64
|
-
mock_repo.expects(:find_model).with("my:_PID2_", "AudioRecord").returns("AR2")
|
65
|
-
mock_repo.expects(:find_model).with("my:_PID3_", "AudioRecord").returns("AR3")
|
66
|
-
Fedora::Repository.expects(:instance).returns(mock_repo).times(3)
|
67
|
-
ActiveFedora::SolrService.reify_solr_results(solr_result).should == ["AR1", "AR2", "AR3"]
|
64
|
+
ActiveFedora::SolrService.reify_solr_results(solr_result).map(&:pid).should == ["my:_PID1_", "my:_PID2_", "my:_PID3_"]
|
68
65
|
end
|
69
66
|
end
|
70
67
|
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 1923832027
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
-
|
10
|
-
|
10
|
+
- pre
|
11
|
+
- 1
|
12
|
+
version: 3.1.0.pre1
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Matt Zumwalt
|
@@ -16,7 +18,7 @@ autorequire:
|
|
16
18
|
bindir: bin
|
17
19
|
cert_chain: []
|
18
20
|
|
19
|
-
date: 2011-10-
|
21
|
+
date: 2011-10-11 00:00:00 -05:00
|
20
22
|
default_executable:
|
21
23
|
dependencies:
|
22
24
|
- !ruby/object:Gem::Dependency
|
@@ -104,12 +106,11 @@ dependencies:
|
|
104
106
|
requirements:
|
105
107
|
- - ">="
|
106
108
|
- !ruby/object:Gem::Version
|
107
|
-
hash:
|
109
|
+
hash: 15
|
108
110
|
segments:
|
109
111
|
- 1
|
110
|
-
-
|
111
|
-
|
112
|
-
version: 1.4.3
|
112
|
+
- 0
|
113
|
+
version: "1.0"
|
113
114
|
type: :runtime
|
114
115
|
version_requirements: *id006
|
115
116
|
- !ruby/object:Gem::Dependency
|
@@ -203,21 +204,23 @@ dependencies:
|
|
203
204
|
type: :runtime
|
204
205
|
version_requirements: *id012
|
205
206
|
- !ruby/object:Gem::Dependency
|
206
|
-
name:
|
207
|
+
name: rubydora
|
207
208
|
prerelease: false
|
208
209
|
requirement: &id013 !ruby/object:Gem::Requirement
|
209
210
|
none: false
|
210
211
|
requirements:
|
211
|
-
- -
|
212
|
+
- - ~>
|
212
213
|
- !ruby/object:Gem::Version
|
213
|
-
hash:
|
214
|
+
hash: 23
|
214
215
|
segments:
|
215
216
|
- 0
|
216
|
-
|
217
|
-
|
217
|
+
- 1
|
218
|
+
- 6
|
219
|
+
version: 0.1.6
|
220
|
+
type: :runtime
|
218
221
|
version_requirements: *id013
|
219
222
|
- !ruby/object:Gem::Dependency
|
220
|
-
name:
|
223
|
+
name: yard
|
221
224
|
prerelease: false
|
222
225
|
requirement: &id014 !ruby/object:Gem::Requirement
|
223
226
|
none: false
|
@@ -231,7 +234,7 @@ dependencies:
|
|
231
234
|
type: :development
|
232
235
|
version_requirements: *id014
|
233
236
|
- !ruby/object:Gem::Dependency
|
234
|
-
name:
|
237
|
+
name: RedCloth
|
235
238
|
prerelease: false
|
236
239
|
requirement: &id015 !ruby/object:Gem::Requirement
|
237
240
|
none: false
|
@@ -245,7 +248,7 @@ dependencies:
|
|
245
248
|
type: :development
|
246
249
|
version_requirements: *id015
|
247
250
|
- !ruby/object:Gem::Dependency
|
248
|
-
name:
|
251
|
+
name: rake
|
249
252
|
prerelease: false
|
250
253
|
requirement: &id016 !ruby/object:Gem::Requirement
|
251
254
|
none: false
|
@@ -259,7 +262,7 @@ dependencies:
|
|
259
262
|
type: :development
|
260
263
|
version_requirements: *id016
|
261
264
|
- !ruby/object:Gem::Dependency
|
262
|
-
name:
|
265
|
+
name: rcov
|
263
266
|
prerelease: false
|
264
267
|
requirement: &id017 !ruby/object:Gem::Requirement
|
265
268
|
none: false
|
@@ -273,23 +276,41 @@ dependencies:
|
|
273
276
|
type: :development
|
274
277
|
version_requirements: *id017
|
275
278
|
- !ruby/object:Gem::Dependency
|
276
|
-
name:
|
279
|
+
name: solrizer-fedora
|
277
280
|
prerelease: false
|
278
281
|
requirement: &id018 !ruby/object:Gem::Requirement
|
279
282
|
none: false
|
280
283
|
requirements:
|
281
284
|
- - ">="
|
282
285
|
- !ruby/object:Gem::Version
|
283
|
-
hash:
|
286
|
+
hash: 23
|
284
287
|
segments:
|
285
|
-
-
|
286
|
-
|
288
|
+
- 1
|
289
|
+
- 1
|
290
|
+
- 2
|
291
|
+
version: 1.1.2
|
287
292
|
type: :development
|
288
293
|
version_requirements: *id018
|
289
294
|
- !ruby/object:Gem::Dependency
|
290
|
-
name:
|
295
|
+
name: jettywrapper
|
291
296
|
prerelease: false
|
292
297
|
requirement: &id019 !ruby/object:Gem::Requirement
|
298
|
+
none: false
|
299
|
+
requirements:
|
300
|
+
- - ">="
|
301
|
+
- !ruby/object:Gem::Version
|
302
|
+
hash: 23
|
303
|
+
segments:
|
304
|
+
- 1
|
305
|
+
- 0
|
306
|
+
- 0
|
307
|
+
version: 1.0.0
|
308
|
+
type: :development
|
309
|
+
version_requirements: *id019
|
310
|
+
- !ruby/object:Gem::Dependency
|
311
|
+
name: rspec
|
312
|
+
prerelease: false
|
313
|
+
requirement: &id020 !ruby/object:Gem::Requirement
|
293
314
|
none: false
|
294
315
|
requirements:
|
295
316
|
- - <
|
@@ -301,11 +322,11 @@ dependencies:
|
|
301
322
|
- 0
|
302
323
|
version: 2.0.0
|
303
324
|
type: :development
|
304
|
-
version_requirements: *
|
325
|
+
version_requirements: *id020
|
305
326
|
- !ruby/object:Gem::Dependency
|
306
327
|
name: mocha
|
307
328
|
prerelease: false
|
308
|
-
requirement: &
|
329
|
+
requirement: &id021 !ruby/object:Gem::Requirement
|
309
330
|
none: false
|
310
331
|
requirements:
|
311
332
|
- - ">="
|
@@ -317,11 +338,11 @@ dependencies:
|
|
317
338
|
- 8
|
318
339
|
version: 0.9.8
|
319
340
|
type: :development
|
320
|
-
version_requirements: *
|
341
|
+
version_requirements: *id021
|
321
342
|
- !ruby/object:Gem::Dependency
|
322
343
|
name: ruby-debug
|
323
344
|
prerelease: false
|
324
|
-
requirement: &
|
345
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
325
346
|
none: false
|
326
347
|
requirements:
|
327
348
|
- - ">="
|
@@ -331,7 +352,7 @@ dependencies:
|
|
331
352
|
- 0
|
332
353
|
version: "0"
|
333
354
|
type: :development
|
334
|
-
version_requirements: *
|
355
|
+
version_requirements: *id022
|
335
356
|
description: ActiveFedora provides for creating and managing objects in the Fedora Repository Architecture.
|
336
357
|
email:
|
337
358
|
- matt.zumwalt@yourmediashelf.com
|
@@ -527,6 +548,7 @@ files:
|
|
527
548
|
- lib/active_fedora/base.rb
|
528
549
|
- lib/active_fedora/content_model.rb
|
529
550
|
- lib/active_fedora/datastream.rb
|
551
|
+
- lib/active_fedora/datastream_hash.rb
|
530
552
|
- lib/active_fedora/delegating.rb
|
531
553
|
- lib/active_fedora/fedora_object.rb
|
532
554
|
- lib/active_fedora/metadata_datastream.rb
|
@@ -541,6 +563,7 @@ files:
|
|
541
563
|
- lib/active_fedora/relationship.rb
|
542
564
|
- lib/active_fedora/relationships_helper.rb
|
543
565
|
- lib/active_fedora/rels_ext_datastream.rb
|
566
|
+
- lib/active_fedora/rubydora_connection.rb
|
544
567
|
- lib/active_fedora/samples.rb
|
545
568
|
- lib/active_fedora/samples/hydra-mods_article_datastream.rb
|
546
569
|
- lib/active_fedora/samples/hydra-rights_metadata_datastream.rb
|
@@ -549,13 +572,6 @@ files:
|
|
549
572
|
- lib/active_fedora/semantic_node.rb
|
550
573
|
- lib/active_fedora/solr_service.rb
|
551
574
|
- lib/active_fedora/version.rb
|
552
|
-
- lib/fedora/base.rb
|
553
|
-
- lib/fedora/connection.rb
|
554
|
-
- lib/fedora/datastream.rb
|
555
|
-
- lib/fedora/fedora_object.rb
|
556
|
-
- lib/fedora/formats.rb
|
557
|
-
- lib/fedora/generic_search.rb
|
558
|
-
- lib/fedora/repository.rb
|
559
575
|
- lib/ruby-fedora.rb
|
560
576
|
- lib/tasks/active_fedora.rake
|
561
577
|
- lib/tasks/active_fedora_dev.rake
|
@@ -590,8 +606,6 @@ files:
|
|
590
606
|
- spec/integration/base_spec.rb
|
591
607
|
- spec/integration/bug_spec.rb
|
592
608
|
- spec/integration/datastream_spec.rb
|
593
|
-
- spec/integration/datastreams_crud_spec.rb
|
594
|
-
- spec/integration/fedora_object_spec.rb
|
595
609
|
- spec/integration/full_featured_model_spec.rb
|
596
610
|
- spec/integration/metadata_datastream_helper_spec.rb
|
597
611
|
- spec/integration/model_spec.rb
|
@@ -599,8 +613,6 @@ files:
|
|
599
613
|
- spec/integration/nested_attribute_spec.rb
|
600
614
|
- spec/integration/nokogiri_datastream_spec.rb
|
601
615
|
- spec/integration/rels_ext_datastream_spec.rb
|
602
|
-
- spec/integration/repository_spec.rb
|
603
|
-
- spec/integration/rf_fedora_object_spec.rb
|
604
616
|
- spec/integration/semantic_node_spec.rb
|
605
617
|
- spec/integration/solr_service_spec.rb
|
606
618
|
- spec/rails3_test_app/.gitignore
|
@@ -654,11 +666,9 @@ files:
|
|
654
666
|
- spec/unit/base_file_management_spec.rb
|
655
667
|
- spec/unit/base_named_datastream_spec.rb
|
656
668
|
- spec/unit/base_spec.rb
|
657
|
-
- spec/unit/connection_spec.rb
|
658
669
|
- spec/unit/content_model_spec.rb
|
659
670
|
- spec/unit/datastream_concurrency_spec.rb
|
660
671
|
- spec/unit/datastream_spec.rb
|
661
|
-
- spec/unit/fedora_object_spec.rb
|
662
672
|
- spec/unit/has_many_collection_spec.rb
|
663
673
|
- spec/unit/inheritance_spec.rb
|
664
674
|
- spec/unit/metadata_datastream_spec.rb
|
@@ -669,8 +679,7 @@ files:
|
|
669
679
|
- spec/unit/relationship_spec.rb
|
670
680
|
- spec/unit/relationships_helper_spec.rb
|
671
681
|
- spec/unit/rels_ext_datastream_spec.rb
|
672
|
-
- spec/unit/
|
673
|
-
- spec/unit/rf_datastream_spec.rb
|
682
|
+
- spec/unit/rubydora_connection_spec.rb
|
674
683
|
- spec/unit/semantic_node_spec.rb
|
675
684
|
- spec/unit/solr_config_options_spec.rb
|
676
685
|
- spec/unit/solr_service_spec.rb
|
@@ -695,12 +704,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
695
704
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
696
705
|
none: false
|
697
706
|
requirements:
|
698
|
-
- - "
|
707
|
+
- - ">"
|
699
708
|
- !ruby/object:Gem::Version
|
700
|
-
hash:
|
709
|
+
hash: 25
|
701
710
|
segments:
|
702
|
-
-
|
703
|
-
|
711
|
+
- 1
|
712
|
+
- 3
|
713
|
+
- 1
|
714
|
+
version: 1.3.1
|
704
715
|
requirements: []
|
705
716
|
|
706
717
|
rubyforge_project: rubyfedora
|
@@ -732,8 +743,6 @@ test_files:
|
|
732
743
|
- spec/integration/base_spec.rb
|
733
744
|
- spec/integration/bug_spec.rb
|
734
745
|
- spec/integration/datastream_spec.rb
|
735
|
-
- spec/integration/datastreams_crud_spec.rb
|
736
|
-
- spec/integration/fedora_object_spec.rb
|
737
746
|
- spec/integration/full_featured_model_spec.rb
|
738
747
|
- spec/integration/metadata_datastream_helper_spec.rb
|
739
748
|
- spec/integration/model_spec.rb
|
@@ -741,8 +750,6 @@ test_files:
|
|
741
750
|
- spec/integration/nested_attribute_spec.rb
|
742
751
|
- spec/integration/nokogiri_datastream_spec.rb
|
743
752
|
- spec/integration/rels_ext_datastream_spec.rb
|
744
|
-
- spec/integration/repository_spec.rb
|
745
|
-
- spec/integration/rf_fedora_object_spec.rb
|
746
753
|
- spec/integration/semantic_node_spec.rb
|
747
754
|
- spec/integration/solr_service_spec.rb
|
748
755
|
- spec/rails3_test_app/.gitignore
|
@@ -796,11 +803,9 @@ test_files:
|
|
796
803
|
- spec/unit/base_file_management_spec.rb
|
797
804
|
- spec/unit/base_named_datastream_spec.rb
|
798
805
|
- spec/unit/base_spec.rb
|
799
|
-
- spec/unit/connection_spec.rb
|
800
806
|
- spec/unit/content_model_spec.rb
|
801
807
|
- spec/unit/datastream_concurrency_spec.rb
|
802
808
|
- spec/unit/datastream_spec.rb
|
803
|
-
- spec/unit/fedora_object_spec.rb
|
804
809
|
- spec/unit/has_many_collection_spec.rb
|
805
810
|
- spec/unit/inheritance_spec.rb
|
806
811
|
- spec/unit/metadata_datastream_spec.rb
|
@@ -811,8 +816,7 @@ test_files:
|
|
811
816
|
- spec/unit/relationship_spec.rb
|
812
817
|
- spec/unit/relationships_helper_spec.rb
|
813
818
|
- spec/unit/rels_ext_datastream_spec.rb
|
814
|
-
- spec/unit/
|
815
|
-
- spec/unit/rf_datastream_spec.rb
|
819
|
+
- spec/unit/rubydora_connection_spec.rb
|
816
820
|
- spec/unit/semantic_node_spec.rb
|
817
821
|
- spec/unit/solr_config_options_spec.rb
|
818
822
|
- spec/unit/solr_service_spec.rb
|