rspec-solr 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,7 +50,8 @@
50
50
  * ("fldname" => ["val1", /val2_regex/, "val3"])
51
51
  NOTE: all of the Array values must be present for the fld in a single Solr document
52
52
  should_not for Array implies NONE of the values should be present in a single document
53
- TODO:
53
+
54
+ More Ideas (TODO):
54
55
  * include_title("val") (i.e. include_anyFieldName("val") )
55
56
 
56
57
  ==== Specifying Multiple Documents
@@ -144,22 +145,25 @@ TODO: Potential Syntax:
144
145
  * rspec-solr_resp_hash1.size.should == rspec-solr_resp_hash2.size
145
146
  * rspec-solr_resp_hash1.size.should be_within(delta).of(rspec-solr_resp_hash2.size)
146
147
 
147
- == TODO: MATCHING FACET VALUES IN RESPONSE
148
-
149
- NOTE: this is about the facet values returned in THIS response
148
+ == MATCHING FACET VALUES IN RESPONSE
150
149
 
151
- === Specifying Facet Values
152
- * facet(:format => "Book")
153
- * facets(:format => ["Image", "Map"])
154
- * facets with arrarr and without
155
-
156
- === Potential Syntax
157
- rspec-solr_resp_hash.should include_facet
150
+ NOTE: this is about the facet counts returned in THIS response
158
151
 
159
152
  === Matchers
160
- * include_facet().before_facet()
161
- * include_facets().before_facet()
162
- * include_facet().before_facets()
163
- * include_facets().before_facets()
164
-
153
+ * have_facet_field()
154
+ * have_facet_field().with_value()
165
155
 
156
+ === Usage
157
+ * rspec-solr_resp_hash.should have_facet_field("author")
158
+ * rspec-solr_resp_hash.should have_facet_field("author").with_value("Steinbeck, John")
159
+
160
+ === TODO:
161
+ * facets with arrarr and without (Solr option to get better facet formatting)
162
+ * have_facet_field().with_value().with_count()
163
+ * more ideas
164
+ ** facet(:format => "Book")
165
+ ** facets(:format => ["Image", "Map"])
166
+ ** include_facet().before_facet()
167
+ ** include_facets().before_facet()
168
+ ** include_facet().before_facets()
169
+ ** include_facets().before_facets()
@@ -31,7 +31,7 @@ See MATCHERS.rdoc for syntax of supported expectations.
31
31
  end
32
32
 
33
33
  it "q of 'Two3' should have excellent results", :jira => 'VUF-386' do
34
- resp = solr_resp_doc_ids_only({'q'=>'Two3'})
34
+ resp = solr_response({'q'=>'Two3', 'fl'=>'id', 'facet'=>false})
35
35
  resp.should have_at_most(10).documents
36
36
  resp.should include("5732752").as_first_result
37
37
  resp.should include("8564713").in_first(2).results
@@ -41,7 +41,7 @@ See MATCHERS.rdoc for syntax of supported expectations.
41
41
  end
42
42
 
43
43
  it "Traditional Chinese chars 三國誌 should get the same results as simplified chars 三国志" do
44
- resp = solr_resp_doc_ids_only({'q'=>'三國誌'})
44
+ resp = solr_response({'q'=>'三國誌', 'fl'=>'id', 'facet'=>false})
45
45
  resp.should have_at_least(240).documents
46
46
  resp.should have_the_same_number_of_results_as(solr_resp_doc_ids_only({'q'=>'三国志'}))
47
47
  end
@@ -101,14 +101,6 @@ Do a one time setup of Solr connection, and methods to make it easier to make de
101
101
  puts "Solr URL: #{@@solr.uri}"
102
102
  end
103
103
 
104
- # send a GET request to the default Solr request handler with the indicated Solr parameters
105
- # @param solr_params [Hash] the key/value pairs to be sent to Solr as HTTP parameters, in addition to
106
- # those to get only id fields and no facets in the response
107
- # @return [RSpecSolr::SolrResponseHash] object for rspec-solr testing the Solr response
108
- def solr_resp_doc_ids_only(solr_params)
109
- solr_response(solr_params.merge(@@doc_ids_only))
110
- end
111
-
112
104
  private
