Sha256: 3591a4a8b131ddacc0d2adbf1317c322afcf758c7bdcf524a1c6387e25089cfe

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

require 'spec_helper'

describe NQL::SyntaxParser, '-> Coordination' do

  let(:parser) { NQL::SyntaxParser.new }

  it 'And' do
    tree = parser.parse('var1 = value1 & var2 = value2')

    tree.left.text_value.strip.should eq 'var1 = value1'
    tree.coordinator.text_value.should eq '&'
    tree.right.text_value.strip.should eq 'var2 = value2'
  end

  it 'Or' do
    tree = parser.parse('var1 = value1 | var2 = value2')

    tree.left.text_value.strip.should eq 'var1 = value1'
    tree.coordinator.text_value.should eq '|'
    tree.right.text_value.strip.should eq 'var2 = value2'
  end

  it 'And then Or' do
    tree = parser.parse('var1 = value1 & var2 = value2 | var3 = value3')

    tree.left.text_value.strip.should eq 'var1 = value1'
    tree.coordinator.text_value.should eq '&'
    tree.right.left.text_value.strip.should eq 'var2 = value2'
    tree.right.coordinator.text_value.strip.should eq '|'
    tree.right.right.text_value.strip.should eq 'var3 = value3'
  end

  it 'With parentheses' do
    tree = parser.parse('(var1 = value1 & var2 = value2) | var3 = value3')

    tree.left.expression.left.text_value.strip.should eq 'var1 = value1'
    tree.left.expression.coordinator.text_value.should eq '&'
    tree.left.expression.right.text_value.strip.should eq 'var2 = value2'
    tree.coordinator.text_value.strip.should eq '|'
    tree.right.text_value.strip.should eq 'var3 = value3'
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
nql-0.0.3 spec/coordination_parser_spec.rb
nql-0.0.2 spec/coordination_parser_spec.rb
nql-0.0.1 spec/coordination_parser_spec.rb