Search in sources :

Example 1 with FooField

use of spoon.test.position.testclasses.FooField in project spoon by INRIA.

the class PositionTest method testPositionField.

@Test
public void testPositionField() throws Exception {
    final Factory build = build(FooField.class);
    final CtType<FooField> foo = build.Type().get(FooField.class);
    String classContent = getClassContent(foo);
    DeclarationSourcePosition position1 = (DeclarationSourcePosition) foo.getField("field1").getPosition();
    assertEquals(5, position1.getLine());
    assertEquals(5, position1.getEndLine());
    assertEquals(68, position1.getSourceStart());
    assertEquals(95, position1.getSourceEnd());
    assertEquals("public final int field1 = 0;", contentAtPosition(classContent, position1));
    assertEquals("field1", contentAtPosition(classContent, position1.getNameStart(), position1.getNameEnd()));
    assertEquals("public final", contentAtPosition(classContent, position1.getModifierSourceStart(), position1.getModifierSourceEnd()));
    DeclarationSourcePosition position2 = (DeclarationSourcePosition) foo.getField("field2").getPosition();
    assertEquals(7, position2.getLine());
    assertEquals(8, position2.getEndLine());
    assertEquals(99, position2.getSourceStart());
    assertEquals(116, position2.getSourceEnd());
    assertEquals("int field2 =\n" + "\t\t\t0;", contentAtPosition(classContent, position2));
    assertEquals("field2", contentAtPosition(classContent, position2.getNameStart(), position2.getNameEnd()));
    assertEquals("", contentAtPosition(classContent, position2.getModifierSourceStart(), position2.getModifierSourceEnd()));
    CtAssignment m = foo.getMethod("m").getBody().getStatement(0);
    CtFieldAccess assigned = (CtFieldAccess) m.getAssigned();
    SourcePosition position3 = assigned.getPosition();
    assertEquals(13, position3.getLine());
    assertEquals(13, position3.getEndLine());
    assertEquals(168, position3.getSourceStart());
    assertEquals(184, position3.getSourceEnd());
    assertEquals("FooField.f.field2", contentAtPosition(classContent, position3));
    CtFieldAccess target = (CtFieldAccess) assigned.getTarget();
    SourcePosition position4 = target.getPosition();
    assertEquals(13, position4.getLine());
    assertEquals(13, position4.getEndLine());
    assertEquals(168, position4.getSourceStart());
    assertEquals(177, position4.getSourceEnd());
    assertEquals("FooField.f", contentAtPosition(classContent, position4));
    CtExpression typeAccess = target.getTarget();
    SourcePosition position5 = typeAccess.getPosition();
    assertEquals(13, position5.getLine());
    assertEquals(13, position5.getEndLine());
    assertEquals(168, position5.getSourceStart());
    assertEquals(175, position5.getSourceEnd());
    assertEquals("FooField", contentAtPosition(classContent, position5));
}
Also used : CtFieldAccess(spoon.reflect.code.CtFieldAccess) CtAssignment(spoon.reflect.code.CtAssignment) CtExpression(spoon.reflect.code.CtExpression) DeclarationSourcePosition(spoon.reflect.cu.position.DeclarationSourcePosition) BodyHolderSourcePosition(spoon.reflect.cu.position.BodyHolderSourcePosition) SourcePosition(spoon.reflect.cu.SourcePosition) Factory(spoon.reflect.factory.Factory) FooField(spoon.test.position.testclasses.FooField) DeclarationSourcePosition(spoon.reflect.cu.position.DeclarationSourcePosition) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)1 CtAssignment (spoon.reflect.code.CtAssignment)1 CtExpression (spoon.reflect.code.CtExpression)1 CtFieldAccess (spoon.reflect.code.CtFieldAccess)1 SourcePosition (spoon.reflect.cu.SourcePosition)1 BodyHolderSourcePosition (spoon.reflect.cu.position.BodyHolderSourcePosition)1 DeclarationSourcePosition (spoon.reflect.cu.position.DeclarationSourcePosition)1 Factory (spoon.reflect.factory.Factory)1 FooField (spoon.test.position.testclasses.FooField)1