@SuppressWarnings("unchecked")
@Test
public void toString_() {
SomeType alias = alias(SomeType.class, "alias");
assertEquals("alias.name", $(alias.getName()).toString());
assertEquals("alias.ref.name", $(alias.getRef().getName()).toString());
assertEquals("alias.refs.get(0)", $(alias.getRefs().get(0)).toString());
assertEquals("lower(alias.name)", $(alias.getName()).lower().toString());
ConstructorExpression<SomeType> someType = new ConstructorExpression<SomeType>(SomeType.class, new Class<?>[]{SomeType.class}, $(alias));
assertEquals("new SomeType(alias)", someType.toString());
ArrayConstructorExpression<SomeType> someTypeArray = new ArrayConstructorExpression<SomeType>(SomeType[].class,$(alias));
assertEquals("new SomeType[](alias)", someTypeArray.toString());
}