Package com.asakusafw.utils.java.parser.javadoc

Source Code of com.asakusafw.utils.java.parser.javadoc.DefaultJavadocScannerTest

/**
* Copyright 2011-2014 Asakusa Framework Team.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.asakusafw.utils.java.parser.javadoc;

import static com.asakusafw.utils.java.internal.parser.javadoc.ir.JavadocTokenKind.*;
import static org.junit.Assert.*;

import org.junit.Test;

import com.asakusafw.utils.java.internal.parser.javadoc.ir.JavadocToken;

/**
* Test for {@link DefaultJavadocScanner}.
*/
public class DefaultJavadocScannerTest extends JavadocTestRoot {

    /**
     * Test method for {@link DefaultJavadocScanner#newInstance(java.lang.String)}.
     */
    @Test
    public void testNewInstanceEmpty() {
        String text = load("empty.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);

        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#newInstance(java.lang.String)}.
     */
    @Test
    public void testNewInstanceSingleSpace() {
        String text = load("singlespace.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);

        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#newInstance(java.lang.String)}.
     */
    @Test
    public void testNewInstance3Lines() {
        String text = load("3lines.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);

        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(LINE_BREAK, scanner.nextToken().getKind());

        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(LINE_BREAK, scanner.nextToken().getKind());

        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#newInstance(java.lang.String)}.
     */
    @Test
    public void testNewInstanceSynopsis() {
        String text = load("synopsis.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);

        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(LINE_BREAK, scanner.nextToken().getKind());

        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(IDENTIFIER, scanner.nextToken().getKind());
        assertEquals(COMMA, scanner.nextToken().getKind());
        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(IDENTIFIER, scanner.nextToken().getKind());
        assertEquals(TEXT, scanner.nextToken().getKind());
        assertEquals(LINE_BREAK, scanner.nextToken().getKind());

        assertEquals(WHITE_SPACES, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#getIndex()}.
     */
    @Test
    public void testGetIndex() {
        String text = load("synopsis.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);
        int index = 0;
        while (true) {
            assertEquals(index, scanner.getIndex());
            JavadocToken t = scanner.nextToken();
            if (t.getKind() == EOF) {
                break;
            }
            index++;
        }
        assertEquals(index, scanner.getIndex());
        scanner.nextToken();
        assertEquals(index, scanner.getIndex());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#seek(int)}.
     */
    @Test
    public void testSeek() {
        String text = load("empty.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);

        assertEquals(SLASH, scanner.nextToken().getKind());
        scanner.seek(0);
        assertEquals(SLASH, scanner.nextToken().getKind());

        scanner.seek(4);
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());

        scanner.seek(1);
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#consume(int)}.
     */
    @Test
    public void testConsume() {
        String text = load("empty.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);
        assertEquals(SLASH, scanner.nextToken().getKind());
        scanner.consume(3);
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#nextToken()}.
     */
    @Test
    public void testNextToken() {
        String text = load("empty.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(ASTERISK, scanner.nextToken().getKind());
        assertEquals(SLASH, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
        assertEquals(EOF, scanner.nextToken().getKind());
    }

    /**
     * Test method for {@link DefaultJavadocScanner#lookahead(int)}.
     */
    @Test
    public void testLookahead() {
        String text = load("empty.doc.txt");
        DefaultJavadocScanner scanner = DefaultJavadocScanner.newInstance(text);
        assertEquals(SLASH, scanner.lookahead(0).getKind());
        assertEquals(ASTERISK, scanner.lookahead(1).getKind());
        assertEquals(ASTERISK, scanner.lookahead(2).getKind());
        assertEquals(ASTERISK, scanner.lookahead(3).getKind());
        assertEquals(SLASH, scanner.lookahead(4).getKind());
        assertEquals(EOF, scanner.lookahead(5).getKind());
        assertEquals(EOF, scanner.lookahead(6).getKind());
        assertEquals(EOF, scanner.lookahead(7).getKind());

        scanner.consume(3);
        assertEquals(SLASH, scanner.lookahead(-3).getKind());
        assertEquals(ASTERISK, scanner.lookahead(-2).getKind());
        assertEquals(ASTERISK, scanner.lookahead(-1).getKind());
        assertEquals(ASTERISK, scanner.lookahead(0).getKind());
        assertEquals(SLASH, scanner.lookahead(1).getKind());
        assertEquals(EOF, scanner.lookahead(2).getKind());
        assertEquals(EOF, scanner.lookahead(3).getKind());
        assertEquals(EOF, scanner.lookahead(4).getKind());
    }
}
TOP

Related Classes of com.asakusafw.utils.java.parser.javadoc.DefaultJavadocScannerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.