Sha256: 9031dd344aa17ee0713a7c325e76f90e2fc1bc9cc70b8a7ad4d120dedd0941ba

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

describe Gobstones::Parser, "assignments" do

  describe "single" do

    it "should parse a valid assignment with a simple expression" do
      assignment = SingleAssignment.new VarName.new('myDir'), Norte.new

      expect('myDir:=Norte').
        to be_parsed_as(:command).and_return(assignment)
      expect('myDir  :=   Norte').
        to be_parsed_as(:command).and_return(assignment)
    end

    it "should parse a valid assignment with a complex expression" do
      a, b = VarName.new('a'), VarName.new('b')
      exp = Or.new False.new, ParenthesesExpr.new(And.new(a, b))
      assignment = SingleAssignment.new VarName.new('myVar'), exp

      expect('myVar := False || (a && b)').
        to be_parsed_as(:command).and_return(assignment)
    end

    it "should not parse with an invalid var name" do
      expect('MyWrongVar := a').to be_parsed_as(:command).and_fail
    end

    it "should not parse with a command on the right side" do
      expect('myVar := Skip').to be_parsed_as(:command).and_fail
    end

  end

  describe "multiple" do

    # TODO implement

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gobstones-0.0.1.1 spec/parser/assignments_spec.rb