### Question:
StringProperty extends BaseProperty<E> implements ComparableProperty<E> { public StringProperty<String> trim() { return PropertyFactory.createString(FunctionExpressionFactory.trimExp(getExpression()), String.class); } protected  StringProperty(String name, Expression expression, Class<E> type); Expression like(String pattern); Expression like(StringProperty<?> pattern); Expression like(String pattern, char escapeChar); Expression likeIgnoreCase(String pattern); Expression likeIgnoreCase(StringProperty<?> pattern); Expression nlike(String value); Expression nlike(StringProperty<?> value); Expression nlikeIgnoreCase(String value); Expression nlikeIgnoreCase(StringProperty<?> value); Expression contains(String substring); Expression startsWith(String value); Expression endsWith(String value); Expression containsIgnoreCase(String value); Expression startsWithIgnoreCase(String value); Expression endsWithIgnoreCase(String value); NumericProperty<Integer> length(); NumericProperty<Integer> locate(String string); NumericProperty<Integer> locate(StringProperty<? extends String> property); StringProperty<String> trim(); StringProperty<String> upper(); StringProperty<String> lower(); StringProperty<String> concat(Object... args); StringProperty<String> substring(int offset, int length); StringProperty<String> substring(NumericProperty<?> offset, NumericProperty<?> length); @Override StringProperty<E> alias(String alias); StringProperty<E> enclosing();  }### Answer:
@Test public void trim() { assertEquals(exp("trim(path)"), property.trim().getExpression()); }