113
105
 
114
106
  # send a GET request to the indicated Solr request handler with the indicated Solr parameters
@@ -118,6 +110,17 @@ Do a one time setup of Solr connection, and methods to make it easier to make de
118
110
  def solr_response(solr_params, req_handler='select')
119
111
  RSpecSolr::SolrResponseHash.new(@@solr.send_and_receive(req_handler, {:method => :get, :params => solr_params}))
120
112
  end
113
+
114
+ ===== 4a. a little more magic
115
+ You might want to add code such as that below to your spec_helper - it can help keep your solr responses small, which makes for easier debugging.
116
+
117
+ # send a GET request to the default Solr request handler with the indicated Solr parameters
118
+ # @param solr_params [Hash] the key/value pairs to be sent to Solr as HTTP parameters, in addition to
119
+ # those to get only id fields and no facets in the response
120
+ # @return [RSpecSolr::SolrResponseHash] object for rspec-solr testing the Solr response
121
+ def solr_resp_doc_ids_only(solr_params)
122
+ solr_response(solr_params.merge(@@doc_ids_only))
123
+ end
121
124
 
122
125
  # use these Solr HTTP params to reduce the size of the Solr responses
123
126
  # response documents will only have id fields, and there will be no facets in the response
@@ -146,5 +149,9 @@ Please share yours!
146
149
  5. Create new Pull Request
147
150
 
148
151
  == Releases
149
- - in progress ... 0.1.1 improve README
152
+ - <b>0.2.0</b> add facet support have_facet_field(fld_name).with_value(fld_value)
153
+ - <b>0.1.4</b> fix regex match to work with in_each_of_first(n)
154
+ - <b>0.1.3</b> added include().in_each_of_first(n)
155
+ - <b>0.1.2</b> added document matching via regex for field values
156
+ - <b>0.1.1</b> improve README
150
157
  - <b>0.1.0</b> Initial release
@@ -1,6 +1,7 @@
1
1
  require "rspec-solr/solr_response_hash"
2
2
  require "rspec-solr/compare_num_docs_matcher"
3
3
  require "rspec-solr/have_documents_matcher"
4
+ require "rspec-solr/have_facet_field_matcher"
4
5
  require "rspec-solr/include_documents_matcher"
5
6
 
6
7
  module RSpecSolr::Matchers
