spec/rosetta_oai_spec.rb in libis-services-1.0.10 vs spec/rosetta_oai_spec.rb in libis-services-1.0.11
- old
+ new
@@ -1,9 +1,10 @@
# encoding: utf-8
require_relative 'spec_helper'
require 'libis/tools/config_file'
+require 'libis/tools/extend/symbol'
require 'libis/services/rosetta/oai_pmh'
describe 'Rosetta OAI-PMH Service' do
let(:credentials) { Libis::Tools::ConfigFile.new File.join(File.dirname(__FILE__), 'credentials-test.yml'), debug: true }
@@ -11,44 +12,82 @@
subject(:oai_handler) do
# noinspection RubyResolve
Libis::Services::Rosetta::OaiPmh.new credentials.rosetta_url
end
+ let(:expected_identify) {
+ {
+ repository_name: 'LIBIS Teneo Sandbox Repository',
+ base_url: "#{credentials.rosetta_url}/oaiprovider/request"
+ }
+ }
+
+ let(:expected_metadata_formats) {
+ [ 'oai_dc' ]
+ }
+
let(:expected_sets) {
[
- {name:'TESTINS-collections', spec: 'TESTINS-collections'}
+ 'TESTINS-collections',
+ 'INS00-collections'
]
}
let(:expected_collections) {
[
- 'Kerk & Leven',
- 'Kerk en leven. Bisdom Antwerpen (0991).',
+ 'E-periodieken',
+ 'Parochiebladen',
+ 'Kerk en leven. Puurs (4635)',
]
}
+ let(:expected_identifiers) {
+ [ 'oai:sandbox.teneo.libis.be:IE403595']
+ }
+
let(:expected_records) {
[
{
- id: 'oai:d4I1-pubam:IE405650',
+ header: {identifier: 'oai:sandbox.teneo.libis.be:IE403595'},
+ metadata: {
+ 'metadata' => {
+ 'oai_dc:dc' => {
+ 'dc:title' => 'Denemarken 2015',
+ 'dcterms:spatial' => ['Denemarken', 'Fyn', 'Sinebjerg']
+ }
+ }
+ }
}
]
}
+ it 'should identify' do
+ id = oai_handler.identify
+ expect(id).to deep_include(expected_identify)
+ end
+
+ it 'should get metata formats' do
+ formats = oai_handler.metadata_formats
+ expect(formats[:entries].map(&:dig.(:prefix)).compact).to deep_include(expected_metadata_formats)
+ end
+
it 'should get set list' do
sets = oai_handler.sets
- expect(sets[:entries]).to deep_include(expected_sets)
+ expect(sets[:entries].map(&:dig.(:name)).compact).to deep_include(expected_sets)
end
it 'should get list of collections' do
- status = {}
- collections = oai_handler.collections('TESTINS', status)
- expect(collections).to deep_include(expected_collections)
+ collections = oai_handler.collections('KADOC')
+ expect(collections[:entries].map(&:dig.(:metadata, 'metadata', 'oai_dc:dc', 'dc:title')).compact).to deep_include(expected_collections)
end
+ it 'should get list of identifiers' do
+ ids = oai_handler.identifiers(set: 'test_data', from: '2020-01-01')
+ expect(ids[:entries].map(&:dig.(:identifier)).compact).to deep_include(expected_identifiers)
+ end
+
it 'should get list of records' do
- status = {}
- records = oai_handler.records('test_data', status)
- expect(records).to deep_include(expected_records)
+ records = oai_handler.records(set: 'test_data', from: '2020-01-01')
+ expect(records[:entries]).to deep_include(expected_records)
end
end
\ No newline at end of file