test-scope.rb revision 324c4644fee44b9898524c09511bd33c3f12e2df
1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#!/usr/bin/ruby
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# encoding: utf-8
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'antlr3'
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'test/unit'
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'spec'
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestDFA < Test::Unit::TestCase
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def setup
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @A = ANTLR3::Scope.new( :a, :b )
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @B = ANTLR3::Scope.new( 'count = 3' )
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @C = ANTLR3::Scope.new( 'a', 'b = 0', 'c = {}' )
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_members
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @A.members.map( &:to_s ).should == %w( a b )
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @B.members.map( &:to_s ).should == %w( count )
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @C.members.map( &:to_s ).should == %w( a b c )
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_defaults_without_arguments
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @A.new.to_a.should == [ nil, nil ]
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @B.new.to_a.should == [ 3 ]
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @C.new.to_a.should == [ nil, 0, {} ]
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_C_defaults_with_arguments
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    c = @C.new( Object )
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    c.a.should == Object
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    c.b.should == 0
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    c.c.should == {}
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_B_defaults_with_arguments
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    b = @B.new( 7000 )
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    b.count.should == 7000
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_A_defaults_with_arguments
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    a = @A.new( "apple", :orange )
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    a.a.should == 'apple'
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    a.b.should == :orange
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend
46