@@ -0,0 +1,69 @@
1
+ # Custom RSpec Matchers for Solr responses
2
+ module RSpecSolr::Matchers
3
+
4
+ # Determine if the receiver has the facet_field
5
+ def have_facet_field
6
+ # Placeholder method for documentation purposes;
7
+ # the actual method is defined using RSpec's matcher DSL
8
+ end
9
+
10
+ # this is the lambda used to determine if the receiver (a Solr response object) has non-empty values for the facet field
11
+ # as the expected RSpecSolr::SolrResponseHash
12
+ def self.have_facet_field_body
13
+ lambda { |expected_facet_field_name|
14
+
15
+ match_for_should do |solr_resp|
16
+ if @facet_val
17
+ solr_resp.has_facet_field_with_value?(expected_facet_field_name, @facet_val)
18
+ else
19
+ solr_resp.has_facet_field?(expected_facet_field_name)
20
+ end
21
+ end
22
+
23
+ match_for_should_not do |solr_resp|
24
+ # we should fail if we are looking for a specific facet value but the facet field isn't present in the response
25
+ @has_field = solr_resp.has_facet_field?(expected_facet_field_name)
26
+ if @facet_val
27
+ if @has_field
28
+ !solr_resp.has_facet_field_with_value?(expected_facet_field_name, @facet_val)
29
+ else
30
+ false
31
+ end
32
+ else
33
+ !@has_field
34
+ end
35
+ end
36
+
37
+ failure_message_for_should do |solr_resp|
38
+ if @facet_val
39
+ "expected facet field #{expected_facet_field_name} with value #{@facet_val} in Solr response: #{solr_resp}"
40
+ else
41
+ "expected facet field #{expected_facet_field_name} with values in Solr response: #{solr_resp}"
42
+ end
43
+ end
44
+
45
+ failure_message_for_should_not do |solr_resp|
46
+ if @facet_val
47
+ if @has_field
48
+ "expected facet field #{expected_facet_field_name} not to have value #{@facet_val} in Solr response: #{solr_resp}"
49
+ else
50
+ "expected facet field #{expected_facet_field_name} in Solr response: #{solr_resp}"
51
+ end
52
+ else
53
+ "expected no #{expected_facet_field_name} facet field in Solr response: #{solr_resp}"
54
+ end
55
+ end
56
+
57
+ chain :with_value do |val|
58
+ @facet_val = val
59
+ end
60
+
61
+ diffable
62
+ }
63
+ end
64
+
65
+ # Determine if the receiver (a Solr response object) has the same number of total documents as the expected RSpecSolr::SolrResponseHash
66
+ # NOTE: this is about the TOTAL number of Solr documents matching the queries, not solely the number of docs in THESE responses
67
+ RSpec::Matchers.define :have_facet_field, &have_facet_field_body
68
+
69
+ end
@@ -37,11 +37,11 @@ module RSpec
37
37
  assert_ivars :@actual, :@expected
38
38
  # FIXME: DRY up these messages across cases and across should and should_not
39
39
  if @before_expected
40
- "expected #{@actual.inspect} to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} before #{doc_label_str(@before_expected)} matching #{@before_expected.inspect}"
40
+ "expected response to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} before #{doc_label_str(@before_expected)} matching #{@before_expected.inspect}: #{@actual.inspect} "
41
41
  elsif @min_for_last_matching_doc_pos
42
42
  "expected each of the first #{@min_for_last_matching_doc_pos.to_s} documents to #{name_to_sentence}#{expected_to_sentence} in response: #{@actual.inspect}"
43
43
  elsif @max_doc_position
44
- "expected #{@actual.inspect} to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} in first #{@max_doc_position.to_s} results"
44
+ "expected response to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} in first #{@max_doc_position.to_s} results: #{@actual.inspect}"
45
45
  else
46
46
  super
47
47
  end
@@ -51,11 +51,11 @@ module RSpec
51
51
  def failure_message_for_should_not
52
52
  assert_ivars :@actual, :@expected
53
53
  if @before_expected
54
- "expected #{@actual.inspect} not to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} before #{doc_label_str(@before_expected)} matching #{@before_expected.inspect}"
54
+ "expected response not to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} before #{doc_label_str(@before_expected)} matching #{@before_expected.inspect}: #{@actual.inspect} "
55
55
  elsif @min_for_last_matching_doc_pos
56
56
  "expected some of the first #{@min_for_last_matching_doc_pos.to_s} documents not to #{name_to_sentence}#{expected_to_sentence} in response: #{@actual.inspect}"
57
57
  elsif @max_doc_position
58
- "expected #{@actual.inspect} not to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} in first #{@max_doc_position.to_s} results"
58
+ "expected response not to #{name_to_sentence} #{doc_label_str(@expected)}#{expected_to_sentence} in first #{@max_doc_position.to_s} results: #{@actual.inspect}"
59
59
  else
60
60
  super
61
61
  end
@@ -74,7 +74,7 @@ class RSpecSolr
74
74
  # a doc's fld values can be a String or an Array
75
75
  case exp_val
76
76
  when Regexp
77
- return true if Array(doc[exp_fname]).any? { |val| val =~ exp_val }
77
+ Array(doc[exp_fname]).any? { |val| val =~ exp_val }
78
78
  else
79
79
  Array(doc[exp_fname]).include?(exp_val)
80
80
  end
