public void testContentFunction()
{
final TestElement element = TestElement.TYPE.instantiate();
final FunctionContext context = new ModelElementFunctionContext( element );
FunctionResult fr = ExpressionLanguageParser.parse( "${ IntegerValue.Content }" ).evaluate( context );
try
{
assertNull( fr.value() );
element.setIntegerValue( 3 );
assertEquals( 3, fr.value() );
element.setIntegerValue( "abc" );
assertNull( fr.value() );
}
finally
{
fr.dispose();
}
fr = ExpressionLanguageParser.parse( "${ IntegerValueWithDefault.Content }" ).evaluate( context );
try
{
assertEquals( 1, fr.value() );
element.setIntegerValueWithDefault( 3 );
assertEquals( 3, fr.value() );
element.setIntegerValueWithDefault( "abc" );
assertEquals( 1, fr.value() );
}
finally
{
fr.dispose();
}
fr = ExpressionLanguageParser.parse( "${ Transient.Content }" ).evaluate( context );
try
{
assertNull( fr.value() );
element.setTransient( this );
assertSame( this, fr.value() );
}
finally
{
fr.dispose();
}
}