ddr-models 1.16.2 → 1.17.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.
- checksums.yaml +4 -4
- data/lib/ddr/contacts.rb +25 -0
- data/lib/ddr/datastreams/administrative_metadata_datastream.rb +4 -0
- data/lib/ddr/index_fields.rb +2 -0
- data/lib/ddr/models.rb +1 -0
- data/lib/ddr/models/has_admin_metadata.rb +6 -0
- data/lib/ddr/models/indexing.rb +13 -11
- data/lib/ddr/models/solr_document.rb +18 -0
- data/lib/ddr/models/version.rb +1 -1
- data/lib/ddr/vocab.rb +2 -0
- data/lib/ddr/vocab/contact.rb +11 -0
- data/lib/ddr/vocab/display.rb +11 -0
- data/spec/contacts/contacts_spec.rb +26 -0
- data/spec/dummy/log/development.log +1698 -0
- data/spec/dummy/log/test.log +26260 -0
- data/spec/models/has_admin_metadata_spec.rb +20 -1
- data/spec/models/solr_document_spec.rb +39 -1
- metadata +7 -2
@@ -3,7 +3,7 @@ require 'support/ezid_mock_identifier'
|
|
3
3
|
|
4
4
|
module Ddr
|
5
5
|
module Models
|
6
|
-
RSpec.describe HasAdminMetadata, type: :model do
|
6
|
+
RSpec.describe HasAdminMetadata, type: :model, contacts: true do
|
7
7
|
|
8
8
|
describe "local id" do
|
9
9
|
subject { FactoryGirl.build(:item) }
|
@@ -121,9 +121,11 @@ module Ddr
|
|
121
121
|
describe "indexing" do
|
122
122
|
let(:permanent_id) { "ark:/99999/fk4zzz" }
|
123
123
|
let(:permanent_url) { "http://id.library.duke.edu/ark:/99999/fk4zzz" }
|
124
|
+
let(:display_format) { "Image" }
|
124
125
|
before do
|
125
126
|
subject.permanent_id = permanent_id
|
126
127
|
subject.permanent_url = permanent_url
|
128
|
+
subject.display_format = display_format
|
127
129
|
end
|
128
130
|
it "should index the permanent id value" do
|
129
131
|
expect(subject.to_solr[Ddr::IndexFields::PERMANENT_ID]).to eq(permanent_id)
|
@@ -131,6 +133,9 @@ module Ddr
|
|
131
133
|
it "should index the permanent url" do
|
132
134
|
expect(subject.to_solr[Ddr::IndexFields::PERMANENT_URL]).to eq(permanent_url)
|
133
135
|
end
|
136
|
+
it "should index the display format" do
|
137
|
+
expect(subject.to_solr[Ddr::IndexFields::DISPLAY_FORMAT]).to eq(display_format)
|
138
|
+
end
|
134
139
|
end
|
135
140
|
|
136
141
|
end
|
@@ -213,6 +218,20 @@ module Ddr
|
|
213
218
|
end
|
214
219
|
end
|
215
220
|
|
221
|
+
describe "contacts" do
|
222
|
+
before do
|
223
|
+
allow(YAML).to receive(:load_file) { { 'a' => { 'name' => 'Contact A', 'short_name' => 'A' },
|
224
|
+
'b' => { 'name' => 'Contact B', 'short_name' => 'B' } } }
|
225
|
+
Ddr::Contacts.load_contacts
|
226
|
+
end
|
227
|
+
describe "#research_help" do
|
228
|
+
before { subject.research_help_contact = 'b' }
|
229
|
+
it "should return the appropriate contact" do
|
230
|
+
expect(subject.research_help.slug).to eq('b')
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
216
235
|
end
|
217
236
|
end
|
218
237
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
RSpec.describe SolrDocument, type: :model do
|
3
|
+
RSpec.describe SolrDocument, type: :model, contacts: true do
|
4
4
|
|
5
5
|
describe "#inherited_license" do
|
6
6
|
let(:apo_solr_response) { [{"system_create_dtsi"=>"2015-03-10T15:20:16Z", "system_modified_dtsi"=>"2015-03-10T15:21:50Z", "object_state_ssi"=>"A", "active_fedora_model_ssi"=>"Collection", "id"=>"changeme:224", "object_profile_ssm"=>["{\"datastreams\":{\"DC\":{\"dsLabel\":\"Dublin Core Record for this object\",\"dsVersionID\":\"DC1.0\",\"dsCreateDate\":\"2015-03-10T15:20:16Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":\"http://www.openarchives.org/OAI/2.0/oai_dc/\",\"dsControlGroup\":\"X\",\"dsSize\":341,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+DC+DC1.0\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"0555f020bbfc94c07745f530af4195fed9cf4e4ba539a30727f2d2d5743627be\"},\"RELS-EXT\":{\"dsLabel\":\"Fedora Object-to-Object Relationship Metadata\",\"dsVersionID\":\"RELS-EXT.1\",\"dsCreateDate\":\"2015-03-10T15:20:18Z\",\"dsState\":\"A\",\"dsMIME\":\"application/rdf+xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"X\",\"dsSize\":417,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+RELS-EXT+RELS-EXT.1\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"6a7c2621534cd1cb28d9cfa7e45bb128a1f3c05028e29def4dea479be9596d7d\"},\"descMetadata\":{\"dsLabel\":\"Descriptive Metadata for this object\",\"dsVersionID\":\"descMetadata.1\",\"dsCreateDate\":\"2015-03-10T15:20:18Z\",\"dsState\":\"A\",\"dsMIME\":\"application/n-triples\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":80,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+descMetadata+descMetadata.1\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"bbba526a1ca47f19dfe110f25a0a721bda481dc414f7ec89e3f02c5562eaa9a2\"},\"rightsMetadata\":{\"dsLabel\":null,\"dsVersionID\":\"rightsMetadata.0\",\"dsCreateDate\":\"2015-03-10T15:20:17Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":550,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+rightsMetadata+rightsMetadata.0\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"210d5a228bd96e22b20723de1dd20ea8d897252063713d0815369c49045c5c05\"},\"properties\":{},\"thumbnail\":{},\"adminMetadata\":{},\"defaultRights\":{\"dsLabel\":null,\"dsVersionID\":\"defaultRights.0\",\"dsCreateDate\":\"2015-03-10T15:21:50Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":634,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+defaultRights+defaultRights.0\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"1a2d9e665228d5e3cbf5f8ddd0d641172c20f98b4e05d62f741b7b9010696ad0\"}},\"objLabel\":null,\"objOwnerId\":\"fedoraAdmin\",\"objModels\":[\"info:fedora/afmodel:Collection\",\"info:fedora/fedora-system:FedoraObject-3.0\"],\"objCreateDate\":\"2015-03-10T15:20:16Z\",\"objLastModDate\":\"2015-03-10T15:20:18Z\",\"objDissIndexViewURL\":\"http://localhost:8983/fedora/objects/changeme%3A224/methods/fedora-system%3A3/viewMethodIndex\",\"objItemIndexViewURL\":\"http://localhost:8983/fedora/objects/changeme%3A224/methods/fedora-system%3A3/viewItemIndex\",\"objState\":\"A\"}"], "title_tesim"=>["Test Collection"], "edit_access_person_ssim"=>["coblej@duke.edu"], "inheritable_read_access_group_ssim"=>["public"], "is_governed_by_ssim"=>["info:fedora/changeme:224"], "has_model_ssim"=>["info:fedora/afmodel:Collection"], "title_ssi"=>"Test Collection", "internal_uri_ssi"=>"info:fedora/changeme:224", "default_license_description_tesim"=>["Default License Description"], "default_license_title_tesim"=>["Default License Title"], "default_license_url_tesim"=>["http://test.license.org/"], "_version_"=>1495270331036729344, "timestamp"=>"2015-03-10T15:21:50.793Z"}] }
|
@@ -85,4 +85,42 @@ RSpec.describe SolrDocument, type: :model do
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
describe "#display_format" do
|
89
|
+
before { subject[Ddr::IndexFields::DISPLAY_FORMAT] = "Image" }
|
90
|
+
its(:display_format) { should eq("Image") }
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "contacts" do
|
94
|
+
before do
|
95
|
+
allow(YAML).to receive(:load_file) { { 'a' => { 'name' => 'Contact A', 'short_name' => 'A' },
|
96
|
+
'b' => { 'name' => 'Contact B', 'short_name' => 'B' } } }
|
97
|
+
Ddr::Contacts.load_contacts
|
98
|
+
end
|
99
|
+
describe "#research_help" do
|
100
|
+
context "object has research help contact" do
|
101
|
+
before { subject[Ddr::IndexFields::RESEARCH_HELP_CONTACT] = 'b' }
|
102
|
+
it "should return the object's research help contact" do
|
103
|
+
expect(subject.research_help.slug).to eq('b')
|
104
|
+
end
|
105
|
+
end
|
106
|
+
context "object does not have research help contact" do
|
107
|
+
context "collection has research help contact" do
|
108
|
+
let(:apo_solr_response) { [{"system_create_dtsi"=>"2015-03-10T15:20:16Z", "system_modified_dtsi"=>"2015-03-10T15:21:50Z", "object_state_ssi"=>"A", "active_fedora_model_ssi"=>"Collection", "id"=>"changeme:224", "object_profile_ssm"=>["{\"datastreams\":{\"DC\":{\"dsLabel\":\"Dublin Core Record for this object\",\"dsVersionID\":\"DC1.0\",\"dsCreateDate\":\"2015-03-10T15:20:16Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":\"http://www.openarchives.org/OAI/2.0/oai_dc/\",\"dsControlGroup\":\"X\",\"dsSize\":341,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+DC+DC1.0\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"0555f020bbfc94c07745f530af4195fed9cf4e4ba539a30727f2d2d5743627be\"},\"RELS-EXT\":{\"dsLabel\":\"Fedora Object-to-Object Relationship Metadata\",\"dsVersionID\":\"RELS-EXT.1\",\"dsCreateDate\":\"2015-03-10T15:20:18Z\",\"dsState\":\"A\",\"dsMIME\":\"application/rdf+xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"X\",\"dsSize\":417,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+RELS-EXT+RELS-EXT.1\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"6a7c2621534cd1cb28d9cfa7e45bb128a1f3c05028e29def4dea479be9596d7d\"},\"descMetadata\":{\"dsLabel\":\"Descriptive Metadata for this object\",\"dsVersionID\":\"descMetadata.1\",\"dsCreateDate\":\"2015-03-10T15:20:18Z\",\"dsState\":\"A\",\"dsMIME\":\"application/n-triples\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":80,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+descMetadata+descMetadata.1\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"bbba526a1ca47f19dfe110f25a0a721bda481dc414f7ec89e3f02c5562eaa9a2\"},\"rightsMetadata\":{\"dsLabel\":null,\"dsVersionID\":\"rightsMetadata.0\",\"dsCreateDate\":\"2015-03-10T15:20:17Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":550,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+rightsMetadata+rightsMetadata.0\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"210d5a228bd96e22b20723de1dd20ea8d897252063713d0815369c49045c5c05\"},\"properties\":{},\"thumbnail\":{},\"adminMetadata\":{},\"defaultRights\":{\"dsLabel\":null,\"dsVersionID\":\"defaultRights.0\",\"dsCreateDate\":\"2015-03-10T15:21:50Z\",\"dsState\":\"A\",\"dsMIME\":\"text/xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":634,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"changeme:224+defaultRights+defaultRights.0\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"1a2d9e665228d5e3cbf5f8ddd0d641172c20f98b4e05d62f741b7b9010696ad0\"}},\"objLabel\":null,\"objOwnerId\":\"fedoraAdmin\",\"objModels\":[\"info:fedora/afmodel:Collection\",\"info:fedora/fedora-system:FedoraObject-3.0\"],\"objCreateDate\":\"2015-03-10T15:20:16Z\",\"objLastModDate\":\"2015-03-10T15:20:18Z\",\"objDissIndexViewURL\":\"http://localhost:8983/fedora/objects/changeme%3A224/methods/fedora-system%3A3/viewMethodIndex\",\"objItemIndexViewURL\":\"http://localhost:8983/fedora/objects/changeme%3A224/methods/fedora-system%3A3/viewItemIndex\",\"objState\":\"A\"}"], "title_tesim"=>["Test Collection"], "edit_access_person_ssim"=>["coblej@duke.edu"], "inheritable_read_access_group_ssim"=>["public"], "is_governed_by_ssim"=>["info:fedora/changeme:224"], "has_model_ssim"=>["info:fedora/afmodel:Collection"], "title_ssi"=>"Test Collection", "internal_uri_ssi"=>"info:fedora/changeme:224", Ddr::IndexFields::RESEARCH_HELP_CONTACT=>["a"], "_version_"=>1495270331036729344, "timestamp"=>"2015-03-10T15:21:50.793Z"}] }
|
109
|
+
before do
|
110
|
+
allow(subject).to receive(:admin_policy_pid).and_return('changeme:224')
|
111
|
+
allow(ActiveFedora::SolrService).to receive(:query).and_return(apo_solr_response)
|
112
|
+
end
|
113
|
+
it "should return the collection's research help contact" do
|
114
|
+
expect(subject.research_help.slug).to eq("a")
|
115
|
+
end
|
116
|
+
end
|
117
|
+
context "collection does not have research help contact" do
|
118
|
+
it "should return nil" do
|
119
|
+
expect(subject.research_help).to be_nil
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
88
126
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -355,6 +355,7 @@ files:
|
|
355
355
|
- lib/ddr/auth/superuser.rb
|
356
356
|
- lib/ddr/auth/test_helpers.rb
|
357
357
|
- lib/ddr/auth/user.rb
|
358
|
+
- lib/ddr/contacts.rb
|
358
359
|
- lib/ddr/datastreams.rb
|
359
360
|
- lib/ddr/datastreams/administrative_metadata_datastream.rb
|
360
361
|
- lib/ddr/datastreams/datastream_behavior.rb
|
@@ -417,6 +418,8 @@ files:
|
|
417
418
|
- lib/ddr/utils.rb
|
418
419
|
- lib/ddr/vocab.rb
|
419
420
|
- lib/ddr/vocab/asset.rb
|
421
|
+
- lib/ddr/vocab/contact.rb
|
422
|
+
- lib/ddr/vocab/display.rb
|
420
423
|
- lib/ddr/vocab/duke_terms.rb
|
421
424
|
- lib/ddr/vocab/rdf_vocabulary_parser.rb
|
422
425
|
- lib/ddr/vocab/roles.rb
|
@@ -433,6 +436,7 @@ files:
|
|
433
436
|
- spec/auth/roles/role_spec.rb
|
434
437
|
- spec/auth/roles/role_type_spec.rb
|
435
438
|
- spec/auth/user_spec.rb
|
439
|
+
- spec/contacts/contacts_spec.rb
|
436
440
|
- spec/controllers/application_controller_spec.rb
|
437
441
|
- spec/controllers/including_role_based_access_controls_enforcement_spec.rb
|
438
442
|
- spec/controllers/users/sessions_controller_spec.rb
|
@@ -562,6 +566,7 @@ test_files:
|
|
562
566
|
- spec/auth/roles/role_spec.rb
|
563
567
|
- spec/auth/roles/role_type_spec.rb
|
564
568
|
- spec/auth/user_spec.rb
|
569
|
+
- spec/contacts/contacts_spec.rb
|
565
570
|
- spec/controllers/application_controller_spec.rb
|
566
571
|
- spec/controllers/including_role_based_access_controls_enforcement_spec.rb
|
567
572
|
- spec/controllers/users/sessions_controller_spec.rb
|