@@ -133,6 +133,29 @@ class RSpecSolr
133
133
  (self['response'] ? "'response' => {'numFound' => #{self['response']['numFound']}, ...}" : "" ) +
134
134
  " ... }"
135
135
  end
136
+
137
+ # @return true if the Solr response contains the facet field indicated and the facet field has some values; return false otherwise
138
+ def has_facet_field_with_value?(ff_name, facet_val = nil)
139
+ if self["facet_counts"] && self["facet_counts"]["facet_fields"] && self["facet_counts"]["facet_fields"][ff_name]
140
+ if facet_val
141
+ val_count_array = self["facet_counts"]["facet_fields"][ff_name]
142
+ return val_count_array.each_slice(2).find { |val_count| val_count[0] == facet_val}
143
+ else
144
+ self["facet_counts"]["facet_fields"][ff_name].size > 0
145
+ end
146
+ else
147
+ false
148
+ end
149
+ end
150
+
151
+ # @return true if the Solr response contains the facet field indicated and the facet field has some values; return false otherwise
152
+ def has_facet_field?(ff_name)
153
+ if self["facet_counts"] && self["facet_counts"]["facet_fields"] && self["facet_counts"]["facet_fields"][ff_name]
154
+ self["facet_counts"]["facet_fields"][ff_name]
155
+ else
156
+ false
157
+ end
158
+ end
136
159
 
137
160
  private
138
161
 
@@ -1,3 +1,3 @@
1
1
  class RSpecSolr
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+ require 'rspec-solr'
3
+
4
+ describe RSpecSolr do
5
+
6
+ # fixtures below
7
+ context "should have_facet_field()" do
8
+ it "passes if response has the facet field" do
9
+ @solr_resp_w_facets.should have_facet_field('ff1')
10
+ @solr_resp_w_facets.should have_facet_field('ff2')
11
+ end
12
+ it "passes if response has facet field but no values" do
13
+ @solr_resp_w_facets.should have_facet_field('ff3')
14
+ end
15
+ it "fails if response does not have the facet field" do
16
+ lambda {
17
+ @solr_resp_w_facets.should have_facet_field('ff4')
18
+ }.should fail_matching("expected facet field ff4 with values in Solr response: ")
19
+ end
20
+ end
21
+
22
+ context "should_NOT have_facet_field()" do
23
+ it "fails if response has the facet field" do
24
+ lambda {
25
+ @solr_resp_w_facets.should_not have_facet_field('ff1')
26
+ }.should fail_matching("expected no ff1 facet field in Solr response: ")
27
+ lambda {
28
+ @solr_resp_w_facets.should_not have_facet_field('ff2')
29
+ }.should fail_matching("expected no ff2 facet field in Solr response: ")
30
+ end
31
+ it "fails if response has facet field but no values" do
32
+ lambda {
33
+ @solr_resp_w_facets.should_not have_facet_field('ff3')
34
+ }.should fail_matching("expected no ff3 facet field in Solr response: ")
35
+ end
36
+ it "passes if response does not have the facet field" do
37
+ @solr_resp_w_facets.should_not have_facet_field('ff4')
38
+ end
39
+ end
40
+
41
+ context "should have_facet_field().with_value()" do
42
+ it "passes if response has the facet field with the value" do
43
+ @solr_resp_w_facets.should have_facet_field('ff1').with_value('val12')
44
+ end
45
+ it "fails if response has the facet field without the value" do
46
+ lambda {
47
+ @solr_resp_w_facets.should have_facet_field('ff1').with_value('val22')
48
+ }.should fail_matching("expected facet field ff1 with value val22 in Solr response")
49
+ end
50
+ it "fails if response has facet field but no values" do
51
+ lambda {
52
+ @solr_resp_w_facets.should have_facet_field('ff3').with_value('val')
53
+ }.should fail_matching("expected facet field ff3 with value val in Solr response")
54
+ end
55
+ it "fails if response does not have the facet field" do
56
+ lambda {
57
+ @solr_resp_w_facets.should have_facet_field('ff4').with_value('val')
58
+ }.should fail_matching("expected facet field ff4 with value val in Solr response")
59
+ end
60
+
61
+ end
62
+ context "should_NOT have_facet_field().with_value()" do
63
+ it "fails if response has the facet field with the value" do
64
+ lambda {
65
+ @solr_resp_w_facets.should_not have_facet_field('ff1').with_value('val12')
66
+ }.should fail_matching("expected facet field ff1 not to have value val12 in Solr response")
67
+ end
68
+ it "passes if response has the facet field without the value" do
69
+ @solr_resp_w_facets.should_not have_facet_field('ff1').with_value('val22')
70
+ end
71
+ it "passes if response has facet field but no values" do
72
+ @solr_resp_w_facets.should_not have_facet_field('ff3').with_value('val')
73
+ end
74
+ it "fails if response does not have the facet field" do
75
+ lambda {
76
+ @solr_resp_w_facets.should_not have_facet_field('ff4').with_value('val')
77
+ }.should fail_matching("expected facet field ff4 in Solr response")
78
+ end
79
+ end
80
+
81
+
82
+ before(:all) do
83
+ @solr_resp_w_facets = RSpecSolr::SolrResponseHash.new(
84
+ { "response" =>
85
+ { "numFound" => 5,
86
+ "start" => 0,
87
+ "docs" => []},
88
+ "facet_counts" =>
89
+ { "facet_queries" => {},
90
+ "facet_fields" => {
91
+ 'ff1' => ['val11', 111, 'val12', 22, 'val13', 3],
92
+ 'ff2' => ['val21', 10, 'val22', 5, 'val23', 1],
93
+ 'ff3' => []
94
+ },
95
+ 'facet_dates'=>{},
96
+ 'facet_ranges'=>{}
97
+ }
98
+ })
99
+ end
100
+
101
+ end
@@ -20,28 +20,28 @@ describe RSpecSolr do
20
20
  it "fails when docs aren't in expected order" do
