Skip to content

Commit ca48064

Browse files
committed
test resumption tokens to exercise partial lists
1 parent d676c18 commit ca48064

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

lib/oai/provider/model.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module OAI::Provider
2929
# see the ResumptionToken class for more details.
3030
#
3131
class Model
32-
attr_reader :timestamp_field, :identifier_field
32+
attr_reader :timestamp_field, :identifier_field, :limit
3333

3434
def initialize(limit = nil, timestamp_field = 'updated_at', identifier_field = 'id')
3535
@limit = limit

test/provider/tc_functional_tokens.rb

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ class ResumptionTokenFunctionalTest < Test::Unit::TestCase
55

66
def setup
77
@provider = ComplexProvider.new
8+
@provider.model.instance_variable_set(:@limit, 120)
9+
end
10+
11+
def teardown
12+
@provider.model.instance_variable_set(:@limit, 100)
813
end
914

1015
def test_resumption_tokens
@@ -13,15 +18,15 @@ def test_resumption_tokens
1318
end
1419
doc = Document.new(@provider.list_records(:metadata_prefix => 'oai_dc'))
1520
assert_not_nil doc.elements["/OAI-PMH/ListRecords/resumptionToken"]
16-
assert_equal 101, doc.elements["/OAI-PMH/ListRecords"].to_a.size
21+
assert_equal (@provider.model.limit + 1), doc.elements["/OAI-PMH/ListRecords"].to_a.size
1722
token = doc.elements["/OAI-PMH/ListRecords/resumptionToken"].text
1823
doc = Document.new(@provider.list_records(:resumption_token => token))
1924
assert_not_nil doc.elements["/OAI-PMH/ListRecords/resumptionToken"]
20-
assert_equal 101, doc.elements["/OAI-PMH/ListRecords"].to_a.size
25+
assert_equal (@provider.model.limit + 1), doc.elements["/OAI-PMH/ListRecords"].to_a.size
2126
end
2227

2328
def test_from_and_until_with_resumption_tokens
24-
# Should return 300 records broken into 3 groups of 100.
29+
# Should return 300 records broken into 3 groups of 120, 120, and 60.
2530
assert_nothing_raised do
2631
Document.new(@provider.list_records(:metadata_prefix => 'oai_dc'))
2732
end
@@ -31,17 +36,19 @@ def test_from_and_until_with_resumption_tokens
3136
:from => Time.parse("September 1 2004"),
3237
:until => Time.parse("November 30 2004"))
3338
)
34-
assert_equal 101, doc.elements["/OAI-PMH/ListRecords"].to_a.size
39+
assert_equal (@provider.model.limit + 1), doc.elements["/OAI-PMH/ListRecords"].to_a.size
40+
assert_not_nil doc.elements["/OAI-PMH/ListRecords/resumptionToken"]
3541
token = doc.elements["/OAI-PMH/ListRecords/resumptionToken"].text
3642

3743
doc = Document.new(@provider.list_records(:resumption_token => token))
3844
assert_not_nil doc.elements["/OAI-PMH/ListRecords/resumptionToken"]
39-
assert_equal 101, doc.elements["/OAI-PMH/ListRecords"].to_a.size
45+
assert_equal (@provider.model.limit + 1), doc.elements["/OAI-PMH/ListRecords"].to_a.size
4046
token = doc.elements["/OAI-PMH/ListRecords/resumptionToken"].text
4147

4248
doc = Document.new(@provider.list_records(:resumption_token => token))
4349
assert_nil doc.elements["/OAI-PMH/ListRecords/resumptionToken"]
44-
assert_equal 100, doc.elements["/OAI-PMH/ListRecords"].to_a.size
50+
assert_equal (300 % @provider.model.limit), doc.elements["/OAI-PMH/ListRecords"].to_a.size
51+
token = doc.elements["/OAI-PMH/ListRecords/resumptionToken"].text
4552
end
4653

4754
end

0 commit comments

Comments
 (0)