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.
@@ -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.16.2
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-16 00:00:00.000000000 Z
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