active-fedora 3.0.7 → 3.1.0.pre1
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.
- 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
|