spec/mongo/query_cache_spec.rb in mongo-2.17.1 vs spec/mongo/query_cache_spec.rb in mongo-2.17.2
- old
+ new
@@ -189,19 +189,86 @@
it 'returns the caching cursor' do
expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
end
end
+ context 'when the query has a limit but negative' do
+ let(:limit) { -5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
context 'when the query has no limit' do
let(:limit) { nil }
it 'returns the caching cursor' do
expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
end
end
+
+ context 'when the query has a 0 limit' do
+ let(:limit) { 0 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
end
+ context 'when that entry has a 0 limit' do
+ let(:caching_cursor_options) do
+ {
+ namespace: 'db.coll',
+ selector: { field: 'value' },
+ limit: 0,
+ }
+ end
+
+ let(:query_options) do
+ caching_cursor_options.merge(limit: limit)
+ end
+
+ before do
+ allow(view).to receive(:limit) { 0 }
+ end
+
+ context 'when the query has a limit' do
+ let(:limit) { 5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+ context 'when the query has a limit but negative' do
+ let(:limit) { -5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+
+ context 'when the query has no limit' do
+ let(:limit) { nil }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+ context 'when the query has a 0 limit' do
+ let(:limit) { 0 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+ end
+
context 'when that entry has a limit' do
let(:caching_cursor_options) do
{
namespace: 'db.coll',
selector: { field: 'value' },
@@ -223,27 +290,125 @@
it 'returns the caching cursor' do
expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
end
end
+ context 'and the new query has a smaller limit but negative' do
+ let(:limit) { -4 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
context 'and the new query has a larger limit' do
let(:limit) { 6 }
it 'returns nil' do
expect(Mongo::QueryCache.get(**query_options)).to be_nil
end
end
+ context 'and the new query has a larger limit but negative' do
+ let(:limit) { -6 }
+
+ it 'returns nil' do
+ expect(Mongo::QueryCache.get(**query_options)).to be_nil
+ end
+ end
+
context 'and the new query has the same limit' do
let(:limit) { 5 }
it 'returns the caching cursor' do
expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
end
end
+ context 'and the new query has the same limit but negative' do
+ let(:limit) { -5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
context 'and the new query has no limit' do
let(:limit) { nil }
+
+ it 'returns nil' do
+ expect(Mongo::QueryCache.get(**query_options)).to be_nil
+ end
+ end
+
+ context 'and the new query has a 0 limit' do
+ let(:limit) { 0 }
+
+ it 'returns nil' do
+ expect(Mongo::QueryCache.get(**query_options)).to be_nil
+ end
+ end
+ end
+
+ context 'when that entry has a negative limit' do
+ let(:caching_cursor_options) do
+ {
+ namespace: 'db.coll',
+ selector: { field: 'value' },
+ limit: -5,
+ }
+ end
+
+ let(:query_options) do
+ caching_cursor_options.merge(limit: limit)
+ end
+
+ before do
+ allow(view).to receive(:limit) { -5 }
+ end
+
+ context 'and the new query has a smaller limit' do
+ let(:limit) { 4 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+ context 'and the new query has a larger limit' do
+ let(:limit) { 6 }
+
+ it 'returns nil' do
+ expect(Mongo::QueryCache.get(**query_options)).to be_nil
+ end
+ end
+
+ context 'and the new query has the same negative limit' do
+ let(:limit) { -5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+ context 'and the new query has the same positive limit' do
+ let(:limit) { 5 }
+
+ it 'returns the caching cursor' do
+ expect(Mongo::QueryCache.get(**query_options)).to eq(caching_cursor)
+ end
+ end
+
+ context 'and the new query has no limit' do
+ let(:limit) { nil }
+
+ it 'returns nil' do
+ expect(Mongo::QueryCache.get(**query_options)).to be_nil
+ end
+ end
+
+ context 'and the new query has a 0 limit' do
+ let(:limit) { 0 }
it 'returns nil' do
expect(Mongo::QueryCache.get(**query_options)).to be_nil
end
end