Skip to content
This repository has been archived by the owner on Jun 30, 2018. It is now read-only.

Search with version should set the version value in options #190

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions lib/tire/search.rb
Expand Up @@ -69,6 +69,10 @@ def fields(*fields)
self
end

def version(value)
@version = value
end

def perform
@response = Configuration.client.get(self.url, self.to_json)
if @response.failure?
Expand Down Expand Up @@ -97,6 +101,7 @@ def to_hash
request.update( { :size => @size } ) if @size
request.update( { :from => @from } ) if @from
request.update( { :fields => @fields } ) if @fields
request.update( { :version => @version } ) if @version
request
end

Expand Down
70 changes: 70 additions & 0 deletions test/integration/query_return_version_test.rb
@@ -0,0 +1,70 @@
require 'test_helper'

module Tire

class DslVersionIntegrationTest < Test::Unit::TestCase
include Test::Integration

context "DSL Version" do

setup do
Tire.index 'articles-test-ids' do
delete
create

store :id => 1, :title => 'One'
store :id => 2, :title => 'Two'

refresh
end
end

teardown { Tire.index('articles-test-ids').delete }

should "returns actual version (non-nil) value for records when 'version' is true" do
s = Tire.search('articles-test-ids') do
version true
query { string 'One' }
end

assert_equal 1, s.results.count

document = s.results.first
assert_equal 'One', document.title
assert_equal 1, document._version.to_i

end

should "returns a nil version field when 'version' is false" do
s = Tire.search('articles-test-ids') do
version false
query { string 'One' }
end

assert_equal 1, s.results.count

document = s.results.first
assert_equal 'One', document.title
assert_equal nil, document._version

end

should "returns a nil version field when 'version' is not included" do
s = Tire.search('articles-test-ids') do
query { string 'One' }
end

assert_equal 1, s.results.count

document = s.results.first
assert_equal 'One', document.title
assert_equal nil, document._version

end

end

end

end

12 changes: 12 additions & 0 deletions test/unit/search_test.rb
Expand Up @@ -262,6 +262,18 @@ def foo; 'bar'; end

end

context "with version" do

should "set the version value in options" do
s = Search::Search.new('index') do
version true
end
hash = MultiJson.decode( s.to_json )
assert_equal true, hash['version']
end

end

context "with from/size" do

should "set the values in request" do
Expand Down