21
21
  lambda {
22
22
  @solr_resp_5_docs.should include("222").before("fld2"=>"val2")
23
- }.should fail_matching('} to include document "222" before document matching {"fld2"=>"val2"}')
23
+ }.should fail_matching('expected response to include document "222" before document matching {"fld2"=>"val2"}')
24
24
  lambda {
25
25
  @solr_resp_5_docs.should include("111", "444").before([{"id"=>"333"}, {"id"=>"555"}])
26
- }.should fail_matching('} to include documents "111" and "444" before documents matching [{"id"=>"333"}, {"id"=>"555"}]')
26
+ }.should fail_matching('expected response to include documents "111" and "444" before documents matching [{"id"=>"333"}, {"id"=>"555"}]')
27
27
  lambda {
28
28
  @solr_resp_5_docs.should include([{"id"=>"222"}, {"id"=>"444"}]).before([{"id"=>"333"}, {"id"=>"555"}])
29
- }.should fail_matching('} to include documents [{"id"=>"222"}, {"id"=>"444"}] before documents matching [{"id"=>"333"}, {"id"=>"555"}]')
29
+ }.should fail_matching('expected response to include documents [{"id"=>"222"}, {"id"=>"444"}] before documents matching [{"id"=>"333"}, {"id"=>"555"}]')
30
30
  end
31
31
  it "fails when it can't find a doc matching first argument(s)" do
32
32
  lambda {
33
33
  @solr_resp_5_docs.should include("not_there").before("555")
34
- }.should fail_matching('} to include document "not_there" before document matching "555"')
34
+ }.should fail_matching('expected response to include document "not_there" before document matching "555"')
35
35
  end
36
36
  it "fails when it can't find a doc matching second argument(s)" do
37
37
  lambda {
38
38
  @solr_resp_5_docs.should include("222").before("not_there")
39
- }.should fail_matching('} to include document "222" before document matching "not_there"')
39
+ }.should fail_matching('expected response to include document "222" before document matching "not_there"')
40
40
  end
