Sha256: d3d94bb444e4269461b79dc5a261ace09e3a86d6f66bfb0c9927e9f3a489e836

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'spec_helper'
module Gisele::Language::Syntax
  describe TaskDef, "to_ast" do

    it 'parses an explicit definition as expected' do
      expr = <<-EXPR.strip
        task Task1
          fluent diagKnown {}, {}
          Task2
        end
      EXPR
      expected = \
        [:task_def, "Task1",
          [:fluent, "diagKnown", [:event_set], [:event_set], nil],
          [:task_call_st, "Task2"]]
      ast(expr, :task_def).should eq(expected)
    end

    it 'uses :nop if no statement' do
      expr = <<-EXPR.strip
        task Task1
          fluent diagKnown {}, {}
        end
      EXPR
      expected = \
        [:task_def, "Task1",
          [:fluent, "diagKnown", [:event_set], [:event_set], nil],
          [:nop]]
      ast(expr, :task_def).should eq(expected)
    end

    it 'uses :nop when empty' do
      expr = <<-EXPR.strip
        task Task1
        end
      EXPR
      expected = \
        [:task_def, "Task1",
          [:nop]]
      ast(expr, :task_def).should eq(expected)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gisele-0.3.0 spec/unit/language/syntax/to_ast/test_task_def.rb