KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > groovy > syntax > lexer > AbstractCharStreamTest


1 package org.codehaus.groovy.syntax.lexer;
2
3 import groovy.util.GroovyTestCase;
4
5 import org.codehaus.groovy.syntax.ReadException;
6
7 public class AbstractCharStreamTest
8     extends GroovyTestCase
9 {
10     public static class MockCharStream
11         extends AbstractCharStream
12     {
13         private int cur;
14         private String JavaDoc text;
15
16         public MockCharStream(String JavaDoc text)
17         {
18             this.text = text;
19             this.cur = 0;
20         }
21
22         public MockCharStream(String JavaDoc text,
23                               String JavaDoc description)
24         {
25             super( description );
26             this.text = text;
27             this.cur = 0;
28         }
29
30         public char consume()
31             throws ReadException
32         {
33             if ( this.cur >= this.text.length() )
34             {
35                 return (char) -1;
36             }
37
38             char c = this.text.charAt( this.cur );
39
40             ++this.cur;
41
42             return c;
43         }
44
45         public void close()
46             throws ReadException
47         {
48
49         }
50     }
51
52     public void testConstruct_Default()
53     {
54         assertEquals( "<unknown>",
55                       new MockCharStream( "cheddar" ).getDescription() );
56     }
57
58     public void testConstruct_WithDescription()
59     {
60         assertEquals( "/path/to/Cheddar.groovy",
61                       new MockCharStream( "cheddar",
62                                           "/path/to/Cheddar.groovy" ).getDescription() );
63     }
64
65     public void testconsume()
66         throws Exception JavaDoc
67     {
68         MockCharStream in = new MockCharStream( "cheddar" );
69
70         assertEquals( 'c',
71                       in.consume() );
72
73         assertEquals( 'h',
74                       in.consume() );
75
76         assertEquals( 'e',
77                       in.consume() );
78
79         assertEquals( 'd',
80                       in.consume() );
81
82         assertEquals( 'd',
83                       in.consume() );
84
85         assertEquals( 'a',
86                       in.consume() );
87
88         assertEquals( 'r',
89                       in.consume() );
90
91         assertEquals( (char) -1,
92                       in.consume() );
93     }
94
95     public void testConsume()
96         throws Exception JavaDoc
97     {
98         MockCharStream in = new MockCharStream( "cheddar" );
99
100         assertEquals( 'c',
101                       in.consume() );
102
103         assertEquals( 'h',
104                       in.consume() );
105
106         assertEquals( 'e',
107                       in.consume() );
108         
109         assertEquals( 'd',
110                       in.consume() );
111
112         assertEquals( 'd',
113                       in.consume() );
114         
115         assertEquals( 'a',
116                       in.consume() );
117
118         assertEquals( 'r',
119                       in.consume() );
120
121         assertEquals( (char) -1,
122                       in.consume() );
123         
124     }
125
126     public void testConsumeAtEnd()
127         throws Exception JavaDoc
128     {
129         MockCharStream in = new MockCharStream( "" );
130
131         assertEquals( (char) -1,
132                       in.consume() );
133
134         assertEquals( (char) -1,
135                       in.consume() );
136     }
137 }
138
Popular Tags