41
41
  it "fails when it can't find docs matching first or second argument(s)" do
42
42
  lambda {
43
43
  @solr_resp_5_docs.should include("not_there").before("still_not_there")
44
- }.should fail_matching('} to include document "not_there" before document matching "still_not_there"')
44
+ }.should fail_matching('expected response to include document "not_there" before document matching "still_not_there"')
45
45
  end
46
46
 
47
47
  end # should include().before()
@@ -15,7 +15,7 @@ describe RSpecSolr do
15
15
  it "fails when include arg is String but doc comes too late" do
16
16
  lambda {
17
17
  @solr_resp_5_docs.should include("222").in_first(1)
18
- }.should fail_matching('} to include document "222" in first 1')
18
+ }.should fail_matching('expected response to include document "222" in first 1')
19
19
  end
20
20
  it "passes when include arg is Hash and doc meets criteria" do
21
21
  @solr_resp_5_docs.should include("fld" => ["val1", "val2", "val3"]).in_first(4)
@@ -23,7 +23,7 @@ describe RSpecSolr do
23
23
  it "fails when include arg is Hash but doc comes too late" do
24
24
  lambda {
25
25
  @solr_resp_5_docs.should include("fld" => ["val1", "val2", "val3"]).in_first(2)
26
- }.should fail_matching('} to include document {"fld"=>["val1", "val2", "val3"]} in first 2')
26
+ }.should fail_matching('expected response to include document {"fld"=>["val1", "val2", "val3"]} in first 2')
27
27
  end
28
28
  it "passes when include arg is Array and all docs meet criteria" do
29
29
  @solr_resp_5_docs.should include(["111", "222"]).in_first(2)
@@ -32,21 +32,21 @@ describe RSpecSolr do
32
32
  it "fails when include arg is Array but at least one doc comes too late" do
33
33
  lambda {
34
34
  @solr_resp_5_docs.should include(["111", "444"]).in_first(2)
35
- }.should fail_matching('} to include documents ["111", "444"] in first 2')
35
+ }.should fail_matching('expected response to include documents ["111", "444"] in first 2')
36
36
  lambda {
37
37
  @solr_resp_5_docs.should include(["333", {"fld2"=>"val2"}]).in_first(2)
38
- }.should fail_matching('} to include documents ["333", {"fld2"=>"val2"}] in first 2')
38
+ }.should fail_matching('expected response to include documents ["333", {"fld2"=>"val2"}] in first 2')
39
39
  end
40
40
  it "fails when there is no matching result" do
41
41
  lambda {
42
42
  @solr_resp_5_docs.should include("666").in_first(6)
43
- }.should fail_matching('} to include document "666" in first 6')
43
+ }.should fail_matching('expected response to include document "666" in first 6')
44
44
  lambda {
45
45
  @solr_resp_5_docs.should include("fld"=>"not there").in_first(3)
46
- }.should fail_matching('} to include document {"fld"=>"not there"} in first 3')
46
+ }.should fail_matching('expected response to include document {"fld"=>"not there"} in first 3')
47
47
  lambda {
48
48
  @solr_resp_5_docs.should include("666", "777").in_first(6)
49
- }.should fail_matching('} to include documents "666" and "777" in first 6')
49
+ }.should fail_matching('expected response to include documents "666" and "777" in first 6')
50
50
  end
51
51
  end # should include().in_first(n)
52
52
 
@@ -95,7 +95,7 @@ describe RSpecSolr do
95
95
  it "fails when matching document is not first" do
