public Builder <T1> Assert(Expression <Action <T1> > assertionExpression) { if (assertionExpression == null) { throw new ArgumentNullException(nameof(assertionExpression)); } var visitor = new ReplaceParameterWithExpressionVisitor(assertionExpression.Parameters, m_valueExpression.Body); var coalescedAssertion = Expression.Lambda <Action>(visitor.Visit(assertionExpression.Body)); var assertFunc = coalescedAssertion.Compile(); try { assertFunc(); } catch (Exception exception) { NUnit.Framework.Assert.Fail(GetDiagnosticMessage(coalescedAssertion.Body, exception)); } return(this); }
private Expression <Func <T2> > CoalesceWith <T2>(Expression <Func <T1, T2> > mapExpression) { var visitor = new ReplaceParameterWithExpressionVisitor(mapExpression.Parameters, m_valueExpression.Body); return(Expression.Lambda <Func <T2> >(visitor.Visit(mapExpression.Body))); }