test-scope.rb revision 324c4644fee44b9898524c09511bd33c3f12e2df
1#!/usr/bin/ruby
2# encoding: utf-8
3
4require 'antlr3'
5require 'test/unit'
6require 'spec'
7
8class TestDFA < Test::Unit::TestCase
9  def setup
10    @A = ANTLR3::Scope.new( :a, :b )
11    @B = ANTLR3::Scope.new( 'count = 3' )
12    @C = ANTLR3::Scope.new( 'a', 'b = 0', 'c = {}' )
13  end
14  
15  def test_members
16    @A.members.map( &:to_s ).should == %w( a b )
17    @B.members.map( &:to_s ).should == %w( count )
18    @C.members.map( &:to_s ).should == %w( a b c )
19  end
20  
21  def test_defaults_without_arguments
22    @A.new.to_a.should == [ nil, nil ]
23    @B.new.to_a.should == [ 3 ]
24    @C.new.to_a.should == [ nil, 0, {} ]
25  end
26  
27  def test_C_defaults_with_arguments
28    c = @C.new( Object )
29    c.a.should == Object
30    c.b.should == 0
31    c.c.should == {}
32  end
33  
34  def test_B_defaults_with_arguments
35    b = @B.new( 7000 )
36    b.count.should == 7000
37  end
38  
39  def test_A_defaults_with_arguments
40    a = @A.new( "apple", :orange )
41    a.a.should == 'apple'
42    a.b.should == :orange
43  end
44  
45end
46