active-fedora 13.1.2 → 13.1.3

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/.github_changelog_generator +2 -0
  3. data/CHANGELOG.md +3362 -0
  4. data/CONTRIBUTING.md +23 -1
  5. data/README.md +4 -0
  6. data/active-fedora.gemspec +14 -13
  7. data/lib/active_fedora/version.rb +1 -1
  8. metadata +104 -206
  9. data/spec/config_helper.rb +0 -17
  10. data/spec/fixtures/dino.jpg +0 -0
  11. data/spec/fixtures/dino_jpg_no_file_ext +0 -0
  12. data/spec/fixtures/minivan.jpg +0 -0
  13. data/spec/fixtures/rails_root/config/fake_fedora.yml +0 -7
  14. data/spec/fixtures/rails_root/config/fedora.yml +0 -12
  15. data/spec/fixtures/rails_root/config/solr.yml +0 -15
  16. data/spec/fixtures/rails_root/config/solr_mappings.yml +0 -16
  17. data/spec/fixtures/rails_root/config/solr_mappings_af_0.1.yml +0 -9
  18. data/spec/fixtures/rails_root/config/solr_mappings_bl_2.4.yml +0 -17
  19. data/spec/integration/associations/rdf_spec.rb +0 -61
  20. data/spec/integration/associations_spec.rb +0 -680
  21. data/spec/integration/attached_files_spec.rb +0 -146
  22. data/spec/integration/attributes_spec.rb +0 -73
  23. data/spec/integration/autosave_association_spec.rb +0 -24
  24. data/spec/integration/base_spec.rb +0 -184
  25. data/spec/integration/basic_contains_association_spec.rb +0 -121
  26. data/spec/integration/belongs_to_association_spec.rb +0 -260
  27. data/spec/integration/caching_spec.rb +0 -59
  28. data/spec/integration/clean_connection_spec.rb +0 -21
  29. data/spec/integration/collection_association_spec.rb +0 -166
  30. data/spec/integration/date_time_properties_spec.rb +0 -41
  31. data/spec/integration/delete_all_spec.rb +0 -64
  32. data/spec/integration/direct_container_spec.rb +0 -250
  33. data/spec/integration/directly_contains_one_association_spec.rb +0 -96
  34. data/spec/integration/eradicate_spec.rb +0 -52
  35. data/spec/integration/fedora_solr_sync_spec.rb +0 -30
  36. data/spec/integration/file_fixity_spec.rb +0 -36
  37. data/spec/integration/file_spec.rb +0 -221
  38. data/spec/integration/generators/fedora_generator_spec.rb +0 -26
  39. data/spec/integration/generators/solr_generator_spec.rb +0 -23
  40. data/spec/integration/gone_spec.rb +0 -41
  41. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +0 -414
  42. data/spec/integration/has_many_associations_spec.rb +0 -436
  43. data/spec/integration/has_subresource_spec.rb +0 -34
  44. data/spec/integration/indexing/descendant_fetcher_spec.rb +0 -64
  45. data/spec/integration/indexing_spec.rb +0 -110
  46. data/spec/integration/indirect_container_spec.rb +0 -290
  47. data/spec/integration/json_serialization_spec.rb +0 -32
  48. data/spec/integration/marshal_spec.rb +0 -39
  49. data/spec/integration/nested_attribute_spec.rb +0 -177
  50. data/spec/integration/nested_hash_resources_spec.rb +0 -43
  51. data/spec/integration/persistence_spec.rb +0 -37
  52. data/spec/integration/query_result_builder_spec.rb +0 -37
  53. data/spec/integration/rdf_nested_attributes_spec.rb +0 -85
  54. data/spec/integration/relation_delegation_spec.rb +0 -52
  55. data/spec/integration/relation_spec.rb +0 -117
  56. data/spec/integration/scoped_query_spec.rb +0 -134
  57. data/spec/integration/scoping_spec.rb +0 -48
  58. data/spec/integration/solr_hit_spec.rb +0 -32
  59. data/spec/integration/versionable_spec.rb +0 -256
  60. data/spec/integration/with_metadata_spec.rb +0 -111
  61. data/spec/lib/active_fedora/null_logger_spec.rb +0 -10
  62. data/spec/rcov.opts +0 -2
  63. data/spec/spec.opts +0 -5
  64. data/spec/spec_helper.rb +0 -106
  65. data/spec/support/an_active_model.rb +0 -29
  66. data/spec/unit/active_fedora/indexing/inserter_spec.rb +0 -35
  67. data/spec/unit/active_fedora_spec.rb +0 -118
  68. data/spec/unit/aggregation/list_source_spec.rb +0 -134
  69. data/spec/unit/aggregation/ordered_reader_spec.rb +0 -43
  70. data/spec/unit/association_hash_spec.rb +0 -64
  71. data/spec/unit/attached_files_spec.rb +0 -218
  72. data/spec/unit/attributes_spec.rb +0 -146
  73. data/spec/unit/base_active_model_spec.rb +0 -28
  74. data/spec/unit/base_cma_spec.rb +0 -15
  75. data/spec/unit/base_extra_spec.rb +0 -33
  76. data/spec/unit/base_spec.rb +0 -328
  77. data/spec/unit/builder/has_and_belongs_to_many_spec.rb +0 -8
  78. data/spec/unit/callback_spec.rb +0 -65
  79. data/spec/unit/change_set_spec.rb +0 -60
  80. data/spec/unit/checksum_spec.rb +0 -25
  81. data/spec/unit/code_configurator_spec.rb +0 -41
  82. data/spec/unit/collection_proxy_spec.rb +0 -25
  83. data/spec/unit/config_spec.rb +0 -18
  84. data/spec/unit/core/fedora_id_translator_spec.rb +0 -29
  85. data/spec/unit/core/fedora_uri_translator_spec.rb +0 -19
  86. data/spec/unit/core/logger_spec.rb +0 -18
  87. data/spec/unit/core_spec.rb +0 -242
  88. data/spec/unit/default_model_mapper_spec.rb +0 -39
  89. data/spec/unit/fedora_spec.rb +0 -31
  90. data/spec/unit/file/streaming_spec.rb +0 -33
  91. data/spec/unit/file_configurator_spec.rb +0 -295
  92. data/spec/unit/file_io_spec.rb +0 -137
  93. data/spec/unit/file_path_builder_spec.rb +0 -18
  94. data/spec/unit/file_spec.rb +0 -489
  95. data/spec/unit/files_hash_spec.rb +0 -52
  96. data/spec/unit/filter_spec.rb +0 -133
  97. data/spec/unit/finder_methods_spec.rb +0 -154
  98. data/spec/unit/fixity_service_spec.rb +0 -128
  99. data/spec/unit/forbidden_attributes_protection_spec.rb +0 -50
  100. data/spec/unit/has_and_belongs_to_many_association_spec.rb +0 -125
  101. data/spec/unit/has_many_association_spec.rb +0 -131
  102. data/spec/unit/indexers/global_indexer_spec.rb +0 -41
  103. data/spec/unit/indexing/map/index_object_spec.rb +0 -25
  104. data/spec/unit/indexing/map_spec.rb +0 -27
  105. data/spec/unit/indexing_service_spec.rb +0 -28
  106. data/spec/unit/indexing_spec.rb +0 -86
  107. data/spec/unit/inheritance_spec.rb +0 -60
  108. data/spec/unit/ldp_resource_spec.rb +0 -15
  109. data/spec/unit/loadable_from_json_spec.rb +0 -40
  110. data/spec/unit/logger_spec.rb +0 -19
  111. data/spec/unit/model_classifier_spec.rb +0 -49
  112. data/spec/unit/ordered_spec.rb +0 -367
  113. data/spec/unit/orders/list_node_spec.rb +0 -151
  114. data/spec/unit/orders/ordered_list_spec.rb +0 -335
  115. data/spec/unit/orders/reflection_spec.rb +0 -22
  116. data/spec/unit/pathing_spec.rb +0 -35
  117. data/spec/unit/persistence_spec.rb +0 -115
  118. data/spec/unit/property_predicate_spec.rb +0 -35
  119. data/spec/unit/property_spec.rb +0 -25
  120. data/spec/unit/query_result_builder_spec.rb +0 -31
  121. data/spec/unit/query_spec.rb +0 -307
  122. data/spec/unit/querying_spec.rb +0 -24
  123. data/spec/unit/rdf/indexing_service_spec.rb +0 -114
  124. data/spec/unit/rdf_vocab_spec.rb +0 -30
  125. data/spec/unit/readonly_spec.rb +0 -24
  126. data/spec/unit/reflection_spec.rb +0 -42
  127. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +0 -37
  128. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +0 -38
  129. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +0 -38
  130. data/spec/unit/schema_indexing_strategy_spec.rb +0 -68
  131. data/spec/unit/scoping_spec.rb +0 -67
  132. data/spec/unit/serializers_spec.rb +0 -19
  133. data/spec/unit/solr_config_options_spec.rb +0 -57
  134. data/spec/unit/solr_hit_spec.rb +0 -57
  135. data/spec/unit/solr_query_builder_spec.rb +0 -18
  136. data/spec/unit/solr_service_spec.rb +0 -165
  137. data/spec/unit/sparql_insert_spec.rb +0 -31
  138. data/spec/unit/validations_spec.rb +0 -92
  139. data/spec/unit/with_metadata/default_metadata_class_factory_spec.rb +0 -29
  140. data/spec/unit/with_metadata/metadata_node_spec.rb +0 -69
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveFedora::ChangeSet do
4
- subject(:change_set) { described_class.new(base, base.resource, base.changed_attributes.keys) }
5
-
6
- context "with an unchanged object" do
7
- let(:base) { ActiveFedora::Base.new }
8
-
9
- it { is_expected.to be_empty }
10
- end
11
-
12
- context "with a changed object" do
13
- before do
14
- class Library < ActiveFedora::Base
15
- end
16
-
17
- class Book < ActiveFedora::Base
18
- belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent
19
- property :title, predicate: ::RDF::Vocab::DC.title
20
- property :alt_id, predicate: ::RDF::Vocab::DC.identifier
21
- end
22
-
23
- base.library_id = 'foo'
24
- base.title = ['bar']
25
- base.alt_id = ['12345']
26
- end
27
- after do
28
- Object.send(:remove_const, :Library)
29
- Object.send(:remove_const, :Book)
30
- end
31
-
32
- let(:base) { Book.create }
33
-
34
- describe "#changes" do
35
- subject(:changes) { change_set.changes }
36
-
37
- it { is_expected.to be_kind_of Hash }
38
-
39
- it "has three elements" do
40
- expect(changes.size).to eq 3
41
- end
42
- it "does not include URIs from other objects" do
43
- base.resource << RDF::Statement.new(RDF::URI("http://wrong.com"), RDF::Vocab::DC.title, "bad")
44
- base.title = nil
45
- expect(changes[RDF::Vocab::DC.title].to_a).to eq []
46
- end
47
- it "includes hash URIs" do
48
- # This is useful as an alternative to blank nodes.
49
- hash_uri = RDF::URI(base.uri.to_s + "#test")
50
- base.resource << RDF::Statement.new(hash_uri, RDF::Vocab::DC.title, "good")
51
- base.title = [RDF::URI(hash_uri)]
52
- expect(changes[RDF::Vocab::DC.title].to_a).not_to eq []
53
- # Include the title reference and the title for the hash URI
54
- expect(changes[RDF::Vocab::DC.title].to_a.length).to eq 2
55
- end
56
- end
57
-
58
- it { is_expected.to_not be_empty }
59
- end
60
- end
@@ -1,25 +0,0 @@
1
- require "spec_helper"
2
-
3
- module ActiveFedora
4
- describe Checksum do
5
- subject { described_class.new(file) }
6
-
7
- let(:uri) { ::RDF::URI("urn:sha1:bb3200c2ddaee4bd7b9a4dc1ad3e10ed886eaef1") }
8
-
9
- describe "when initialized with a file having a digest" do
10
- let(:file) { instance_double(ActiveFedora::File, digest: [uri]) }
11
-
12
- its(:uri) { is_expected.to eq(uri) }
13
- its(:value) { is_expected.to eq("bb3200c2ddaee4bd7b9a4dc1ad3e10ed886eaef1") }
14
- its(:algorithm) { is_expected.to eq("SHA1") }
15
- end
16
-
17
- describe "when initialized with a file not having a digest" do
18
- let(:file) { instance_double(ActiveFedora::File, digest: []) }
19
-
20
- its(:uri) { is_expected.to be_nil }
21
- its(:value) { is_expected.to be_nil }
22
- its(:algorithm) { is_expected.to be_nil }
23
- end
24
- end
25
- end
@@ -1,41 +0,0 @@
1
- require 'spec_helper'
2
- require 'config_helper'
3
-
4
- describe ActiveFedora::FileConfigurator do
5
- before :all do
6
- class TestConfigurator
7
- attr_reader :fedora_config, :solr_config
8
-
9
- def init(options = {})
10
- @fedora_config = options[:fedora_config]
11
- @solr_config = options[:solr_config]
12
- end
13
- end
14
-
15
- @config_params = {
16
- fedora_config: { url: 'http://codeconfig.example.edu/fedora/', user: 'fedoraAdmin', password: 'configurator', cert_file: '/path/to/cert/file' },
17
- solr_config: { url: 'http://codeconfig.example.edu/solr/' }
18
- }
19
- end
20
-
21
- before do
22
- ActiveFedora.configurator = TestConfigurator.new
23
- end
24
-
25
- after :all do
26
- unstub_rails
27
- # Restore to default fedora configs
28
- ActiveFedora.configurator = described_class.new
29
- restore_spec_configuration
30
- end
31
-
32
- it "initializes from code" do
33
- expect(Psych).to receive(:load).never
34
- expect(File).to receive(:exists?).never
35
- expect(File).to receive(:read).never
36
- expect(File).to receive(:open).never
37
- ActiveFedora.init(@config_params)
38
- expect(ActiveFedora.fedora_config.credentials).to eq @config_params[:fedora_config]
39
- expect(ActiveFedora.solr_config).to eq @config_params[:solr_config]
40
- end
41
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveFedora::Associations::CollectionProxy do
4
- before do
5
- class Book < ActiveFedora::Base
6
- end
7
- class Page < ActiveFedora::Base
8
- end
9
- end
10
-
11
- after do
12
- Object.send(:remove_const, :Page)
13
- Object.send(:remove_const, :Book)
14
- end
15
-
16
- describe "#spawn" do
17
- subject { proxy.spawn }
18
-
19
- let(:reflection) { ActiveFedora::Reflection.create(:has_many, :pages, nil, { predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isMemberOfCollection }, Book) }
20
- let(:association) { ActiveFedora::Associations::HasManyAssociation.new(Book.new, reflection) }
21
- let(:proxy) { described_class.new(association) }
22
-
23
- it { is_expected.to be_instance_of ActiveFedora::Relation }
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveFedora::Config do
4
- context "with a single fedora instance" do
5
- let(:yaml) { Psych.load(File.read('spec/fixtures/rails_root/config/fedora.yml')) }
6
- let(:section) { 'test' }
7
- let(:conf) { described_class.new(yaml[section]) }
8
-
9
- describe "#credentials" do
10
- subject { conf.credentials }
11
- it { is_expected.to eq(url: 'http://testhost.com:8983/fedora', user: 'fedoraAdmin', password: 'fedoraAdmin') }
12
- describe "with SSL options" do
13
- let(:section) { 'test_ssl' }
14
- its([:ssl]) { is_expected.to eq(verify: false, ca_path: '/path/to/certs') }
15
- end
16
- end
17
- end
18
- end
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe ActiveFedora::Core::FedoraIdTranslator do
4
- describe ".call" do
5
- let(:result) { described_class.call(id) }
6
- context "when given an id" do
7
- let(:good_uri) { ActiveFedora.fedora.base_uri + "/banana" }
8
- let(:id) { "banana" }
9
- it "returns a fedora URI" do
10
- expect(result).to eq good_uri
11
- end
12
-
13
- context "with a leading slash" do
14
- let(:id) { "/banana" }
15
- it "returns a good fedora URI" do
16
- expect(result).to eq good_uri
17
- end
18
- end
19
-
20
- context "with characters that need escaping" do
21
- let(:good_uri) { ActiveFedora.fedora.base_uri + "/%5Bfrob%5D" }
22
- let(:id) { "[frob]" }
23
- it "returns a good fedora URI" do
24
- expect(result).to eq good_uri
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,19 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe ActiveFedora::Core::FedoraUriTranslator do
4
- describe ".call" do
5
- let(:result) { described_class.call(uri) }
6
- context "when given a Fedora URI" do
7
- let(:uri) { ActiveFedora.fedora.base_uri + "/6" }
8
- it "returns the id" do
9
- expect(result).to eq '6'
10
- end
11
- end
12
- context "when given a URI missing a slash" do
13
- let(:uri) { ActiveFedora.fedora.base_uri + "602-a" }
14
- it "returns the id" do
15
- expect(result).to eq "602-a"
16
- end
17
- end
18
- end
19
- end
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveFedora::NullLogger do
4
- before { ActiveFedora::Base.logger = described_class.new }
5
- describe "::logger" do
6
- let(:logger) { ActiveFedora::Base.logger }
7
- it "when calling the logger" do
8
- expect(logger.warn("warning!")).to be_nil
9
- end
10
- end
11
-
12
- describe "#logger" do
13
- let(:logger) { ActiveFedora::Base.new.logger }
14
- it "when calling the logger" do
15
- expect(logger.warn("warning!")).to be_nil
16
- end
17
- end
18
- end
@@ -1,242 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveFedora::Base do
4
- before do
5
- class Library < ActiveFedora::Base
6
- end
7
- class Book < ActiveFedora::Base
8
- belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent
9
- property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
10
- property :publisher, predicate: ::RDF::Vocab::DC.publisher, multiple: false
11
- end
12
- end
13
-
14
- subject(:book) { Book.new(library: library, title: "War and Peace", publisher: "Random House") }
15
- let(:library) { Library.create }
16
-
17
- after do
18
- Object.send(:remove_const, :Book)
19
- Object.send(:remove_const, :Library)
20
- end
21
-
22
- it "asserts a content model" do
23
- expect(book.has_model).to eq ['Book']
24
- end
25
-
26
- describe "initialize" do
27
- context "with a block" do
28
- subject(:book) { Book.new { |b| b.title = "The Sun also Rises" } }
29
-
30
- it "has set the title" do
31
- expect(book.title).to eq "The Sun also Rises"
32
- end
33
- end
34
-
35
- context "with an identifier" do
36
- subject(:book) { Book.new(attributes) }
37
- let(:attributes) { { id: '1234' } }
38
-
39
- it "sets the id and doesn't modify the passed hash" do
40
- expect(book.id).to eq '1234'
41
- expect(attributes[:id]).to eq '1234'
42
- end
43
- end
44
- end
45
-
46
- describe '#etag' do
47
- let(:attributes) { { id: '1234' } }
48
-
49
- it 'before save raises an error' do
50
- expect { book.etag }
51
- .to raise_error 'Unable to produce an etag for a unsaved object'
52
- end
53
-
54
- context 'after save' do
55
- before { book.save! }
56
-
57
- it 'has the etag from the ldp_source' do
58
- expect(book.etag).to eq book.ldp_source.head.etag
59
- end
60
-
61
- it 'after delete raises Ldp::Gone' do
62
- book.destroy!
63
- expect { book.etag }.to raise_error Ldp::Gone
64
- end
65
- end
66
- end
67
-
68
- describe "#freeze" do
69
- before { book.freeze }
70
-
71
- it "is frozen" do
72
- expect(book).to be_frozen
73
- end
74
-
75
- it "makes the associations immutable" do
76
- expect {
77
- book.library_id = Library.create!.id
78
- }.to raise_error RuntimeError, "can't modify frozen Book"
79
- expect(book.library_id).to eq library.id
80
- end
81
-
82
- describe "when the association is set via an id" do
83
- subject(:book) { Book.new(library_id: library.id) }
84
- it "is able to load the association" do
85
- expect(book.library).to eq library
86
- end
87
- end
88
-
89
- it "makes the properties immutable" do
90
- expect {
91
- book.publisher = "HEY"
92
- }.to raise_error TypeError
93
- expect(book.publisher).to eq "Random House"
94
- end
95
- end
96
-
97
- describe "an object that hasn't loaded the associations" do
98
- before { book.save! }
99
-
100
- it "accesses associations" do
101
- f = Book.find(book.id)
102
- f.freeze
103
- expect(f.library_id).to_not be_nil
104
- end
105
- end
106
-
107
- describe "#translate_id_to_uri" do
108
- subject(:uri) { described_class.translate_id_to_uri }
109
- context "when it's not set" do
110
- it "is a FedoraIdTranslator" do
111
- expect(uri).to eq ActiveFedora::Core::FedoraIdTranslator
112
- end
113
- end
114
- context "when it's set to nil" do
115
- before do
116
- described_class.translate_id_to_uri = nil
117
- end
118
- it "is a FedoraIdTranslator" do
119
- expect(uri).to eq ActiveFedora::Core::FedoraIdTranslator
120
- end
121
- end
122
- end
123
-
124
- describe "#translate_uri_to_id" do
125
- subject(:uri) { described_class.translate_uri_to_id }
126
- context "when it's not set" do
127
- it "is a FedoraUriTranslator" do
128
- expect(uri).to eq ActiveFedora::Core::FedoraUriTranslator
129
- end
130
- end
131
- context "when it's set to nil" do
132
- before do
133
- described_class.translate_uri_to_id = nil
134
- end
135
- it "is a FedoraIdTranslator" do
136
- expect(uri).to eq ActiveFedora::Core::FedoraUriTranslator
137
- end
138
- end
139
- end
140
-
141
- describe "id_to_uri" do
142
- subject(:uri) { described_class.id_to_uri(id) }
143
- let(:id) { '123456w' }
144
-
145
- context "with no custom proc is set" do
146
- it { is_expected.to eq "#{ActiveFedora.fedora.base_uri}/123456w" }
147
- it "justs call #translate_id_to_uri" do
148
- allow(described_class).to receive(:translate_id_to_uri).and_call_original
149
- allow(ActiveFedora::Core::FedoraIdTranslator).to receive(:call).and_call_original
150
-
151
- uri
152
-
153
- expect(ActiveFedora::Core::FedoraIdTranslator).to have_received(:call).with(id)
154
- end
155
- end
156
-
157
- context "when custom proc is set" do
158
- before do
159
- described_class.translate_id_to_uri = lambda { |id| "#{ActiveFedora.fedora.base_uri}/foo/#{id}" }
160
- end
161
- after { described_class.translate_id_to_uri = nil }
162
-
163
- it { is_expected.to eq "#{ActiveFedora.fedora.base_uri}/foo/123456w" }
164
- end
165
-
166
- context "with an empty base path" do
167
- it "produces a valid URI" do
168
- allow(ActiveFedora.fedora).to receive(:base_path).and_return("/")
169
- expect(uri).to eq("#{ActiveFedora.fedora.host}/#{id}")
170
- end
171
- end
172
-
173
- context "with a really empty base path" do
174
- it "produces a valid URI" do
175
- allow(ActiveFedora.fedora).to receive(:base_path).and_return("")
176
- expect(uri).to eq("#{ActiveFedora.fedora.host}/#{id}")
177
- end
178
- end
179
- end
180
-
181
- describe "uri_to_id" do
182
- subject(:uri_id) { described_class.uri_to_id(uri) }
183
- let(:uri) { "#{ActiveFedora.fedora.base_uri}/foo/123456w" }
184
-
185
- context "with no custom proc is set" do
186
- it { is_expected.to eq 'foo/123456w' }
187
- it "justs call #translate_uri_to_id" do
188
- allow(described_class).to receive(:translate_uri_to_id).and_call_original
189
- allow(ActiveFedora::Core::FedoraUriTranslator).to receive(:call).and_call_original
190
-
191
- uri_id
192
-
193
- expect(ActiveFedora::Core::FedoraUriTranslator).to have_received(:call).with(uri)
194
- end
195
- end
196
-
197
- context "when custom proc is set" do
198
- before do
199
- described_class.translate_uri_to_id = lambda { |uri| uri.to_s.split('/')[-1] }
200
- end
201
- after { described_class.translate_uri_to_id = nil }
202
-
203
- it { is_expected.to eq '123456w' }
204
- end
205
- end
206
-
207
- describe "to_class_uri" do
208
- before do
209
- module SpecModel
210
- class CamelCased < ActiveFedora::Base
211
- end
212
- end
213
- end
214
-
215
- after do
216
- Object.send(:remove_const, :SpecModel)
217
- end
218
- subject do
219
- Deprecation.silence(ActiveFedora::Core::ClassMethods) do
220
- SpecModel::CamelCased.to_class_uri
221
- end
222
- end
223
-
224
- it { is_expected.to eq 'SpecModel::CamelCased' }
225
- end
226
-
227
- describe "to_rdf_representation" do
228
- before do
229
- module SpecModel
230
- class CamelCased < ActiveFedora::Base
231
- end
232
- end
233
- end
234
-
235
- after do
236
- Object.send(:remove_const, :SpecModel)
237
- end
238
- subject { SpecModel::CamelCased.to_rdf_representation }
239
-
240
- it { is_expected.to eq 'SpecModel::CamelCased' }
241
- end
242
- end