Sha256: 7eb11a53dd5fd582202085c80039d1b67a0f26f6946fced098066b10c73efdc6

Contents?: true

Size: 1.98 KB

Versions: 19

Compression:

Stored size: 1.98 KB

Contents

def klass(klass_name = nil)
  @klass ||= klass_name.singularize.camelize.constantize
end

def query(klass_name = nil)
  @query ||= klass(klass_name).criteria
end

When "I also want a $number query with criteria $criteria" do |number, criteria|
  instance_variable_set("@#{number}", eval("query.#{criteria}"))
end

When /^I requery$/ do
  # do nothing
end

Then /^the query result is equal to the document '(.*)'$/ do |name|
  doc = instance_variable_get("@#{name}")
  query.should == doc
end

Then /^one of the query results is the document '(.*)'$/ do |name|
  doc = instance_variable_get("@#{name}")
  query.any? {|d| d == doc}.should be_true
end

Then /^the query result with "(.*)" == "(.*)" has a count of (.*)$/ do |key, value, count|
  query.find {|r| r.has_key?(key) and r[key] == value }['count'].should == count.to_i
end

Then /^the query result with "([^\"]*)" == "([^\"]*)" has the document '(.*)'$/ do |key, value, name|
  doc = instance_variable_get("@#{name}")
  query.find {|r| r.has_key?(key) and r[key] == value }['group'].should include(doc)
end

Then /^the query result has (.*) documents*$/ do |count|
  if query.respond_to?(:size)
    query.size.should == count.to_i
  else
    query.count.should == count.to_i
  end
end

Then /^the (first|last) query result is the document '(.*)'$/ do |position, name|
  doc = instance_variable_get("@#{name}")
  query.entries.send(position).should == doc
end

Then /^the size of the query result is (.*)$/ do |count|
  query.to_a.size.should == count.to_i
end

Then /^the query result is the document '(.*)'$/ do |name|
  object = instance_variable_get("@#{name}")
  if query.kind_of?(Array)
    query.size.should == 1
    query.first.should == object
  else
    query.should == object
  end
end

Then /^the query (is|is not) (empty|blank)$/ do |is, empty|
  query.send("#{empty}?").should == (is == 'is')
end

Then /^the (.+) query (is|is not) (empty|blank)$/ do |number, is, empty|
  instance_variable_get("@#{number}").send("#{empty}?").should == (is == 'is')
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
mongo_doc-0.6.26 features/step_definitions/query_steps.rb
mongo_doc-0.6.25 features/step_definitions/query_steps.rb
mongo_doc-0.6.23 features/step_definitions/query_steps.rb
mongo_doc-0.6.22 features/step_definitions/query_steps.rb
mongo_doc-0.6.21 features/step_definitions/query_steps.rb
mongo_doc-0.6.20 features/step_definitions/query_steps.rb
mongo_doc-0.6.19 features/step_definitions/query_steps.rb
mongo_doc-0.6.18 features/step_definitions/query_steps.rb
mongo_doc-0.6.17 features/step_definitions/query_steps.rb
mongo_doc-0.6.16 features/step_definitions/query_steps.rb
mongo_doc-0.6.15 features/step_definitions/query_steps.rb
mongo_doc-0.6.14 features/step_definitions/query_steps.rb
mongo_doc-0.6.13 features/step_definitions/query_steps.rb
mongo_doc-0.6.12 features/step_definitions/query_steps.rb
mongo_doc-0.6.11 features/step_definitions/query_steps.rb
mongo_doc-0.6.10 features/step_definitions/query_steps.rb
mongo_doc-0.6.9 features/step_definitions/query_steps.rb
mongo_doc-0.6.8 features/step_definitions/query_steps.rb
mongo_doc-0.6.7 features/step_definitions/query_steps.rb