96
96
  lambda {
97
97
  @solr_resp_5_docs.should include("fld"=>["val1", "val2", "val3"]).in_first
98
- }.should fail_matching('} to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
98
+ }.should fail_matching('expected response to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
99
99
  end
100
100
  end
101
101
  context "should_NOT include().in_first" do
@@ -120,7 +120,7 @@ describe RSpecSolr do
120
120
  it "fails when document(s) don't meet criteria" do
121
121
  lambda {
122
122
  @solr_resp_5_docs.should include("fld"=>["val1", "val2", "val3"]).in_first.result
123
- }.should fail_matching('} to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
123
+ }.should fail_matching('expected response to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
124
124
  end
125
125
  end
126
126
  context "should_NOT #include().in_first(n).allowed_chained.names" do
@@ -153,15 +153,15 @@ describe RSpecSolr do
153
153
  it "fails when a document meets the criteria but is not the first" do
154
154
  lambda {
155
155
  @solr_resp_5_docs.should include("222").as_first
156
- }.should fail_matching('} to include document "222" in first 1')
156
+ }.should fail_matching('expected response to include document "222" in first 1')
157
157
  lambda {
158
158
  @solr_resp_5_docs.should include("fld" => ["val1", "val2", "val3"]).as_first
159
- }.should fail_matching('} to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
159
+ }.should fail_matching('expected response to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
160
160
  end
161
161
  it "fails when there is no matching result" do
162
162
  lambda {
163
163
  @solr_resp_5_docs.should include("96").as_first
164
- }.should fail_matching('} to include document "96" in first 1')
164
+ }.should fail_matching('expected response to include document "96" in first 1')
165
165
  end
166
166
  end
167
167
  context "should_NOT include().as_first" do
@@ -197,7 +197,7 @@ describe RSpecSolr do
197
197
  it "fails when document(s) don't meet criteria" do
198
198
  lambda {
199
199
  @solr_resp_5_docs.should include("fld"=>["val1", "val2", "val3"]).as_first.result
200
- }.should fail_matching ('} to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
200
+ }.should fail_matching ('expected response to include document {"fld"=>["val1", "val2", "val3"]} in first 1')
201
201
  end
202
202
  end
203
203
  context "should_NOT #include().as_first(n).any_chained.names" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-solr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-22 00:00:00.000000000 Z
13
+ date: 2012-10-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -147,6 +147,7 @@ files:
147
147
  - lib/rspec-solr.rb
148
148
  - lib/rspec-solr/compare_num_docs_matcher.rb
149
149
  - lib/rspec-solr/have_documents_matcher.rb
150
+ - lib/rspec-solr/have_facet_field_matcher.rb
150
151
  - lib/rspec-solr/include_documents_matcher.rb
151
152
  - lib/rspec-solr/solr_response_hash.rb
152
153
  - lib/rspec-solr/version.rb
@@ -156,6 +157,7 @@ files:
156
157
  - rspec-solr.gemspec
157
158
  - spec/comparing_num_docs_in_2_resp_spec.rb
158
159
  - spec/have_documents_spec.rb
160
+ - spec/have_facet_field_spec.rb
159
161
  - spec/include_before_spec.rb
160
162
  - spec/include_document_spec.rb
161
163
  - spec/include_in_each_of_first_n_spec.rb
@@ -178,7 +180,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
178
180
  version: '0'
179
181
  segments:
180
182
  - 0
181
- hash: 3247708301967459464
183
+ hash: -4309993741497496154
182
184
  required_rubygems_version: !ruby/object:Gem::Requirement
183
185
  none: false
184
186
  requirements:
@@ -187,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
189
  version: '0'
188
190
  segments:
189
191
  - 0
190
- hash: 3247708301967459464
192
+ hash: -4309993741497496154
191
193
  requirements: []
192
194
  rubyforge_project:
193
195
  rubygems_version: 1.8.24
@@ -197,6 +199,7 @@ summary: RSpec custom matchers for Solr response objects
197
199
  test_files:
198
200
  - spec/comparing_num_docs_in_2_resp_spec.rb
199
201
  - spec/have_documents_spec.rb
202
+ - spec/have_facet_field_spec.rb
200
203
  - spec/include_before_spec.rb
201
204
  - spec/include_document_spec.rb
202
205
  - spec/include_in_each_of_first_n_spec.rb