Package ro.redeul.google.go.psi

Source Code of ro.redeul.google.go.psi.GoPsiTypeAssertionsTest

package ro.redeul.google.go.psi;

import ro.redeul.google.go.GoPsiTestCase;
import ro.redeul.google.go.lang.psi.GoFile;
import ro.redeul.google.go.lang.psi.expressions.primary.GoTypeAssertionExpression;
import ro.redeul.google.go.lang.psi.types.GoPsiTypeSlice;
import static ro.redeul.google.go.util.GoPsiTestUtils.castAs;
import static ro.redeul.google.go.util.GoPsiTestUtils.childAt;
import static ro.redeul.google.go.util.GoPsiTestUtils.get;
import static ro.redeul.google.go.util.GoPsiTestUtils.getAs;

public class GoPsiTypeAssertionsTest extends GoPsiTestCase {


    public void testBasic() throws Exception {
        GoFile file = get(
            parse("" +
                      "package main\n" +
                      "var e = i.(int)"));

        GoTypeAssertionExpression typeAssertion =
            castAs(GoTypeAssertionExpression.class, 0,
                   childAt(0,
                           childAt(0,
                                   file.getGlobalVariables()
                           ).getDeclarations()
                   ).getExpressions()
            );

        assertEquals("i", get(typeAssertion.getBaseExpression()).getText());
        assertEquals("int", get(typeAssertion.getAssertedType()).getText());
    }

    public void testArray() throws Exception {
        GoFile file = get(
            parse("" +
                      "package main\n" +
                      "var e = i.([]int)"));

        GoTypeAssertionExpression typeAssertion =
            castAs(GoTypeAssertionExpression.class, 0,
                   childAt(0,
                           childAt(0,
                                   file.getGlobalVariables()
                           ).getDeclarations()
                   ).getExpressions()
            );

        assertEquals("i", get(typeAssertion.getBaseExpression()).getText());
        assertEquals("[]int", get(typeAssertion.getAssertedType()).getText());
        assertEquals("int",
                     get(
                         getAs(GoPsiTypeSlice.class,
                               typeAssertion.getAssertedType()
                         ).getElementType()
                     ).getText());



    }
}
TOP

Related Classes of ro.redeul.google.go.psi.GoPsiTypeAssertionsTest

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.