exlibris-aleph 1.1.0 → 2.0.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.
- data/README.md +199 -82
- data/Rakefile +8 -14
- data/lib/exlibris-aleph.rb +0 -3
- data/lib/exlibris/aleph/admin_library.rb +27 -0
- data/lib/exlibris/aleph/api/base.rb +27 -0
- data/lib/exlibris/aleph/api/client/base.rb +86 -0
- data/lib/exlibris/aleph/api/client/patron.rb +20 -0
- data/lib/exlibris/aleph/api/client/patron/address.rb +22 -0
- data/lib/exlibris/aleph/api/client/patron/record.rb +23 -0
- data/lib/exlibris/aleph/api/client/patron/record/item.rb +26 -0
- data/lib/exlibris/aleph/api/client/patron/record/item/create_hold.rb +31 -0
- data/lib/exlibris/aleph/api/client/patron/record/item/create_hold/parameters.rb +55 -0
- data/lib/exlibris/aleph/api/client/patron/record/item/hold.rb +29 -0
- data/lib/exlibris/aleph/api/client/patron/status.rb +22 -0
- data/lib/exlibris/aleph/api/client/record.rb +21 -0
- data/lib/exlibris/aleph/api/client/record/filters.rb +23 -0
- data/lib/exlibris/aleph/api/client/record/holding.rb +23 -0
- data/lib/exlibris/aleph/api/client/record/holdings.rb +23 -0
- data/lib/exlibris/aleph/api/client/record/item.rb +23 -0
- data/lib/exlibris/aleph/api/client/record/items.rb +23 -0
- data/lib/exlibris/aleph/api/reader/base.rb +15 -0
- data/lib/exlibris/aleph/api/reader/patron.rb +19 -0
- data/lib/exlibris/aleph/api/reader/patron/address.rb +90 -0
- data/lib/exlibris/aleph/api/reader/patron/record.rb +38 -0
- data/lib/exlibris/aleph/api/reader/patron/record/item.rb +77 -0
- data/lib/exlibris/aleph/api/reader/patron/record/item/create_hold.rb +33 -0
- data/lib/exlibris/aleph/api/reader/patron/record/item/hold.rb +56 -0
- data/lib/exlibris/aleph/api/reader/patron/status.rb +33 -0
- data/lib/exlibris/aleph/api/reader/record.rb +10 -0
- data/lib/exlibris/aleph/api/reader/record/item.rb +45 -0
- data/lib/exlibris/aleph/collection.rb +26 -0
- data/lib/exlibris/aleph/config.rb +17 -57
- data/lib/exlibris/aleph/holding.rb +59 -0
- data/lib/exlibris/aleph/holding/metadata.rb +28 -0
- data/lib/exlibris/aleph/holdings.rb +51 -0
- data/lib/exlibris/aleph/item.rb +138 -0
- data/lib/exlibris/aleph/item/call_number.rb +14 -0
- data/lib/exlibris/aleph/item/circulation_policy.rb +30 -0
- data/lib/exlibris/aleph/item/circulation_policy/display.rb +16 -0
- data/lib/exlibris/aleph/item/circulation_policy/identifier.rb +34 -0
- data/lib/exlibris/aleph/item/circulation_policy/privileges.rb +72 -0
- data/lib/exlibris/aleph/item/circulation_status.rb +31 -0
- data/lib/exlibris/aleph/item/display_mask.rb +19 -0
- data/lib/exlibris/aleph/item/opac_note.rb +17 -0
- data/lib/exlibris/aleph/item/processing_status.rb +23 -0
- data/lib/exlibris/aleph/item/queue.rb +32 -0
- data/lib/exlibris/aleph/item/status.rb +23 -0
- data/lib/exlibris/aleph/items.rb +51 -0
- data/lib/exlibris/aleph/metadata.rb +25 -0
- data/lib/exlibris/aleph/patron.rb +18 -82
- data/lib/exlibris/aleph/patron/address.rb +56 -0
- data/lib/exlibris/aleph/patron/circulation_policy.rb +26 -0
- data/lib/exlibris/aleph/patron/circulation_policy/identifier.rb +29 -0
- data/lib/exlibris/aleph/patron/circulation_policy/privileges.rb +56 -0
- data/lib/exlibris/aleph/patron/record.rb +39 -0
- data/lib/exlibris/aleph/patron/record/circulation_policy.rb +18 -0
- data/lib/exlibris/aleph/patron/record/circulation_policy/privileges.rb +42 -0
- data/lib/exlibris/aleph/patron/record/item.rb +63 -0
- data/lib/exlibris/aleph/patron/record/item/circulation_policy.rb +21 -0
- data/lib/exlibris/aleph/patron/record/item/circulation_policy/privileges.rb +39 -0
- data/lib/exlibris/aleph/patron/record/item/create_hold.rb +43 -0
- data/lib/exlibris/aleph/patron/record/item/hold.rb +41 -0
- data/lib/exlibris/aleph/patron/status.rb +19 -0
- data/lib/exlibris/aleph/pickup_location.rb +12 -0
- data/lib/exlibris/aleph/record.rb +14 -43
- data/lib/exlibris/aleph/record/metadata.rb +8 -0
- data/lib/exlibris/aleph/sub_library.rb +30 -0
- data/lib/exlibris/aleph/table/base.rb +22 -0
- data/lib/exlibris/aleph/table/collections.rb +17 -0
- data/lib/exlibris/aleph/table/item/circulation_policies.rb +65 -0
- data/lib/exlibris/aleph/table/item/display_masks.rb +19 -0
- data/lib/exlibris/aleph/table/patron/circulation_policies.rb +47 -0
- data/lib/exlibris/aleph/table/patron/statuses.rb +19 -0
- data/lib/exlibris/aleph/table/reader/base.rb +57 -0
- data/lib/exlibris/aleph/table/reader/collections.rb +35 -0
- data/lib/exlibris/aleph/table/reader/item_circulation_policies.rb +50 -0
- data/lib/exlibris/aleph/table/reader/item_display_masks.rb +19 -0
- data/lib/exlibris/aleph/table/reader/matcher/base.rb +30 -0
- data/lib/exlibris/aleph/table/reader/matcher/collections.rb +17 -0
- data/lib/exlibris/aleph/table/reader/matcher/item_circulation_policies.rb +17 -0
- data/lib/exlibris/aleph/table/reader/matcher/item_display_masks.rb +17 -0
- data/lib/exlibris/aleph/table/reader/matcher/patron_circulation_policies.rb +17 -0
- data/lib/exlibris/aleph/table/reader/matcher/patron_statuses.rb +17 -0
- data/lib/exlibris/aleph/table/reader/matcher/sub_libraries.rb +17 -0
- data/lib/exlibris/aleph/table/reader/patron_circulation_policies.rb +51 -0
- data/lib/exlibris/aleph/table/reader/patron_statuses.rb +19 -0
- data/lib/exlibris/aleph/table/reader/row/base.rb +25 -0
- data/lib/exlibris/aleph/table/reader/row/collections.rb +13 -0
- data/lib/exlibris/aleph/table/reader/row/item_circulation_policies.rb +17 -0
- data/lib/exlibris/aleph/table/reader/row/item_display_masks.rb +13 -0
- data/lib/exlibris/aleph/table/reader/row/patron_circulation_policies.rb +20 -0
- data/lib/exlibris/aleph/table/reader/row/patron_statuses.rb +13 -0
- data/lib/exlibris/aleph/table/reader/row/sub_libraries.rb +13 -0
- data/lib/exlibris/aleph/table/reader/sub_libraries.rb +32 -0
- data/lib/exlibris/aleph/table/sub_libraries.rb +11 -0
- data/lib/exlibris/aleph/tables_manager.rb +66 -0
- data/lib/exlibris/aleph/version.rb +1 -1
- data/spec/exlibris/aleph/admin_library_spec.rb +83 -0
- data/spec/exlibris/aleph/api/base_spec.rb +23 -0
- data/spec/exlibris/aleph/api/client/base_spec.rb +40 -0
- data/spec/exlibris/aleph/api/client/patron/address_spec.rb +40 -0
- data/spec/exlibris/aleph/api/client/patron/record/item/create_hold/parameters_spec.rb +101 -0
- data/spec/exlibris/aleph/api/client/patron/record/item/create_hold_spec.rb +102 -0
- data/spec/exlibris/aleph/api/client/patron/record/item/hold_spec.rb +89 -0
- data/spec/exlibris/aleph/api/client/patron/record/item_spec.rb +52 -0
- data/spec/exlibris/aleph/api/client/patron/record_spec.rb +45 -0
- data/spec/exlibris/aleph/api/client/patron/status_spec.rb +40 -0
- data/spec/exlibris/aleph/api/client/patron_spec.rb +38 -0
- data/spec/exlibris/aleph/api/client/record/filters_spec.rb +46 -0
- data/spec/exlibris/aleph/api/client/record/holding_spec.rb +41 -0
- data/spec/exlibris/aleph/api/client/record/holdings_spec.rb +46 -0
- data/spec/exlibris/aleph/api/client/record/item_spec.rb +41 -0
- data/spec/exlibris/aleph/api/client/record/items_spec.rb +46 -0
- data/spec/exlibris/aleph/api/client/record_spec.rb +43 -0
- data/spec/exlibris/aleph/api/reader/base_spec.rb +18 -0
- data/spec/exlibris/aleph/api/reader/patron/address_spec.rb +151 -0
- data/spec/exlibris/aleph/api/reader/patron/record/item/create_hold_spec.rb +65 -0
- data/spec/exlibris/aleph/api/reader/patron/record/item/hold_spec.rb +145 -0
- data/spec/exlibris/aleph/api/reader/patron/record/item_spec.rb +266 -0
- data/spec/exlibris/aleph/api/reader/patron/record_spec.rb +98 -0
- data/spec/exlibris/aleph/api/reader/patron/status_spec.rb +57 -0
- data/spec/exlibris/aleph/api/reader/patron_spec.rb +28 -0
- data/spec/exlibris/aleph/api/reader/record/item_spec.rb +178 -0
- data/spec/exlibris/aleph/collection_spec.rb +95 -0
- data/spec/exlibris/aleph/config_spec.rb +17 -0
- data/spec/exlibris/aleph/holding/metadata_spec.rb +57 -0
- data/spec/exlibris/aleph/holding_spec.rb +53 -0
- data/spec/exlibris/aleph/holdings_spec.rb +59 -0
- data/spec/exlibris/aleph/item/call_number_spec.rb +20 -0
- data/spec/exlibris/aleph/item/circulation_policy/display_spec.rb +33 -0
- data/spec/exlibris/aleph/item/circulation_policy/identifier_spec.rb +154 -0
- data/spec/exlibris/aleph/item/circulation_policy/privileges_spec.rb +183 -0
- data/spec/exlibris/aleph/item/circulation_policy_spec.rb +146 -0
- data/spec/exlibris/aleph/item/circulation_status_spec.rb +83 -0
- data/spec/exlibris/aleph/item/display_mask_spec.rb +72 -0
- data/spec/exlibris/aleph/item/opac_note_spec.rb +19 -0
- data/spec/exlibris/aleph/item/processing_status_spec.rb +75 -0
- data/spec/exlibris/aleph/item/queue_spec.rb +31 -0
- data/spec/exlibris/aleph/item/status_spec.rb +80 -0
- data/spec/exlibris/aleph/item_spec.rb +97 -0
- data/spec/exlibris/aleph/items_spec.rb +59 -0
- data/spec/exlibris/aleph/metadata_spec.rb +118 -0
- data/spec/exlibris/aleph/patron/address_spec.rb +68 -0
- data/spec/exlibris/aleph/patron/circulation_policy/identifier_spec.rb +115 -0
- data/spec/exlibris/aleph/patron/circulation_policy/privileges_spec.rb +128 -0
- data/spec/exlibris/aleph/patron/circulation_policy_spec.rb +119 -0
- data/spec/exlibris/aleph/patron/record/circulation_policy/privileges_spec.rb +88 -0
- data/spec/exlibris/aleph/patron/record/circulation_policy_spec.rb +37 -0
- data/spec/exlibris/aleph/patron/record/item/circulation_policy/privileges_spec.rb +76 -0
- data/spec/exlibris/aleph/patron/record/item/circulation_policy_spec.rb +52 -0
- data/spec/exlibris/aleph/patron/record/item/create_hold_spec.rb +49 -0
- data/spec/exlibris/aleph/patron/record/item/hold_spec.rb +41 -0
- data/spec/exlibris/aleph/patron/record/item_spec.rb +64 -0
- data/spec/exlibris/aleph/patron/record_spec.rb +30 -0
- data/spec/exlibris/aleph/patron/status_spec.rb +72 -0
- data/spec/exlibris/aleph/patron_spec.rb +28 -0
- data/spec/exlibris/aleph/pickup_location_spec.rb +19 -0
- data/spec/exlibris/aleph/record/metadata_spec.rb +120 -0
- data/spec/exlibris/aleph/record_spec.rb +44 -0
- data/spec/exlibris/aleph/sub_library_spec.rb +110 -0
- data/spec/exlibris/aleph/table/base_spec.rb +17 -0
- data/spec/exlibris/aleph/table/collections_spec.rb +24 -0
- data/spec/exlibris/aleph/table/item/circulation_policies_spec.rb +65 -0
- data/spec/exlibris/aleph/table/item/display_masks_spec.rb +26 -0
- data/spec/exlibris/aleph/table/patron/circulation_policies_spec.rb +47 -0
- data/spec/exlibris/aleph/table/patron/statuses_spec.rb +26 -0
- data/spec/exlibris/aleph/table/reader/base_spec.rb +28 -0
- data/spec/exlibris/aleph/table/reader/collections_spec.rb +33 -0
- data/spec/exlibris/aleph/table/reader/item_circulation_policies_spec.rb +33 -0
- data/spec/exlibris/aleph/table/reader/item_display_masks_spec.rb +27 -0
- data/spec/exlibris/aleph/table/reader/matcher/base_spec.rb +32 -0
- data/spec/exlibris/aleph/table/reader/matcher/collections_spec.rb +39 -0
- data/spec/exlibris/aleph/table/reader/matcher/item_circulation_policies_spec.rb +39 -0
- data/spec/exlibris/aleph/table/reader/matcher/item_display_masks_spec.rb +40 -0
- data/spec/exlibris/aleph/table/reader/matcher/patron_circulation_policies_spec.rb +40 -0
- data/spec/exlibris/aleph/table/reader/matcher/patron_statuses_spec.rb +40 -0
- data/spec/exlibris/aleph/table/reader/matcher/sub_libraries_spec.rb +40 -0
- data/spec/exlibris/aleph/table/reader/patron_circulation_policies_spec.rb +27 -0
- data/spec/exlibris/aleph/table/reader/patron_statuses_spec.rb +27 -0
- data/spec/exlibris/aleph/table/reader/row/base_spec.rb +20 -0
- data/spec/exlibris/aleph/table/reader/row/collections_spec.rb +37 -0
- data/spec/exlibris/aleph/table/reader/row/item_circulation_policies_spec.rb +89 -0
- data/spec/exlibris/aleph/table/reader/row/item_display_masks_spec.rb +29 -0
- data/spec/exlibris/aleph/table/reader/row/patron_circulation_policies_spec.rb +115 -0
- data/spec/exlibris/aleph/table/reader/row/patron_statuses_spec.rb +29 -0
- data/spec/exlibris/aleph/table/reader/row/sub_libraries_spec.rb +41 -0
- data/spec/exlibris/aleph/table/reader/sub_libraries_spec.rb +36 -0
- data/spec/exlibris/aleph/table/sub_libraries_spec.rb +19 -0
- data/spec/exlibris/aleph/tables_manager_spec.rb +120 -0
- data/spec/exlibris/aleph_spec.rb +5 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/mnt/aleph_tab/adm50/tab/filename +0 -0
- data/{test → spec/support}/mnt/aleph_tab/alephe/tab/tab_sub_library.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/pc_tab_exp_field_extended.eng +0 -0
- data/{test/mnt/aleph_tab → spec/support/mnt/aleph_tab/nyu50/tab}/tab15.eng +2 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab16 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab31 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab37 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab40.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab_www_item_desc.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/pc_tab_exp_field_extended.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab15.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab16 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab31 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab37 +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab40.eng +0 -0
- data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab_www_item_desc.eng +0 -0
- data/spec/vcr_cassettes/patron.yml +1443 -0
- data/spec/vcr_cassettes/record.yml +763 -0
- metadata +351 -165
- data/lib/exlibris/aleph/abstract.rb +0 -28
- data/lib/exlibris/aleph/rest/base.rb +0 -56
- data/lib/exlibris/aleph/tab_helper.rb +0 -303
- data/lib/exlibris/aleph/tabs_parser/base.rb +0 -49
- data/lib/exlibris/aleph/tabs_parser/pc_tab_exp_field_extended.rb +0 -20
- data/lib/exlibris/aleph/tabs_parser/sub_library.rb +0 -32
- data/lib/exlibris/aleph/tabs_parser/tab15_by_item_process_status.rb +0 -33
- data/lib/exlibris/aleph/tabs_parser/tab15_by_item_status.rb +0 -33
- data/lib/exlibris/aleph/tabs_parser/tab31.rb +0 -39
- data/lib/exlibris/aleph/tabs_parser/tab37.rb +0 -63
- data/lib/exlibris/aleph/tabs_parser/tab40.rb +0 -20
- data/lib/exlibris/aleph/tabs_parser/tab_sub_library.rb +0 -21
- data/lib/exlibris/aleph/tabs_parser/tab_www_item_desc.rb +0 -20
- data/lib/exlibris/aleph/task_installer.rb +0 -25
- data/lib/exlibris/aleph/write_attributes.rb +0 -38
- data/lib/exlibris/aleph/xml_util.rb +0 -50
- data/lib/exlibris/aleph/xservice/bor_auth.rb +0 -47
- data/lib/tasks/exlibris-aleph_tasks.rake +0 -48
- data/test/config/aleph/alephe/sub_libraries.yml +0 -801
- data/test/config/aleph/nyu50/collections.yml +0 -1168
- data/test/config/aleph/nyu50/item_permissions_by_item_process_status.yml +0 -61876
- data/test/config/aleph/nyu50/item_permissions_by_item_status.yml +0 -17319
- data/test/config/aleph/nyu50/items.yml +0 -617
- data/test/config/aleph/nyu50/patron_permissions.yml +0 -19720
- data/test/config/aleph/nyu50/patrons.yml +0 -249
- data/test/config/aleph/nyu50/pickup_locations.yml +0 -2910
- data/test/config/aleph/nyu51/collections.yml +0 -41
- data/test/config/aleph/nyu51/item_permissions_by_item_process_status.yml +0 -7689
- data/test/config/aleph/nyu51/item_permissions_by_item_status.yml +0 -430
- data/test/config/aleph/nyu51/items.yml +0 -617
- data/test/config/aleph/nyu51/patron_permissions.yml +0 -6588
- data/test/config/aleph/nyu51/patrons.yml +0 -237
- data/test/config/aleph/nyu51/pickup_locations.yml +0 -456
- data/test/config_test.rb +0 -24
- data/test/exlibris-aleph_test.rb +0 -7
- data/test/mnt/aleph_tab/nyu50/tab/tab15.eng +0 -4742
- data/test/mnt/aleph_tab/pc_tab_exp_field_extended.eng +0 -158
- data/test/mnt/aleph_tab/tab16 +0 -3792
- data/test/mnt/aleph_tab/tab31 +0 -998
- data/test/mnt/aleph_tab/tab37 +0 -405
- data/test/mnt/aleph_tab/tab40.eng +0 -335
- data/test/mnt/aleph_tab/tab_sub_library.eng +0 -378
- data/test/mnt/aleph_tab/tab_www_item_desc.eng +0 -208
- data/test/patron_test.rb +0 -98
- data/test/record_benchmarks.rb +0 -26
- data/test/record_test.rb +0 -64
- data/test/support/config.yml +0 -2
- data/test/tab_helper_benchmarks.rb +0 -53
- data/test/tab_helper_test.rb +0 -192
- data/test/test_helper.rb +0 -46
- data/test/vcr_cassettes/bor_auth.yml +0 -42
- data/test/vcr_cassettes/patron.yml +0 -142
- data/test/vcr_cassettes/patron_address.yml +0 -45
- data/test/vcr_cassettes/patron_bogus_url.yml +0 -731
- data/test/vcr_cassettes/patron_error.yml +0 -93
- data/test/vcr_cassettes/record.yml +0 -146
- data/test/vcr_cassettes/record_bogus_url.yml +0 -690
- data/test/xservice/bor_auth_test.rb +0 -28
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
module Exlibris
|
|
3
|
+
module Aleph
|
|
4
|
+
describe Item, vcr: {cassette_name: 'record', record: :new_episodes} do
|
|
5
|
+
let(:record_id) { 'NYU01000864162' }
|
|
6
|
+
let(:id) { 'NYU50000864162000010' }
|
|
7
|
+
subject(:item) { Item.new(record_id, id) }
|
|
8
|
+
describe '#record_id' do
|
|
9
|
+
subject { item.record_id }
|
|
10
|
+
it { should eq record_id }
|
|
11
|
+
end
|
|
12
|
+
describe '#id' do
|
|
13
|
+
subject { item.id }
|
|
14
|
+
it { should eq id }
|
|
15
|
+
end
|
|
16
|
+
describe '#collection' do
|
|
17
|
+
subject { item.collection }
|
|
18
|
+
it { should be_a Collection }
|
|
19
|
+
end
|
|
20
|
+
describe '#call_number' do
|
|
21
|
+
subject { item.call_number }
|
|
22
|
+
it { should be_a Item::CallNumber }
|
|
23
|
+
end
|
|
24
|
+
describe '#status' do
|
|
25
|
+
subject { item.status }
|
|
26
|
+
it { should be_a Item::Status }
|
|
27
|
+
end
|
|
28
|
+
describe '#processing_status' do
|
|
29
|
+
subject { item.processing_status }
|
|
30
|
+
it { should be_a Item::ProcessingStatus }
|
|
31
|
+
end
|
|
32
|
+
describe '#circulation_status' do
|
|
33
|
+
subject { item.circulation_status }
|
|
34
|
+
it { should be_a Item::CirculationStatus }
|
|
35
|
+
end
|
|
36
|
+
describe '#opac_note' do
|
|
37
|
+
subject { item.opac_note }
|
|
38
|
+
it { should be_a Item::OpacNote }
|
|
39
|
+
end
|
|
40
|
+
describe '#queue' do
|
|
41
|
+
subject { item.queue }
|
|
42
|
+
it { should be_a Item::Queue }
|
|
43
|
+
end
|
|
44
|
+
describe '#on_shelf?' do
|
|
45
|
+
subject { item.on_shelf? }
|
|
46
|
+
it { should be_true }
|
|
47
|
+
context 'when the circulation status is "Reshelving"' do
|
|
48
|
+
let(:id) { 'NYU50000864162000020' }
|
|
49
|
+
it { should be_false }
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
describe '#circulation_policy' do
|
|
53
|
+
subject { item.circulation_policy }
|
|
54
|
+
it { should be_an Item::CirculationPolicy }
|
|
55
|
+
end
|
|
56
|
+
context 'when the item does not exist' do
|
|
57
|
+
let(:id) { 'ADM50' }
|
|
58
|
+
describe '#collection' do
|
|
59
|
+
subject { item.collection }
|
|
60
|
+
it { should be_nil }
|
|
61
|
+
end
|
|
62
|
+
describe '#call_number' do
|
|
63
|
+
subject { item.call_number }
|
|
64
|
+
it { should be_nil }
|
|
65
|
+
end
|
|
66
|
+
describe '#status' do
|
|
67
|
+
subject { item.status }
|
|
68
|
+
it { should be_nil }
|
|
69
|
+
end
|
|
70
|
+
describe '#processing_status' do
|
|
71
|
+
subject { item.processing_status }
|
|
72
|
+
it { should be_nil }
|
|
73
|
+
end
|
|
74
|
+
describe '#circulation_status' do
|
|
75
|
+
subject { item.circulation_status }
|
|
76
|
+
it { should be_nil }
|
|
77
|
+
end
|
|
78
|
+
describe '#opac_note' do
|
|
79
|
+
subject { item.opac_note }
|
|
80
|
+
it { should be_nil }
|
|
81
|
+
end
|
|
82
|
+
describe '#queue' do
|
|
83
|
+
subject { item.queue }
|
|
84
|
+
it { should be_nil }
|
|
85
|
+
end
|
|
86
|
+
describe '#on_shelf?' do
|
|
87
|
+
subject { item.on_shelf? }
|
|
88
|
+
it { should be_false }
|
|
89
|
+
end
|
|
90
|
+
describe '#circulation_policy' do
|
|
91
|
+
subject { item.circulation_policy }
|
|
92
|
+
it { should be_nil }
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
module Exlibris
|
|
3
|
+
module Aleph
|
|
4
|
+
describe Items, vcr: {cassette_name: 'record', record: :new_episodes} do
|
|
5
|
+
let(:record_id) { 'NYU01000864162' }
|
|
6
|
+
subject(:items) { Items.new(record_id) }
|
|
7
|
+
it { should be_an Items }
|
|
8
|
+
describe '#record_id' do
|
|
9
|
+
subject { items.record_id }
|
|
10
|
+
it { should eq record_id }
|
|
11
|
+
end
|
|
12
|
+
describe '#each' do
|
|
13
|
+
subject { items.each }
|
|
14
|
+
it { should be_an Enumerable }
|
|
15
|
+
end
|
|
16
|
+
describe '#size' do
|
|
17
|
+
subject { items.size }
|
|
18
|
+
it { should eq 2 }
|
|
19
|
+
end
|
|
20
|
+
describe '#to_a' do
|
|
21
|
+
subject { items.to_a }
|
|
22
|
+
it { should be_an Array }
|
|
23
|
+
it 'should contain Items' do
|
|
24
|
+
subject.each do |item|
|
|
25
|
+
expect(item).to be_an Item
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
context 'when there is only one item' do
|
|
30
|
+
let(:record_id) { 'NYU01003415726' }
|
|
31
|
+
describe '#size' do
|
|
32
|
+
subject { items.size }
|
|
33
|
+
it { should eq 1 }
|
|
34
|
+
end
|
|
35
|
+
describe '#to_a' do
|
|
36
|
+
subject { items.to_a }
|
|
37
|
+
it { should be_an Array }
|
|
38
|
+
it 'should contain Items' do
|
|
39
|
+
subject.each do |item|
|
|
40
|
+
expect(item).to be_an Item
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
context 'when there are no items' do
|
|
46
|
+
let(:record_id) { 'NYU01000000000' }
|
|
47
|
+
describe '#size' do
|
|
48
|
+
subject { items.size }
|
|
49
|
+
it { should eq 0 }
|
|
50
|
+
end
|
|
51
|
+
describe '#to_a' do
|
|
52
|
+
subject { items.to_a }
|
|
53
|
+
it { should be_an Array }
|
|
54
|
+
it { should be_empty }
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
module Exlibris
|
|
3
|
+
module Aleph
|
|
4
|
+
describe Metadata do
|
|
5
|
+
let(:marc_xml) { %Q{
|
|
6
|
+
<record>
|
|
7
|
+
<info type="Items" href="http://aleph.library.nyu.edu:1891/rest-dlf/record/NYU01001951476/items"/>
|
|
8
|
+
<info type="Holdings" href="http://aleph.library.nyu.edu:1891/rest-dlf/record/NYU01001951476/holdings"/>
|
|
9
|
+
<info type="Filters" href="http://aleph.library.nyu.edu:1891/rest-dlf/record/NYU01001951476/filters"/>
|
|
10
|
+
<leader>00000nas 2200241 a 4500</leader>
|
|
11
|
+
<controlfield tag="001">001951476</controlfield>
|
|
12
|
+
<controlfield tag="003">NNU</controlfield>
|
|
13
|
+
<controlfield tag="005">20131122143305.0</controlfield>
|
|
14
|
+
<controlfield tag="008">910904c19919999nyuqr p 0 0eng d</controlfield>
|
|
15
|
+
<datafield tag="035" ind1=" " ind2=" ">
|
|
16
|
+
<subfield code="a">(CStRLIN)NYUG91-S1859</subfield>
|
|
17
|
+
</datafield>
|
|
18
|
+
<datafield tag="035" ind1=" " ind2=" ">
|
|
19
|
+
<subfield code="a">GLIS008967192</subfield>
|
|
20
|
+
</datafield>
|
|
21
|
+
<datafield tag="035" ind1="9" ind2=" ">
|
|
22
|
+
<subfield code="a">NYUb10896719</subfield>
|
|
23
|
+
</datafield>
|
|
24
|
+
<datafield tag="040" ind1=" " ind2=" ">
|
|
25
|
+
<subfield code="a">NNU</subfield>
|
|
26
|
+
<subfield code="c">NNU</subfield>
|
|
27
|
+
</datafield>
|
|
28
|
+
<datafield tag="090" ind1=" " ind2=" ">
|
|
29
|
+
<subfield code="i">09/04/91 CT</subfield>
|
|
30
|
+
</datafield>
|
|
31
|
+
<datafield tag="245" ind1="0" ind2="0">
|
|
32
|
+
<subfield code="a">Visionaire.</subfield>
|
|
33
|
+
</datafield>
|
|
34
|
+
<datafield tag="260" ind1=" " ind2=" ">
|
|
35
|
+
<subfield code="a">[New York] :</subfield>
|
|
36
|
+
<subfield code="b">Visionaire Publishing,</subfield>
|
|
37
|
+
<subfield code="c">c1991-</subfield>
|
|
38
|
+
</datafield>
|
|
39
|
+
<datafield tag="300" ind1=" " ind2=" ">
|
|
40
|
+
<subfield code="a">v. :</subfield>
|
|
41
|
+
<subfield code="b">ill. (some col.) ;</subfield>
|
|
42
|
+
<subfield code="c">29 cm.</subfield>
|
|
43
|
+
</datafield>
|
|
44
|
+
<datafield tag="310" ind1=" " ind2=" ">
|
|
45
|
+
<subfield code="a">Quarterly</subfield>
|
|
46
|
+
</datafield>
|
|
47
|
+
<datafield tag="362" ind1="0" ind2=" ">
|
|
48
|
+
<subfield code="a">No. 1 (Spring 1991)-</subfield>
|
|
49
|
+
</datafield>
|
|
50
|
+
<datafield tag="500" ind1=" " ind2=" ">
|
|
51
|
+
<subfield code="a">Title from cover.</subfield>
|
|
52
|
+
</datafield>
|
|
53
|
+
<datafield tag="650" ind1=" " ind2="0">
|
|
54
|
+
<subfield code="a">Fashion</subfield>
|
|
55
|
+
<subfield code="v">Periodicals.</subfield>
|
|
56
|
+
</datafield>
|
|
57
|
+
<datafield tag="650" ind1=" " ind2="0">
|
|
58
|
+
<subfield code="a">Art, Modern</subfield>
|
|
59
|
+
<subfield code="y">20th century</subfield>
|
|
60
|
+
<subfield code="v">Periodicals.</subfield>
|
|
61
|
+
</datafield>
|
|
62
|
+
<datafield tag="866" ind1="4" ind2="1">
|
|
63
|
+
<subfield code="l">New School Gimbel</subfield>
|
|
64
|
+
<subfield code="d">Special Collections Periodicals</subfield>
|
|
65
|
+
<subfield code="e">1306</subfield>
|
|
66
|
+
<subfield code="i">
|
|
67
|
+
Latest issues held in Periodicals; bound volumes held Offsite.
|
|
68
|
+
</subfield>
|
|
69
|
+
</datafield>
|
|
70
|
+
<datafield tag="866" ind1="4" ind2="1">
|
|
71
|
+
<subfield code="l">New School Gimbel Offsite</subfield>
|
|
72
|
+
<subfield code="d">Special Collections Periodicals</subfield>
|
|
73
|
+
<subfield code="e">1306</subfield>
|
|
74
|
+
<subfield code="j">1-</subfield>
|
|
75
|
+
<subfield code="k">1991-</subfield>
|
|
76
|
+
</datafield>
|
|
77
|
+
<datafield tag="998" ind1=" " ind2=" ">
|
|
78
|
+
<subfield code="a">09/04/91</subfield>
|
|
79
|
+
<subfield code="t">c</subfield>
|
|
80
|
+
<subfield code="s">9114</subfield>
|
|
81
|
+
<subfield code="n">NNU</subfield>
|
|
82
|
+
<subfield code="d">09/04/91</subfield>
|
|
83
|
+
<subfield code="c">JJR</subfield>
|
|
84
|
+
<subfield code="b">MJD</subfield>
|
|
85
|
+
<subfield code="i">910904</subfield>
|
|
86
|
+
<subfield code="l">NYUG</subfield>
|
|
87
|
+
</datafield>
|
|
88
|
+
<datafield tag="966" ind1="4" ind2="1">
|
|
89
|
+
<subfield code="l">
|
|
90
|
+
New School University Center Special Collections Periodicals
|
|
91
|
+
</subfield>
|
|
92
|
+
<subfield code="e">1306</subfield>
|
|
93
|
+
<subfield code="i">
|
|
94
|
+
Latest issues held in Periodicals; bound volumes held Offsite.
|
|
95
|
+
</subfield>
|
|
96
|
+
</datafield>
|
|
97
|
+
<datafield tag="966" ind1="4" ind2="1">
|
|
98
|
+
<subfield code="l">
|
|
99
|
+
New School University Center Special Collections Periodicals
|
|
100
|
+
</subfield>
|
|
101
|
+
<subfield code="e">1306</subfield>
|
|
102
|
+
<subfield code="j">1-</subfield>
|
|
103
|
+
<subfield code="k">1991-</subfield>
|
|
104
|
+
</datafield>
|
|
105
|
+
</record>
|
|
106
|
+
}}
|
|
107
|
+
subject(:metadata) { Metadata.new(marc_xml) }
|
|
108
|
+
describe '#marc_xml' do
|
|
109
|
+
subject { metadata.marc_xml }
|
|
110
|
+
it { should eq marc_xml.strip }
|
|
111
|
+
end
|
|
112
|
+
describe '#marc_record' do
|
|
113
|
+
subject { metadata.marc_record }
|
|
114
|
+
it { should be_a MARC::Record }
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
module Exlibris
|
|
3
|
+
module Aleph
|
|
4
|
+
class Patron
|
|
5
|
+
describe Address, vcr: {cassette_name: 'patron', record: :new_episodes} do
|
|
6
|
+
let(:patron_id) { 'BOR_ID' }
|
|
7
|
+
subject(:address) { Address.new(patron_id) }
|
|
8
|
+
it { should be_an Address }
|
|
9
|
+
describe '#patron_id' do
|
|
10
|
+
subject { address.patron_id }
|
|
11
|
+
it { should eq patron_id }
|
|
12
|
+
end
|
|
13
|
+
describe '#address1' do
|
|
14
|
+
subject { address.address1 }
|
|
15
|
+
it { should eql 'SURNAME,GIVEN NAME'}
|
|
16
|
+
end
|
|
17
|
+
describe '#address2' do
|
|
18
|
+
subject { address.address2 }
|
|
19
|
+
it { should eql '123 ADDRESS, #APT'}
|
|
20
|
+
end
|
|
21
|
+
describe '#address3' do
|
|
22
|
+
subject { address.address3 }
|
|
23
|
+
it { should eql 'BROOKLYN'}
|
|
24
|
+
end
|
|
25
|
+
describe '#address4' do
|
|
26
|
+
subject { address.address4 }
|
|
27
|
+
it { should eql 'NY'}
|
|
28
|
+
end
|
|
29
|
+
describe '#address5' do
|
|
30
|
+
subject { address.address5 }
|
|
31
|
+
it { should eql 'NY'}
|
|
32
|
+
end
|
|
33
|
+
describe '#telephone1' do
|
|
34
|
+
subject { address.telephone1 }
|
|
35
|
+
it { should be_nil }
|
|
36
|
+
end
|
|
37
|
+
describe '#telephone2' do
|
|
38
|
+
subject { address.telephone2 }
|
|
39
|
+
it { should be_nil }
|
|
40
|
+
end
|
|
41
|
+
describe '#telephone3' do
|
|
42
|
+
subject { address.telephone3 }
|
|
43
|
+
it { should be_nil }
|
|
44
|
+
end
|
|
45
|
+
describe '#telephone4' do
|
|
46
|
+
subject { address.telephone4 }
|
|
47
|
+
it { should be_nil }
|
|
48
|
+
end
|
|
49
|
+
describe '#zip' do
|
|
50
|
+
subject { address.zip }
|
|
51
|
+
it { should eq '11215' }
|
|
52
|
+
end
|
|
53
|
+
describe '#sms_number' do
|
|
54
|
+
subject { address.sms_number }
|
|
55
|
+
it { should be_nil }
|
|
56
|
+
end
|
|
57
|
+
describe '#want_sms' do
|
|
58
|
+
subject { address.want_sms }
|
|
59
|
+
it { should eq 'N' }
|
|
60
|
+
end
|
|
61
|
+
describe '#email' do
|
|
62
|
+
subject { address.email }
|
|
63
|
+
it { should eq 'bor_id@library.nyu.edu' }
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
module Exlibris
|
|
3
|
+
module Aleph
|
|
4
|
+
class Patron
|
|
5
|
+
class CirculationPolicy
|
|
6
|
+
describe Identifier do
|
|
7
|
+
let(:status) { Status.new('01', 'Patron') }
|
|
8
|
+
let(:admin_library) { AdminLibrary.new('ADM50') }
|
|
9
|
+
let(:sub_library) { SubLibrary.new('SUB', 'Sub Library', admin_library) }
|
|
10
|
+
subject(:identifier) { Identifier.new(status, sub_library) }
|
|
11
|
+
it { should be_a Identifier }
|
|
12
|
+
describe '#sub_library' do
|
|
13
|
+
subject { identifier.sub_library }
|
|
14
|
+
it { should eq sub_library }
|
|
15
|
+
end
|
|
16
|
+
describe '#status' do
|
|
17
|
+
subject { identifier.status }
|
|
18
|
+
it { should eq status }
|
|
19
|
+
end
|
|
20
|
+
describe '#==' do
|
|
21
|
+
subject { identifier == other_object }
|
|
22
|
+
context 'when the other object is an Patron::CirculationPolicy::Identifier' do
|
|
23
|
+
let(:other_status) { status }
|
|
24
|
+
let(:other_sub_library) { sub_library }
|
|
25
|
+
let(:other_object) { Identifier.new(other_status, other_sub_library) }
|
|
26
|
+
context 'but the status of the other object is different' do
|
|
27
|
+
let(:other_status) { Status.new('02', 'Patron') }
|
|
28
|
+
it { should be_false }
|
|
29
|
+
end
|
|
30
|
+
context 'and the status of the other object is the same' do
|
|
31
|
+
context 'but the sub library of the other object is different' do
|
|
32
|
+
let(:other_sub_library) { SubLibrary.new('SUB1', 'Sub Library 1', admin_library) }
|
|
33
|
+
it { should be_false }
|
|
34
|
+
end
|
|
35
|
+
context 'and the sub library of the other object is the same' do
|
|
36
|
+
it { should be_true }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
context 'when the other object is not an Patron::CirculationPolicy::Identifier' do
|
|
41
|
+
let(:other_object) { "invalid" }
|
|
42
|
+
it { should be_false }
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
describe '#===' do
|
|
46
|
+
subject { identifier === other_object }
|
|
47
|
+
context 'when the other object is an Patron::CirculationPolicy::Identifier' do
|
|
48
|
+
let(:other_status) { status }
|
|
49
|
+
let(:other_sub_library) { sub_library }
|
|
50
|
+
let(:other_object) { Identifier.new(other_status, other_sub_library) }
|
|
51
|
+
context 'but the status of the other object is different' do
|
|
52
|
+
let(:other_status) { Status.new('02', 'Patron') }
|
|
53
|
+
it { should be_false }
|
|
54
|
+
end
|
|
55
|
+
context 'and the status of the other object is the same' do
|
|
56
|
+
context 'but the sub library of the other object is different' do
|
|
57
|
+
let(:other_sub_library) { SubLibrary.new('SUB1', 'Sub Library 1', admin_library) }
|
|
58
|
+
it { should be_false }
|
|
59
|
+
end
|
|
60
|
+
context 'and the sub library of the other object is the same' do
|
|
61
|
+
it { should be_true }
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
context 'when the other object is not an Patron::CirculationPolicy::Identifier' do
|
|
66
|
+
let(:other_object) { "invalid" }
|
|
67
|
+
it { should be_false }
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
describe '#eql?' do
|
|
71
|
+
subject { identifier.eql?(other_object) }
|
|
72
|
+
context 'when the other object is an Patron::CirculationPolicy::Identifier' do
|
|
73
|
+
let(:other_status) { status }
|
|
74
|
+
let(:other_sub_library) { sub_library }
|
|
75
|
+
let(:other_object) { Identifier.new(other_status, other_sub_library) }
|
|
76
|
+
context 'but the status of the other object is different' do
|
|
77
|
+
let(:other_status) { Status.new('02', 'Patron') }
|
|
78
|
+
it { should be_false }
|
|
79
|
+
end
|
|
80
|
+
context 'and the status of the other object is the same' do
|
|
81
|
+
context 'but the sub library of the other object is different' do
|
|
82
|
+
let(:other_sub_library) { SubLibrary.new('SUB1', 'Sub Library 1', admin_library) }
|
|
83
|
+
it { should be_false }
|
|
84
|
+
end
|
|
85
|
+
context 'and the sub library of the other object is the same' do
|
|
86
|
+
it { should be_true }
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
context 'when the other object is not an Patron::CirculationPolicy::Identifier' do
|
|
91
|
+
let(:other_object) { "invalid" }
|
|
92
|
+
it { should be_false }
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
context 'when initialized with arguments' do
|
|
96
|
+
context 'but the "status" argument is not an Patron::Status' do
|
|
97
|
+
let(:status) { "invalid" }
|
|
98
|
+
it 'should raise an ArgumentError' do
|
|
99
|
+
expect { subject }.to raise_error ArgumentError
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
context 'and the "status" argument is an Patron::Status' do
|
|
103
|
+
context 'but the "sub library" argument is not a SubLibrary' do
|
|
104
|
+
let(:sub_library) { "invalid" }
|
|
105
|
+
it 'should raise an ArgumentError' do
|
|
106
|
+
expect { subject }.to raise_error ArgumentError
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|