KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > lexer > test > simple > FlyTokensTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.lib.lexer.test.simple;
21
22 import junit.framework.TestCase;
23 import org.netbeans.api.lexer.TokenHierarchy;
24 import org.netbeans.api.lexer.TokenId;
25 import org.netbeans.api.lexer.TokenSequence;
26 import org.netbeans.lib.lexer.LexerUtilsConstants;
27 import org.netbeans.lib.lexer.test.LexerTestUtilities;
28
29 /**
30  * Test several simple lexer impls.
31  *
32  * @author mmetelka
33  */

34 public class FlyTokensTest extends TestCase {
35
36     public FlyTokensTest(String JavaDoc testName) {
37         super(testName);
38     }
39
40     protected void setUp() throws java.lang.Exception JavaDoc {
41     }
42
43     protected void tearDown() throws java.lang.Exception JavaDoc {
44     }
45
46     public void testMaxFlySequenceLength() {
47         // Both "public" and " " are flyweight
48
String JavaDoc text = "public public public public public public public ";
49         int commentTextStartOffset = 5;
50         TokenHierarchy<?> hi = TokenHierarchy.create(text, SimpleTokenId.language());
51         TokenSequence<? extends TokenId> ts = hi.tokenSequence();
52         int firstNonFlyIndex = -1;
53         int secondNonFlyIndex = -1;
54         int tokenIndex = 0;
55         for (int i = 0; i < 7; i++) {
56             assertTrue(ts.moveNext());
57             LexerTestUtilities.assertTokenEquals(ts, SimpleTokenId.PUBLIC, "public", -1);
58             if (!ts.token().isFlyweight()) {
59                 if (firstNonFlyIndex == -1) {
60                     firstNonFlyIndex = tokenIndex;
61                 } else if (secondNonFlyIndex == -1) {
62                     secondNonFlyIndex = tokenIndex;
63                 }
64             }
65             tokenIndex++;
66
67             assertTrue(ts.moveNext());
68             LexerTestUtilities.assertTokenEquals(ts, SimpleTokenId.WHITESPACE, " ", -1);
69             if (!ts.token().isFlyweight()) {
70                 if (firstNonFlyIndex == -1) {
71                     firstNonFlyIndex = tokenIndex;
72                 } else if (secondNonFlyIndex == -1) {
73                     secondNonFlyIndex = tokenIndex;
74                 }
75             }
76             tokenIndex++;
77         }
78         assertEquals(LexerUtilsConstants.MAX_FLY_SEQUENCE_LENGTH, firstNonFlyIndex);
79         assertEquals(LexerUtilsConstants.MAX_FLY_SEQUENCE_LENGTH * 2 + 1, secondNonFlyIndex);
80     }
81 }
82
Popular Tags