use of spoon.reflect.code.CtLoop in project spoon by INRIA.
the class FilterTest method testLineFilter.
@Test
public void testLineFilter() throws Exception {
CtType<FooLine> foo = ModelUtils.buildClass(FooLine.class);
CtMethod method = foo.getMethod("simple");
List<CtStatement> expressions = method.getElements(new LineFilter());
assertEquals(3, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
method = foo.getMethod("loopBlock");
expressions = method.getElements(new LineFilter());
assertEquals(2, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
assertTrue(expressions.get(1).getParent(new LineFilter()) instanceof CtLoop);
method = foo.getMethod("loopNoBlock");
expressions = method.getElements(new LineFilter());
assertEquals(2, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
assertTrue(expressions.get(1).getParent(new LineFilter()) instanceof CtLoop);
method = foo.getMethod("ifBlock");
expressions = method.getElements(new LineFilter());
assertEquals(2, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
assertTrue(expressions.get(1).getParent(new LineFilter()) instanceof CtIf);
method = foo.getMethod("ifNoBlock");
expressions = method.getElements(new LineFilter());
assertEquals(2, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
assertTrue(expressions.get(1).getParent(new LineFilter()) instanceof CtIf);
method = foo.getMethod("switchBlock");
expressions = method.getElements(new LineFilter());
assertEquals(3, expressions.size());
assertNull(expressions.get(0).getParent(new LineFilter()));
assertTrue(expressions.get(1).getParent(new LineFilter()) instanceof CtSwitch);
assertTrue(expressions.get(2).getParent(new LineFilter()) instanceof CtSwitch);
}
use of spoon.reflect.code.CtLoop in project spoon by INRIA.
the class LoopTest method testForeachShouldHaveAlwaysABlockInItsBody.
@Test
public void testForeachShouldHaveAlwaysABlockInItsBody() throws Exception {
final CtClass<Join> aType = build(Join.class, Condition.class).Class().get(Join.class);
final CtConstructor<Join> joinCtConstructor = aType.getConstructors().stream().findFirst().get();
final CtLoop ctLoop = joinCtConstructor.getBody().getElements(new TypeFilter<>(CtLoop.class)).get(0);
assertTrue(ctLoop.getBody() instanceof CtBlock);
//
String expected = //
"for (spoon.test.loop.testclasses.Condition<? super T> condition : conditions)" + nl + " this.conditions.add(spoon.test.loop.testclasses.Join.notNull(condition));" + nl;
assertEquals(expected, ctLoop.toString());
}
Aggregations