Sha256: 5648cec8777cc1cc5483cfb61f8266d1ea79e9cf16b972bb63de5d92374a35d2

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

module ScopedSearch::Spec::Matchers
  def be_infix_operator(operator = nil)
    simple_matcher('node to be an infix operator') do |node|
      node.kind_of?(ScopedSearch::QueryLanguage::AST::OperatorNode) &&
          node.infix? && (operator.nil? || operator == node.operator)
    end
  end

  def be_prefix_operator(operator = nil)
    simple_matcher('node to be an prefix operator') do |node|
      node.kind_of?(ScopedSearch::QueryLanguage::AST::OperatorNode) &&
          node.prefix? && (operator.nil? || operator == node.operator)
    end
  end

  def be_logical_operator(operator = nil)
    simple_matcher('node to be an logical operator') do |node|
      node.kind_of?(ScopedSearch::QueryLanguage::AST::LogicalOperatorNode) &&
          (operator.nil? || operator == node.operator)
    end
  end

  def be_leaf_node(value = nil)
    simple_matcher('node to be an logical operator') do |node|
      node.kind_of?(ScopedSearch::QueryLanguage::AST::LeafNode) && (value.nil? || value == node.value)
    end
  end

  def tokenize_to(*tokens)
    simple_matcher("to tokenize to #{tokens.inspect}") do |string|
      tokens == ScopedSearch::QueryLanguage::Compiler.tokenize(string)
    end
  end

  def parse_to(tree)
    simple_matcher("to parse to #{tree.inspect}") do |string|
      tree == ScopedSearch::QueryLanguage::Compiler.parse(string).to_a
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
scoped_search-2.2.0 spec/lib/matchers.rb
scoped_search-2.0.1 spec/lib/matchers.rb