active-fedora 9.0.0.beta2 → 9.0.0.beta3
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.
- checksums.yaml +4 -4
- data/config/jetty.yml +1 -1
- data/lib/active_fedora.rb +11 -3
- data/lib/active_fedora/associations/association_scope.rb +2 -2
- data/lib/active_fedora/associations/belongs_to_association.rb +2 -2
- data/lib/active_fedora/associations/collection_association.rb +13 -13
- data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +2 -2
- data/lib/active_fedora/associations/rdf.rb +2 -2
- data/lib/active_fedora/cleaner.rb +2 -6
- data/lib/active_fedora/fedora.rb +18 -0
- data/lib/active_fedora/fedora_attributes.rb +4 -4
- data/lib/active_fedora/file.rb +7 -0
- data/lib/active_fedora/fixity_service.rb +9 -1
- data/lib/active_fedora/indexing_service.rb +2 -7
- data/lib/active_fedora/loadable_from_json.rb +4 -0
- data/lib/active_fedora/om_datastream.rb +0 -4
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +1 -1
- data/lib/active_fedora/query_result_builder.rb +56 -0
- data/lib/active_fedora/querying.rb +1 -1
- data/lib/active_fedora/rdf.rb +2 -1
- data/lib/active_fedora/rdf/fcrepo.rb +323 -9
- data/lib/active_fedora/rdf/fcrepo4.rb +7 -0
- data/lib/active_fedora/rdf/indexing.rb +1 -1
- data/lib/active_fedora/rdf/project_hydra.rb +12 -0
- data/lib/active_fedora/reflection.rb +4 -1
- data/lib/active_fedora/relation/finder_methods.rb +4 -4
- data/lib/active_fedora/simple_datastream.rb +11 -12
- data/lib/active_fedora/solr_instance_loader.rb +1 -1
- data/lib/active_fedora/solr_query_builder.rb +57 -0
- data/lib/active_fedora/solr_service.rb +22 -48
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora/versionable.rb +12 -13
- data/spec/integration/associations_spec.rb +6 -6
- data/spec/integration/attributes_spec.rb +22 -6
- data/spec/integration/base_spec.rb +2 -2
- data/spec/integration/collection_association_spec.rb +9 -0
- data/spec/integration/file_spec.rb +30 -0
- data/spec/integration/full_featured_model_spec.rb +1 -1
- data/spec/integration/ntriples_datastream_spec.rb +5 -5
- data/spec/integration/om_datastream_spec.rb +1 -1
- data/spec/integration/{solr_service_spec.rb → query_result_builder_spec.rb} +5 -7
- data/spec/integration/relation_delegation_spec.rb +3 -3
- data/spec/integration/scoped_query_spec.rb +11 -11
- data/spec/integration/solr_instance_loader_spec.rb +8 -0
- data/spec/integration/versionable_spec.rb +32 -14
- data/spec/unit/base_spec.rb +3 -3
- data/spec/unit/indexing_service_spec.rb +2 -2
- data/spec/unit/ntriples_datastream_spec.rb +16 -16
- data/spec/unit/om_datastream_spec.rb +7 -7
- data/spec/unit/qualified_dublin_core_datastream_spec.rb +1 -1
- data/spec/unit/query_result_builder_spec.rb +39 -0
- data/spec/unit/query_spec.rb +2 -2
- data/spec/unit/rdf_vocab_spec.rb +30 -0
- data/spec/unit/simple_datastream_spec.rb +2 -2
- data/spec/unit/solr_config_options_spec.rb +1 -1
- data/spec/unit/solr_query_builder_spec.rb +20 -0
- data/spec/unit/solr_service_spec.rb +2 -53
- metadata +11 -4
@@ -21,7 +21,7 @@ describe "A base object with metadata" do
|
|
21
21
|
obj = ActiveFedora::Base.find(@obj.id)
|
22
22
|
expect(obj.foo).to_not be_new_record
|
23
23
|
expect(obj.foo.person).to eq ['bob']
|
24
|
-
person_field = ActiveFedora::
|
24
|
+
person_field = ActiveFedora::SolrQueryBuilder.solr_name('foo__person', type: :string)
|
25
25
|
solr_result = ActiveFedora::SolrService.query("{!raw f=id}#{@obj.id}", :fl=>"id #{person_field}").first
|
26
26
|
expect(solr_result).to eq("id"=>@obj.id, person_field =>['bob'])
|
27
27
|
end
|
@@ -40,7 +40,7 @@ describe "A base object with metadata" do
|
|
40
40
|
end
|
41
41
|
it "should save the datastream." do
|
42
42
|
expect(MockAFBaseRelationship.find(@release.id).foo.person).to eq ['frank']
|
43
|
-
person_field = ActiveFedora::
|
43
|
+
person_field = ActiveFedora::SolrQueryBuilder.solr_name('foo__person', type: :string)
|
44
44
|
expect(ActiveFedora::SolrService.query("id:\"#{@release.id}\"", :fl=>"id #{person_field}").first).to eq("id"=>@release.id, person_field =>['frank'])
|
45
45
|
end
|
46
46
|
end
|
@@ -55,4 +55,13 @@ describe ActiveFedora::Base do
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
# TODO: Bug described in issue #609
|
60
|
+
describe "#select" do
|
61
|
+
it "should choose a subset of objects in the relationship" do
|
62
|
+
pending "method has private visibility"
|
63
|
+
expect(library.books.select([:id])).to include(book1.id)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
58
67
|
end
|
@@ -12,6 +12,36 @@ describe ActiveFedora::File do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
context "stand alone operation with UploadedFile" do
|
16
|
+
before(:all) do
|
17
|
+
module ActionDispatch
|
18
|
+
module Http
|
19
|
+
class UploadedFile
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
@content = StringIO.new("hello world")
|
23
|
+
end
|
24
|
+
|
25
|
+
def read(a, b)
|
26
|
+
return @content.read(a, b)
|
27
|
+
end
|
28
|
+
|
29
|
+
def size
|
30
|
+
@content.length
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should save" do
|
39
|
+
subject.content = ActionDispatch::Http::UploadedFile.new
|
40
|
+
subject.save
|
41
|
+
expect(subject).not_to be_new_record
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
15
45
|
context "when autocreate is true" do
|
16
46
|
before(:all) do
|
17
47
|
class MockAFBase < ActiveFedora::Base
|
@@ -142,7 +142,7 @@ describe ActiveFedora::Base do
|
|
142
142
|
@properties_sample_values.each_pair do |field, value|
|
143
143
|
next if field == :hard_copy_availability #FIXME HYDRA-824
|
144
144
|
next if field == :location #FIXME HYDRA-825
|
145
|
-
expect((@solr_result[ActiveFedora::
|
145
|
+
expect((@solr_result[ActiveFedora::SolrQueryBuilder.solr_name(field, type: :string)] || @solr_result[ActiveFedora::SolrQueryBuilder.solr_name(field, type: :date)])).to eq [::Solrizer::Extractor.format_node_value(value)]
|
146
146
|
end
|
147
147
|
|
148
148
|
@dublin_core_sample_values.each_pair do |field, value|
|
@@ -78,21 +78,21 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
78
78
|
subject.date_uploaded = [Date.parse('2012-11-02')]
|
79
79
|
expect(subject.date_uploaded.first).to be_kind_of Date
|
80
80
|
solr_document = subject.to_solr
|
81
|
-
expect(solr_document[ActiveFedora::
|
81
|
+
expect(solr_document[ActiveFedora::SolrQueryBuilder.solr_name('rdf__date_uploaded', type: :date)]).to eq ['2012-11-02T00:00:00Z']
|
82
82
|
end
|
83
83
|
it "should handle integers" do
|
84
|
-
subject.filesize = 12345
|
84
|
+
subject.filesize = 12345
|
85
85
|
expect(subject.filesize).to be_kind_of Fixnum
|
86
86
|
solr_document = subject.to_solr
|
87
|
-
expect(solr_document[ActiveFedora::
|
87
|
+
expect(solr_document[ActiveFedora::SolrQueryBuilder.solr_name('rdf__filesize', :stored_sortable, type: :integer)]).to eq '12345'
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should produce a solr document" do
|
92
92
|
@subject = RdfTest.new(title: "War and Peace")
|
93
93
|
solr_document = @subject.to_solr
|
94
|
-
expect(solr_document[ActiveFedora::
|
95
|
-
expect(solr_document[ActiveFedora::
|
94
|
+
expect(solr_document[ActiveFedora::SolrQueryBuilder.solr_name('rdf__title', :facetable)]).to eq ["War and Peace"]
|
95
|
+
expect(solr_document[ActiveFedora::SolrQueryBuilder.solr_name('rdf__title', type: :string)]).to eq ["War and Peace"]
|
96
96
|
end
|
97
97
|
|
98
98
|
it "should set and recall values" do
|
@@ -73,7 +73,7 @@ describe ActiveFedora::OmDatastream do
|
|
73
73
|
obj.reload
|
74
74
|
end
|
75
75
|
it "should solrize terms with :type=>'date' to *_dt solr terms" do
|
76
|
-
expect(obj.to_solr[ActiveFedora::
|
76
|
+
expect(obj.to_solr[ActiveFedora::SolrQueryBuilder.solr_name('desc_metadata__journal_issue_publication_date', type: :date)]).to eq ['2012-11-02T00:00:00Z']
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe ActiveFedora::
|
3
|
+
describe ActiveFedora::QueryResultBuilder do
|
4
4
|
describe "#reify_solr_results" do
|
5
5
|
before(:each) do
|
6
6
|
class FooObject < ActiveFedora::Base
|
7
7
|
def self.id_namespace
|
8
8
|
"foo"
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
has_metadata :name => "descMetadata", :type => ActiveFedora::QualifiedDublinCoreDatastream
|
12
12
|
end
|
13
13
|
@test_object = ActiveFedora::Base.new
|
@@ -27,24 +27,22 @@ describe ActiveFedora::SolrService do
|
|
27
27
|
@foo_content = @foo_object.attached_files['descMetadata'].content
|
28
28
|
end
|
29
29
|
after(:each) do
|
30
|
-
@test_object.delete
|
31
|
-
@foo_object.delete
|
32
30
|
Object.send(:remove_const, :FooObject)
|
33
31
|
end
|
34
32
|
it "should return an array of objects that are of the class stored in active_fedora_model_s" do
|
35
33
|
query = "id\:#{RSolr.escape(@test_object.id)} OR id\:#{RSolr.escape(@foo_object.id)}"
|
36
34
|
solr_result = ActiveFedora::SolrService.query(query)
|
37
|
-
result = ActiveFedora::
|
35
|
+
result = ActiveFedora::QueryResultBuilder.reify_solr_results(solr_result)
|
38
36
|
expect(result.length).to eq 2
|
39
37
|
result.each do |r|
|
40
38
|
expect((r.class == ActiveFedora::Base || r.class == FooObject)).to be true
|
41
39
|
end
|
42
40
|
end
|
43
|
-
|
41
|
+
|
44
42
|
it 'should #reify a lightweight object as a new instance' do
|
45
43
|
query = "id\:#{RSolr.escape(@foo_object.id)}"
|
46
44
|
solr_result = ActiveFedora::SolrService.query(query)
|
47
|
-
result = ActiveFedora::
|
45
|
+
result = ActiveFedora::QueryResultBuilder.reify_solr_results(solr_result,{:load_from_solr=>true})
|
48
46
|
expect(result.first).to be_instance_of FooObject
|
49
47
|
end
|
50
48
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ActiveFedora::Model do
|
4
|
-
|
5
|
-
before(:all) do
|
4
|
+
|
5
|
+
before(:all) do
|
6
6
|
module ModelIntegrationSpec
|
7
7
|
class Basic < ActiveFedora::Base
|
8
8
|
has_metadata :name => "properties", :type => ActiveFedora::SimpleDatastream do |m|
|
@@ -15,7 +15,7 @@ describe ActiveFedora::Model do
|
|
15
15
|
|
16
16
|
def to_solr(doc = {})
|
17
17
|
doc = super
|
18
|
-
doc[ActiveFedora::
|
18
|
+
doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable)] = doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)]
|
19
19
|
doc
|
20
20
|
end
|
21
21
|
end
|
@@ -15,7 +15,7 @@ describe "scoped queries" do
|
|
15
15
|
|
16
16
|
def to_solr(doc = {})
|
17
17
|
doc = super
|
18
|
-
doc[ActiveFedora::
|
18
|
+
doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable)] = doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)]
|
19
19
|
doc
|
20
20
|
end
|
21
21
|
|
@@ -66,12 +66,12 @@ describe "scoped queries" do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should query" do
|
69
|
-
field = ActiveFedora::
|
69
|
+
field = ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)
|
70
70
|
expect(ModelIntegrationSpec::Basic.where(field => 'Beta')).to eq [test_instance1]
|
71
71
|
expect(ModelIntegrationSpec::Basic.where('foo' => 'Beta')).to eq [test_instance1]
|
72
72
|
end
|
73
73
|
it "should order" do
|
74
|
-
expect(ModelIntegrationSpec::Basic.order(ActiveFedora::
|
74
|
+
expect(ModelIntegrationSpec::Basic.order(ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable) + ' asc')).to eq [test_instance2, test_instance1, test_instance3]
|
75
75
|
end
|
76
76
|
it "should limit" do
|
77
77
|
expect(ModelIntegrationSpec::Basic.limit(1)).to eq [test_instance1]
|
@@ -81,7 +81,7 @@ describe "scoped queries" do
|
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should chain queries" do
|
84
|
-
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::
|
84
|
+
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string) => 'Peanuts').order(ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable) + ' asc').limit(1)).to eq [test_instance2]
|
85
85
|
end
|
86
86
|
|
87
87
|
it "should wrap string conditions with parentheses" do
|
@@ -89,26 +89,26 @@ describe "scoped queries" do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should chain where queries" do
|
92
|
-
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::
|
92
|
+
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string) => 'Peanuts').where("#{ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)}:bar").where_values).to eq ["#{ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string)}:Peanuts", "(#{ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)}:bar)"]
|
93
93
|
end
|
94
94
|
|
95
95
|
it "should chain count" do
|
96
|
-
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::
|
96
|
+
expect(ModelIntegrationSpec::Basic.where(ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string) => 'Peanuts').count).to eq 2
|
97
97
|
end
|
98
98
|
|
99
99
|
it "calling first should not affect the relation's ability to get all results later" do
|
100
|
-
relation = ModelIntegrationSpec::Basic.where(ActiveFedora::
|
100
|
+
relation = ModelIntegrationSpec::Basic.where(ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string) => 'Peanuts')
|
101
101
|
expect {relation.first}.not_to change {relation.to_a.size}
|
102
102
|
end
|
103
103
|
|
104
104
|
it "calling where should not affect the relation's ability to get all results later" do
|
105
|
-
relation = ModelIntegrationSpec::Basic.where(ActiveFedora::
|
106
|
-
expect {relation.where(ActiveFedora::
|
105
|
+
relation = ModelIntegrationSpec::Basic.where(ActiveFedora::SolrQueryBuilder.solr_name('bar', type: :string) => 'Peanuts')
|
106
|
+
expect {relation.where(ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string) => 'bar')}.not_to change {relation.to_a.size}
|
107
107
|
end
|
108
108
|
|
109
109
|
it "calling order should not affect the original order of the relation later" do
|
110
|
-
relation = ModelIntegrationSpec::Basic.order(ActiveFedora::
|
111
|
-
expect {relation.order(ActiveFedora::
|
110
|
+
relation = ModelIntegrationSpec::Basic.order(ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable) + ' asc')
|
111
|
+
expect {relation.order(ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable) + ' desc')}.not_to change {relation.to_a}
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
@@ -66,6 +66,14 @@ describe ActiveFedora::SolrInstanceLoader do
|
|
66
66
|
expect(object.foo).to eq ['baz']
|
67
67
|
end
|
68
68
|
end
|
69
|
+
|
70
|
+
context "with children" do
|
71
|
+
let(:loader) { ActiveFedora::SolrInstanceLoader.new(Foo, obj.id) }
|
72
|
+
|
73
|
+
it "should have stub implementation of the children" do
|
74
|
+
expect(subject.descMetadata).to be_kind_of ActiveFedora::LoadableFromJson::SolrBackedMetadataFile
|
75
|
+
end
|
76
|
+
end
|
69
77
|
end
|
70
78
|
|
71
79
|
context "with a solr doc" do
|
@@ -29,7 +29,8 @@ describe "a versionable class" do
|
|
29
29
|
|
30
30
|
it "should have one version" do
|
31
31
|
expect(subject.versions.size).to eq 1
|
32
|
-
expect(subject.versions.first).to be_kind_of
|
32
|
+
expect(subject.versions.first).to be_kind_of String
|
33
|
+
expect(subject.versions.first).to end_with "version1"
|
33
34
|
end
|
34
35
|
|
35
36
|
context "two times" do
|
@@ -41,8 +42,8 @@ describe "a versionable class" do
|
|
41
42
|
|
42
43
|
it "should have two versions" do
|
43
44
|
expect(subject.versions.size).to eq 2
|
44
|
-
subject.versions.
|
45
|
-
expect(
|
45
|
+
subject.versions.each_index do |index|
|
46
|
+
expect(subject.versions[index]).to end_with "version"+(index+1).to_s
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
@@ -126,7 +127,7 @@ describe "a versionable rdf datastream" do
|
|
126
127
|
end
|
127
128
|
|
128
129
|
it "should have one version" do
|
129
|
-
expect(subject.versions.first).to
|
130
|
+
expect(subject.versions.first).to end_with "version1"
|
130
131
|
end
|
131
132
|
|
132
133
|
it "should have a title" do
|
@@ -146,8 +147,8 @@ describe "a versionable rdf datastream" do
|
|
146
147
|
|
147
148
|
it "should have two versions" do
|
148
149
|
expect(subject.versions.size).to eq 2
|
149
|
-
subject.versions.
|
150
|
-
expect(
|
150
|
+
subject.versions.each_index do |index|
|
151
|
+
expect(subject.versions[index]).to end_with "version"+(index+1).to_s
|
151
152
|
end
|
152
153
|
end
|
153
154
|
|
@@ -255,8 +256,7 @@ describe "a versionable OM datastream" do
|
|
255
256
|
end
|
256
257
|
|
257
258
|
it "should have one version" do
|
258
|
-
expect(subject.versions.
|
259
|
-
expect(subject.versions.first).to be_kind_of ::RDF::Literal
|
259
|
+
expect(subject.versions.first).to end_with "version1"
|
260
260
|
end
|
261
261
|
|
262
262
|
it "should have a title" do
|
@@ -277,8 +277,8 @@ describe "a versionable OM datastream" do
|
|
277
277
|
|
278
278
|
it "should have two unique versions" do
|
279
279
|
expect(subject.versions.size).to eq 2
|
280
|
-
subject.versions.
|
281
|
-
expect(
|
280
|
+
subject.versions.each_index do |index|
|
281
|
+
expect(subject.versions[index]).to end_with "version"+(index+1).to_s
|
282
282
|
end
|
283
283
|
end
|
284
284
|
|
@@ -384,7 +384,7 @@ describe "a versionable binary datastream" do
|
|
384
384
|
expect(subject.versions.size).to eq 1
|
385
385
|
expect(subject.original_name).to eql(first_name)
|
386
386
|
expect(subject.content.size).to eq first_file.size
|
387
|
-
expect(subject.versions.first).to
|
387
|
+
expect(subject.versions.first).to end_with "version1"
|
388
388
|
end
|
389
389
|
|
390
390
|
context "two times" do
|
@@ -401,8 +401,24 @@ describe "a versionable binary datastream" do
|
|
401
401
|
expect(subject.versions.size).to eq 2
|
402
402
|
expect(subject.original_name).to eql(second_name)
|
403
403
|
expect(subject.content.size).to eq second_file.size
|
404
|
-
subject.versions.
|
405
|
-
expect(
|
404
|
+
subject.versions.each_index do |index|
|
405
|
+
expect(subject.versions[index]).to end_with "version"+(index+1).to_s
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
context "with fixity checking" do
|
410
|
+
let(:results) do
|
411
|
+
results = Array.new
|
412
|
+
subject.versions.each do |uri|
|
413
|
+
results << ActiveFedora::FixityService.new(uri).check
|
414
|
+
end
|
415
|
+
return results
|
416
|
+
end
|
417
|
+
|
418
|
+
it "should report on the fixity of each version" do
|
419
|
+
results.each do |result|
|
420
|
+
expect(result).to be true
|
421
|
+
end
|
406
422
|
end
|
407
423
|
end
|
408
424
|
|
@@ -436,7 +452,9 @@ describe "a versionable binary datastream" do
|
|
436
452
|
expect(subject.versions.size).to eq 3
|
437
453
|
expect(subject.original_name).to eql(first_name)
|
438
454
|
expect(subject.content.size).to eq first_file.size
|
439
|
-
|
455
|
+
subject.versions.each_index do |index|
|
456
|
+
expect(subject.versions[index]).to end_with "version"+(index+1).to_s
|
457
|
+
end
|
440
458
|
end
|
441
459
|
|
442
460
|
end
|
data/spec/unit/base_spec.rb
CHANGED
@@ -264,15 +264,15 @@ describe ActiveFedora::Base do
|
|
264
264
|
expect(@test_object).to receive(:modified_date).and_return(DateTime.parse("2012-03-07T03:12:02Z")).twice
|
265
265
|
allow(@test_object).to receive(:id).and_return('changeme:123')
|
266
266
|
solr_doc = @test_object.to_solr
|
267
|
-
expect(solr_doc[ActiveFedora::
|
268
|
-
expect(solr_doc[ActiveFedora::
|
267
|
+
expect(solr_doc[ActiveFedora::SolrQueryBuilder.solr_name("system_create", :stored_sortable, type: :date)]).to eql("2012-03-04T03:12:02Z")
|
268
|
+
expect(solr_doc[ActiveFedora::SolrQueryBuilder.solr_name("system_modified", :stored_sortable, type: :date)]).to eql("2012-03-07T03:12:02Z")
|
269
269
|
expect(solr_doc[:id]).to eql("changeme:123")
|
270
270
|
end
|
271
271
|
|
272
272
|
it "should add self.class as the :active_fedora_model" do
|
273
273
|
@test_history = FooHistory.new()
|
274
274
|
solr_doc = @test_history.to_solr
|
275
|
-
expect(solr_doc[ActiveFedora::
|
275
|
+
expect(solr_doc[ActiveFedora::SolrQueryBuilder.solr_name("active_fedora_model", :stored_sortable)]).to eql("FooHistory")
|
276
276
|
end
|
277
277
|
|
278
278
|
it "should call .to_solr on all datastreams, passing the resulting document to solr" do
|
@@ -15,8 +15,8 @@ describe ActiveFedora::IndexingService do
|
|
15
15
|
expect(object).to receive(:[]).with('person_id').and_return('info:fedora/demo:10')
|
16
16
|
expect(object).to receive(:[]).with('location_id').and_return('info:fedora/demo:11')
|
17
17
|
expect(object.class).to receive(:reflections).and_return(reflections)
|
18
|
-
expect(subject[ActiveFedora::
|
19
|
-
expect(subject[ActiveFedora::
|
18
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("http://fedora.info/definitions/v4/rels-ext#isMemberOf", :symbol)]).to eq "info:fedora/demo:10"
|
19
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("http://fedora.info/definitions/v4/rels-ext#isPartOf", :symbol)]).to eq "info:fedora/demo:11"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -218,26 +218,26 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
218
218
|
describe ".to_solr()" do
|
219
219
|
subject { @obj.to_solr({}, name: 'solrRdf') }
|
220
220
|
it "should return the right fields" do
|
221
|
-
expect(subject.keys).to include(ActiveFedora::
|
222
|
-
ActiveFedora::
|
223
|
-
ActiveFedora::
|
224
|
-
ActiveFedora::
|
225
|
-
ActiveFedora::
|
226
|
-
ActiveFedora::
|
227
|
-
ActiveFedora::
|
228
|
-
ActiveFedora::
|
229
|
-
ActiveFedora::
|
230
|
-
ActiveFedora::
|
221
|
+
expect(subject.keys).to include(ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__related_url", type: :string),
|
222
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", type: :string),
|
223
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", :sortable),
|
224
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", :facetable),
|
225
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__created", :sortable, type: :date),
|
226
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__created", :displayable),
|
227
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__title", type: :string),
|
228
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__title", :sortable),
|
229
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__based_near", type: :string),
|
230
|
+
ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__based_near", :facetable))
|
231
231
|
|
232
232
|
end
|
233
233
|
|
234
234
|
it "should return the right values" do
|
235
|
-
expect(subject[ActiveFedora::
|
236
|
-
expect(subject[ActiveFedora::
|
237
|
-
expect(subject[ActiveFedora::
|
238
|
-
expect(subject[ActiveFedora::
|
239
|
-
expect(subject[ActiveFedora::
|
240
|
-
expect(subject[ActiveFedora::
|
235
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__related_url", type: :string)]).to eq ["http://example.org/blogtastic/"]
|
236
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__based_near", type: :string)]).to eq ["Tacoma, WA","Renton, WA"]
|
237
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__based_near", :facetable)]).to eq ["Tacoma, WA","Renton, WA"]
|
238
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", type: :string)]).to eq ["Bob's Blogtastic Publishing"]
|
239
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", :sortable)]).to eq "Bob's Blogtastic Publishing"
|
240
|
+
expect(subject[ActiveFedora::SolrQueryBuilder.solr_name("solr_rdf__publisher", :facetable)]).to eq ["Bob's Blogtastic Publishing"]
|
241
241
|
end
|
242
242
|
end
|
243
243
|
end
|
@@ -262,16 +262,16 @@ describe ActiveFedora::OmDatastream do
|
|
262
262
|
|
263
263
|
|
264
264
|
describe '.has_solr_name?' do
|
265
|
-
let(:name0_role0) { ActiveFedora::
|
266
|
-
let(:name1_role1) { ActiveFedora::
|
265
|
+
let(:name0_role0) { ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_0_role_0_roleTerm", type: :string) }
|
266
|
+
let(:name1_role1) { ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_1_role_1_roleTerm", type: :string) }
|
267
267
|
let(:solr_doc) do
|
268
268
|
{"id"=>"mods_article1",
|
269
|
-
ActiveFedora::
|
270
|
-
ActiveFedora::
|
271
|
-
ActiveFedora::
|
269
|
+
ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_role_roleTerm", type: :string) =>["creator","submitter","teacher"],
|
270
|
+
ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_0_role", type: :string)=>"\r\ncreator\r\nsubmitter\r\n",
|
271
|
+
ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_1_role", type: :string)=>"\r\n teacher \r\n",
|
272
272
|
name0_role0 =>"creator",
|
273
|
-
ActiveFedora::
|
274
|
-
ActiveFedora::
|
273
|
+
ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_0_role_1_roleTerm", type: :string)=>"submitter",
|
274
|
+
ActiveFedora::SolrQueryBuilder.solr_name("desc_metadata__name_1_role_0_roleTerm", type: :string)=>["teacher"]}
|
275
275
|
end
|
276
276
|
|
277
277
|
it "should return true if the given key exists in the solr document passed in" do
|