umlaut 3.0.0alpha10 → 3.0.0alpha11
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/app/models/collection.rb +7 -1
- data/app/models/referent.rb +11 -77
- data/app/models/request.rb +2 -2
- data/app/models/service_store.rb +4 -0
- data/app/models/service_wave.rb +1 -1
- data/lib/section_renderer.rb +9 -5
- data/lib/service.rb +0 -62
- data/lib/service_adaptors/isi.rb +1 -1
- data/lib/service_adaptors/jcr.rb +1 -1
- data/lib/umlaut/version.rb +1 -1
- data/lib/umlaut_configurable.rb +1 -0
- data/test/dummy/config/environments/profile.rb +24 -0
- data/test/dummy/config/primo.yml +271 -0
- data/test/dummy/config/umlaut_services-TEST.yml +37 -0
- data/test/dummy/profile/sfx_collection_prof.rb +22 -0
- data/test/dummy/tmp/cache/assets/C2A/410/sprockets%2Fd654b74912b4773a2534616863fb6565 +0 -0
- data/test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26 +0 -0
- data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
- data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
- data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
- data/test/dummy/tmp/cache/assets/{D0E/570/sprockets%2Fd4a16e3bdd7c7b9543c446b1b0174688 → CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6} +0 -0
- data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
- data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
- data/test/dummy/tmp/cache/assets/CD6/300/sprockets%2F397ec39d3d883789effe506c38760368 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/DD0/sprockets%2F4f1fe68aa2042a0970bde9b185530646 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
- data/test/dummy/tmp/cache/assets/{CE1/F50/sprockets%2F6e6b593b107866863500ba0fee5a9e24 → D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1} +0 -0
- data/test/dummy/tmp/cache/assets/{CDD/7D0/sprockets%2F60687bff4553a7f8c701bb9627a6200a → D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d} +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6 +0 -0
- data/test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b +0 -0
- data/test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6 +0 -0
- data/test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6 +0 -0
- data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
- data/test/dummy/tmp/cache/assets/{DB7/BD0/sprockets%2Ff2c59778ab79dcfd3792f46f2ce82f2a → DC0/D20/sprockets%2F1ccf7405cd252dcec4bf23af82e2563a} +0 -0
- data/test/dummy/tmp/cache/assets/{D5C/B00/sprockets%2F2b7ac06cc680d7480c06b917bac5a6b0 → DD2/D80/sprockets%2Fc66d103807d0f971fbbcf9aa8b8b27ee} +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/5E0/sprockets%2F8e64a37c73cdc0b37a4ccfcb42ab45d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b +0 -0
- data/test/dummy/tmp/cache/assets/{C84/A00/sprockets%2F3ba04c88513936081d59d8771f6804aa → DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364} +0 -0
- data/test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b +0 -0
- data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
- data/test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_gc_runs.csv +2 -0
- data/test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_gc_time.csv +2 -0
- data/test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_memory.csv +2 -0
- data/test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_objects.csv +2 -0
- data/test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_wall_time.csv +2 -0
- data/test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_flat.txt +11 -0
- data/test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_graph.html +303 -0
- data/test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_stack.html +546 -0
- data/test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_tree.txt +38 -0
- data/test/dummy/tmp/performance/empty.png +0 -0
- data/test/dummy/tmp/performance/minus.png +0 -0
- data/test/dummy/tmp/performance/plus.png +0 -0
- data/test/test_helper.rb +36 -0
- data/test/unit/aleph_patron_test.rb +40 -35
- data/test/unit/aleph_record_benchmarks.rb +28 -24
- data/test/unit/aleph_record_test.rb +31 -26
- data/test/unit/collection_test.rb +17 -18
- data/test/unit/google_book_search_test.rb +18 -44
- data/test/unit/primo_searcher_test.rb +325 -321
- data/test/unit/primo_service_test.rb +924 -919
- data/test/unit/primo_ws_test.rb +141 -138
- data/test/unit/service_test.rb +2 -16
- metadata +93 -100
- data/test/dummy/tmp/cache/assets/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d +0 -0
- data/test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4 +0 -9271
- data/test/dummy/tmp/cache/assets/CB2/DA0/sprockets%2Fa1808990b72376256db2ae3818c0e9b5 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/680/sprockets%2F2b68ef632d12610f3c9563168bfa7c05 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/2A0/sprockets%2F9c8607157b998108ce08f4aca39f810a +0 -0
- data/test/dummy/tmp/cache/assets/CF5/9B0/sprockets%2F7933bfe880731b396791f1682ce3f7fa +0 -0
- data/test/dummy/tmp/cache/assets/CFB/2F0/sprockets%2F62d51f0aa5cac4b1cf7091823772a604 +0 -0
- data/test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e +0 -0
- data/test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1 +0 -0
- data/test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf +0 -0
- data/test/dummy/tmp/cache/assets/D4C/0A0/sprockets%2F7810d837eec3ac57ad78756af83a6a55 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/E30/sprockets%2F631abf89746799b7a5b2b3b4f6294bcd +0 -0
- data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -873
- data/test/dummy/tmp/cache/assets/D5D/AD0/sprockets%2Fbdb053d9a6a967788f09fbc555d69f58 +0 -0
- data/test/dummy/tmp/cache/assets/D66/890/sprockets%2F06287a78ed20d8214197eab03bfca5dd +0 -0
- data/test/dummy/tmp/cache/assets/D6B/2A0/sprockets%2F81f17ab0ed20f4a8d9355f7a1d872eb2 +0 -0
- data/test/dummy/tmp/cache/assets/D70/080/sprockets%2F24d3ce40ae5cc827a9183b1fb837e84e +0 -0
- data/test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353 +0 -0
- data/test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023 +0 -0
- data/test/dummy/tmp/cache/assets/D74/4C0/sprockets%2F64fdf30f75592d6e45fcfc45a48d20a2 +0 -0
- data/test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec +0 -0
- data/test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4 +0 -11772
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b +0 -0
- data/test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c +0 -0
- data/test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde +0 -0
- data/test/dummy/tmp/cache/assets/E09/850/sprockets%2F4bf497a38ecfef660b2f0ebb852d5e9c +0 -0
- data/test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f +0 -377
- data/test/dummy/tmp/cache/assets/E6F/A00/sprockets%2Fd32bcea45ea04a6aaee95b3aa840cbab +0 -0
data/test/unit/primo_ws_test.rb
CHANGED
@@ -1,144 +1,147 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class PrimoWSTest <
|
4
|
-
|
5
|
-
SEARCH_NS = {'search' => 'http://www.exlibrisgroup.com/xsd/jaguar/search'}
|
6
|
-
|
7
|
-
def setup
|
8
|
-
@primo_definition = YAML.load( %{
|
9
|
-
type: PrimoService
|
10
|
-
priority: 2 # After SFX, to get SFX metadata enhancement
|
11
|
-
status: active
|
12
|
-
base_url: http://bobcat.library.nyu.edu
|
13
|
-
vid: NYU
|
14
|
-
institution: NYU
|
15
|
-
holding_search_institution: NYU
|
16
|
-
holding_search_text: Search for this title in BobCat.
|
17
|
-
suppress_holdings: [ !ruby/regexp '/\$\$LBWEB/', !ruby/regexp '/\$\$LNWEB/', !ruby/regexp '/\$\$LTWEB/', !ruby/regexp '/\$\$LWEB/', !ruby/regexp '/\$\$1Restricted Internet Resources/' ]
|
18
|
-
ez_proxy: !ruby/regexp '/https\:\/\/ezproxy\.library\.nyu\.edu\/login\?url=/'
|
19
|
-
service_types:
|
20
|
-
- primo_source
|
21
|
-
- holding_search
|
22
|
-
- fulltext
|
23
|
-
- table_of_contents
|
24
|
-
- referent_enhance
|
25
|
-
- cover_image
|
26
|
-
})
|
3
|
+
class PrimoWSTest < ActiveSupport::TestCase
|
4
|
+
nyu_only_tests(self.name) do
|
27
5
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
def test_count_search_brief
|
85
|
-
ws = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
|
86
|
-
assert_equal("1", ws.response.at("//search:DOCSET", SEARCH_NS)["TOTALHITS"])
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_get_genre_discrepancy
|
90
|
-
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_problem_doc_id, @base_url)
|
91
|
-
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
92
|
-
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
93
|
-
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
94
|
-
assert_equal(@primo_test_problem_doc_id, ws.response.at("//pnx:control/pnx:recordid", PNX_NS).inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_xml(:indent => 5, :encoding => 'UTF-8')}")
|
95
|
-
assert_not_nil(ws.response.at("//pnx:display/pnx:availlibrary", PNX_NS).inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_xml(:indent => 5, :encoding => 'UTF-8')}")
|
96
|
-
end
|
97
|
-
|
98
|
-
# Test GetRecord with invalid Primo doc id.
|
99
|
-
def test_get_bogus_record
|
100
|
-
assert_raise(RuntimeError) {
|
101
|
-
ws = Exlibris::PrimoWS::GetRecord.new(@primo_invalid_doc_id, @base_url)
|
102
|
-
}
|
103
|
-
end
|
104
|
-
|
105
|
-
# Test SearchBrief by isbn.
|
106
|
-
def test_isbn_search
|
107
|
-
ws = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
|
108
|
-
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
109
|
-
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
110
|
-
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
111
|
-
end
|
112
|
-
|
113
|
-
# Test SearchBrief by issn.
|
114
|
-
def test_issn_search
|
115
|
-
ws = Exlibris::PrimoWS::SearchBrief.new(@issn_search_params, @base_url)
|
116
|
-
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
117
|
-
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
118
|
-
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
119
|
-
end
|
120
|
-
|
121
|
-
# Test SearchBrief by title.
|
122
|
-
def test_title_search
|
123
|
-
ws = Exlibris::PrimoWS::SearchBrief.new(@title_search_params, @base_url)
|
124
|
-
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
125
|
-
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
126
|
-
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
127
|
-
end
|
6
|
+
PNX_NS = {'pnx' => 'http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib'}
|
7
|
+
SEARCH_NS = {'search' => 'http://www.exlibrisgroup.com/xsd/jaguar/search'}
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@primo_definition = YAML.load( %{
|
11
|
+
type: PrimoService
|
12
|
+
priority: 2 # After SFX, to get SFX metadata enhancement
|
13
|
+
status: active
|
14
|
+
base_url: http://bobcat.library.nyu.edu
|
15
|
+
vid: NYU
|
16
|
+
institution: NYU
|
17
|
+
holding_search_institution: NYU
|
18
|
+
holding_search_text: Search for this title in BobCat.
|
19
|
+
suppress_holdings: [ !ruby/regexp '/\$\$LBWEB/', !ruby/regexp '/\$\$LNWEB/', !ruby/regexp '/\$\$LTWEB/', !ruby/regexp '/\$\$LWEB/', !ruby/regexp '/\$\$1Restricted Internet Resources/' ]
|
20
|
+
ez_proxy: !ruby/regexp '/https\:\/\/ezproxy\.library\.nyu\.edu\/login\?url=/'
|
21
|
+
service_types:
|
22
|
+
- primo_source
|
23
|
+
- holding_search
|
24
|
+
- fulltext
|
25
|
+
- table_of_contents
|
26
|
+
- referent_enhance
|
27
|
+
- cover_image
|
28
|
+
})
|
29
|
+
|
30
|
+
@base_url = @primo_definition["base_url"]
|
31
|
+
@bogus_404_url = "http://library.nyu.edu/bogus"
|
32
|
+
@bogus_200_url = "http://library.nyu.edu"
|
33
|
+
@primo_test_doc_id = "nyu_aleph000062856"
|
34
|
+
@primo_invalid_doc_id = "thisIsNotAValidDocId"
|
35
|
+
@primo_test_problem_doc_id = "nyu_aleph000509288"
|
36
|
+
@isbn_search_params = {:isbn => "0143039008"}
|
37
|
+
@issn_search_params = {:issn => "0090-5720"}
|
38
|
+
@title_search_params = {:title => "Travels with My Aunt"}
|
39
|
+
@author_search_params = {:author => "Graham Greene"}
|
40
|
+
@title_author_genre_search_params = {:title => "Travels with My Aunt", :author => "Graham Greene", :genre => "Book"}
|
41
|
+
end
|
42
|
+
|
43
|
+
# def test_primo_ws_benchmarks
|
44
|
+
# Benchmark.bmbm do |results|
|
45
|
+
# results.report("PrimoWS::Get Record:") {
|
46
|
+
# (1..10).each {
|
47
|
+
# get_record = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @base_url)
|
48
|
+
# }
|
49
|
+
# }
|
50
|
+
# results.report("PrimoWS::SearchBrief by ISBN:") {
|
51
|
+
# (1..10).each {
|
52
|
+
# get_record = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
|
53
|
+
# }
|
54
|
+
# }
|
55
|
+
# results.report("PrimoWS::SearchBrief by title:") {
|
56
|
+
# (1..10).each {
|
57
|
+
# get_record = Exlibris::PrimoWS::SearchBrief.new(@title_search_params, @base_url)
|
58
|
+
# }
|
59
|
+
# }
|
60
|
+
# end
|
61
|
+
# end
|
128
62
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
63
|
+
def test_bogus_response
|
64
|
+
assert_raise(SOAP::HTTPStreamError) {
|
65
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @bogus_404_url)
|
66
|
+
}
|
67
|
+
assert_raise(SOAP::HTTPStreamError) {
|
68
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @bogus_200_url)
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
72
|
+
# Test GetRecord for a single Primo document.
|
73
|
+
def test_get_record
|
74
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @base_url)
|
75
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
76
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
77
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
78
|
+
assert_equal(@primo_test_doc_id, ws.response.at("//pnx:control/pnx:recordid", PNX_NS).inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_xml(:indent => 5, :encoding => 'UTF-8')}")
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_count_get_record
|
82
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @base_url)
|
83
|
+
assert_equal("1", ws.response.at("//search:DOCSET", SEARCH_NS)["TOTALHITS"])
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_count_search_brief
|
87
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
|
88
|
+
assert_equal("1", ws.response.at("//search:DOCSET", SEARCH_NS)["TOTALHITS"])
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_get_genre_discrepancy
|
92
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_problem_doc_id, @base_url)
|
93
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
94
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
95
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
96
|
+
assert_equal(@primo_test_problem_doc_id, ws.response.at("//pnx:control/pnx:recordid", PNX_NS).inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_xml(:indent => 5, :encoding => 'UTF-8')}")
|
97
|
+
assert_not_nil(ws.response.at("//pnx:display/pnx:availlibrary", PNX_NS).inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_xml(:indent => 5, :encoding => 'UTF-8')}")
|
98
|
+
end
|
99
|
+
|
100
|
+
# Test GetRecord with invalid Primo doc id.
|
101
|
+
def test_get_bogus_record
|
102
|
+
assert_raise(RuntimeError) {
|
103
|
+
ws = Exlibris::PrimoWS::GetRecord.new(@primo_invalid_doc_id, @base_url)
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
107
|
+
# Test SearchBrief by isbn.
|
108
|
+
def test_isbn_search
|
109
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
|
110
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
111
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
112
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
113
|
+
end
|
114
|
+
|
115
|
+
# Test SearchBrief by issn.
|
116
|
+
def test_issn_search
|
117
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@issn_search_params, @base_url)
|
118
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
119
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
120
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
121
|
+
end
|
122
|
+
|
123
|
+
# Test SearchBrief by title.
|
124
|
+
def test_title_search
|
125
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@title_search_params, @base_url)
|
126
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
127
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
128
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
129
|
+
end
|
130
|
+
|
131
|
+
# Test SearchBrief by author.
|
132
|
+
def test_author_search
|
133
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@author_search_params, @base_url)
|
134
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
135
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
136
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
137
|
+
end
|
138
|
+
|
139
|
+
# Test SearchBrief by title/author/genre.
|
140
|
+
def test_title_author_genre_search
|
141
|
+
ws = Exlibris::PrimoWS::SearchBrief.new(@title_author_genre_search_params, @base_url)
|
142
|
+
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
143
|
+
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
144
|
+
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
145
|
+
end
|
135
146
|
end
|
136
|
-
|
137
|
-
# Test SearchBrief by title/author/genre.
|
138
|
-
def test_title_author_genre_search
|
139
|
-
ws = Exlibris::PrimoWS::SearchBrief.new(@title_author_genre_search_params, @base_url)
|
140
|
-
assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
|
141
|
-
assert_instance_of( Nokogiri::XML::Document, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
|
142
|
-
assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
|
143
|
-
end
|
144
147
|
end
|
data/test/unit/service_test.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper'
|
2
2
|
|
3
|
-
class ServiceTest <
|
3
|
+
class ServiceTest < ActiveSupport::TestCase
|
4
|
+
fixtures :requests
|
4
5
|
|
5
6
|
# A service that does nothing!
|
6
7
|
class DummyService < Service
|
@@ -14,20 +15,5 @@ class ServiceTest < Test::Unit::TestCase
|
|
14
15
|
@umlaut_request = requests(:simple_request)
|
15
16
|
end
|
16
17
|
|
17
|
-
def test_write_to_session
|
18
|
-
|
19
|
-
|
20
|
-
writer = DummyService.new( @dummy_config )
|
21
|
-
writer.request = @umlaut_request
|
22
|
-
writer.update_session( { :one => "first", :two => "second" })
|
23
|
-
|
24
|
-
reader = DummyService.new( @dummy_config )
|
25
|
-
reader.request = @umlaut_request
|
26
|
-
session = reader.session()
|
27
|
-
|
28
|
-
assert_equal "first", session[:one]
|
29
|
-
assert_equal "second", session[:two]
|
30
|
-
|
31
|
-
end
|
32
18
|
|
33
19
|
end
|