blob: f0b9b5e5a766e39fcd9e94d6299c4a69d39f23b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
require "chef_zero/solr/solr_parser"
require "chef_zero/solr/solr_doc"
describe ChefZero::Solr::SolrParser do
let(:all_docs) do
docs = []
[{ "foo" => "a" },
{ "foo" => "d" }].each_with_index do |h, i|
docs.push ChefZero::Solr::SolrDoc.new(h, i)
end
docs
end
def search_for(query)
q = ChefZero::Solr::SolrParser.new(query).parse
all_docs.select { |doc| q.matches_doc?(doc) }
end
it "handles terms" do
search_for("foo:d").size.should eq(1)
end
it "handles ranges" do
search_for("foo:[a TO c]").size.should eq(1)
end
it "handles -" do
search_for("-foo:a").size.should eq(1)
end
it "handles wildcard ranges" do
search_for("foo:[* TO c]").size.should eq(1)
search_for("foo:[c TO *]").size.should eq(1)
search_for("foo:[* TO *]").size.should eq(2)
end
end
|