diff --git a/dor-services.gemspec b/dor-services.gemspec
index 085e1a86..7b9e65c1 100644
--- a/dor-services.gemspec
+++ b/dor-services.gemspec
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
s.add_dependency 'activesupport', '>= 4.2.10', '< 6.0.0'
s.add_dependency 'confstruct', '~> 0.2.7'
s.add_dependency 'deprecation', '~> 0'
- s.add_dependency 'dor-services-client', '~> 0.4'
+ s.add_dependency 'dor-services-client', '~> 0.9'
s.add_dependency 'equivalent-xml', '~> 0.5', '>= 0.5.1' # 5.0 insufficient
s.add_dependency 'json', '>= 1.8.1'
s.add_dependency 'net-sftp', '~> 2.1'
diff --git a/lib/dor/models/concerns/publishable.rb b/lib/dor/models/concerns/publishable.rb
index c7344353..5013b067 100644
--- a/lib/dor/models/concerns/publishable.rb
+++ b/lib/dor/models/concerns/publishable.rb
@@ -69,7 +69,7 @@ def publish_metadata
# Call dor services app to have it publish the metadata
def publish_metadata_remotely
- Dor::Services::Client.publish(object: pid)
+ Dor::Services::Client.object(pid).publish
end
deprecation_deprecate publish_metadata_remotely: 'use Dor::Services::Client.publish instead'
end
diff --git a/lib/dor/services/publish_metadata_service.rb b/lib/dor/services/publish_metadata_service.rb
index f54cc4a0..7b6f25d4 100644
--- a/lib/dor/services/publish_metadata_service.rb
+++ b/lib/dor/services/publish_metadata_service.rb
@@ -30,7 +30,7 @@ def transfer_metadata
transfer_to_document_store(item.datastreams[stream].content.to_s, stream) if item.datastreams[stream]
end
transfer_to_document_store(PublicXmlService.new(item).to_xml, 'public')
- transfer_to_document_store(PublicDescMetadataService.new(self).to_xml, 'mods')
+ transfer_to_document_store(PublicDescMetadataService.new(item).to_xml, 'mods')
end
# Clear out the document cache for this item
diff --git a/spec/models/concerns/publishable_spec.rb b/spec/models/concerns/publishable_spec.rb
index a39f6d31..598aaa25 100644
--- a/spec/models/concerns/publishable_spec.rb
+++ b/spec/models/concerns/publishable_spec.rb
@@ -181,10 +181,12 @@ class PublishableItem < ActiveFedora::Base
before do
Dor::Config.push! { |config| config.dor_services.url 'https://lyberservices-test.stanford.edu/dor' }
stub_request(:post, 'https://lyberservices-test.stanford.edu/dor/v1/objects/druid:ab123cd4567/publish')
+ allow(Deprecation).to receive(:warn)
end
+
it 'hits the correct url' do
- expect(Deprecation).to receive(:warn)
expect(item.publish_metadata_remotely).to be true
+ expect(Deprecation).to have_received(:warn)
end
end
end
diff --git a/spec/services/publish_metadata_service_spec.rb b/spec/services/publish_metadata_service_spec.rb
index 6c78b370..883a3393 100644
--- a/spec/services/publish_metadata_service_spec.rb
+++ b/spec/services/publish_metadata_service_spec.rb
@@ -113,9 +113,14 @@ class PublishableItem < ActiveFedora::Base
EOXML
end
+ let(:md_service) { instance_double(Dor::PublicDescMetadataService, to_xml: mods, ng_xml: Nokogiri::XML(mods)) }
+ let(:dc_service) { instance_double(Dor::DublinCoreService, ng_xml: Nokogiri::XML('')) }
+ let(:public_service) { instance_double(Dor::PublicXmlService, to_xml: '') }
+
before do
- allow_any_instance_of(Dor::PublicDescMetadataService).to receive(:to_xml).and_return(mods)
- allow_any_instance_of(Dor::PublicDescMetadataService).to receive(:ng_xml).and_return(Nokogiri::XML(mods))
+ allow(Dor::DublinCoreService).to receive(:new).and_return(dc_service)
+ allow(Dor::PublicXmlService).to receive(:new).and_return(public_service)
+ allow(Dor::PublicDescMetadataService).to receive(:new).and_return(md_service)
end
context 'with an item' do
@@ -128,10 +133,15 @@ class PublishableItem < ActiveFedora::Base
expect_any_instance_of(Dor::PublishMetadataService).to receive(:transfer_to_document_store).with(/
)