@Test public void nestedSkipNulls2() { StringPath str1 = Expressions.stringPath("str1"); StringPath str2 = Expressions.stringPath("str2"); StringPath str3 = Expressions.stringPath("str3"); FactoryExpression<Entity1> entity = Projections.constructor(Entity1.class, str1, str2).skipNulls(); FactoryExpression<Entity2> wrapper = Projections.constructor(Entity2.class, str3, entity).skipNulls(); FactoryExpression<Entity2> wrapped = FactoryExpressionUtils.wrap(wrapper); Entity2 w = wrapped.newInstance("a", "b", "c"); assertEquals("a", w.arg1); assertEquals("b", w.entity.arg1); assertEquals("c", w.entity.arg2); w = wrapped.newInstance("a", null, null); assertEquals("a", w.arg1); assertNull(w.entity); w = wrapped.newInstance(null, null, null); assertNull(w); } }
@Test public void nestedSkipNulls() { StringPath str1 = Expressions.stringPath("str1"); StringPath str2 = Expressions.stringPath("str2"); StringPath str3 = Expressions.stringPath("str3"); FactoryExpression<Entity1> entity = Projections.constructor(Entity1.class, str1, str2).skipNulls(); FactoryExpression<Entity2> wrapper = Projections.constructor(Entity2.class, str3, entity); FactoryExpression<Entity2> wrapped = FactoryExpressionUtils.wrap(wrapper); Entity2 w = wrapped.newInstance("a", "b", "c"); assertEquals("a", w.arg1); assertEquals("b", w.entity.arg1); assertEquals("c", w.entity.arg2); w = wrapped.newInstance("a", null, null); assertEquals("a", w.arg1); assertNull(w.entity); w = wrapped.newInstance(null, null, null); assertNull(w.entity); }