//[Theory] //[MemberData(nameof(IndexerExpressions))] //[MemberData(nameof(UnsupportedExpressions))] private void GetExpressionText_DoesNotCacheIndexerOrUnsupportedExpression_Theory(LambdaExpression expression) { // Act - 1 var text1 = ExpressionHelper.GetExpressionText(expression, _expressionTextCache); // Act - 2 var text2 = ExpressionHelper.GetExpressionText(expression, _expressionTextCache); // Assert Assert2.Equal(text1, text2, StringComparer.Ordinal); Assert2.NotSame(text1, text2); // not cached }
//[Theory] //[MemberData(nameof(NonEquivalentExpressions))] public void GetExpressionText_CheckNonEquivalentExpressions_Theory(LambdaExpression expression1, LambdaExpression expression2) { // Act - 1 var text1 = ExpressionHelper.GetExpressionText(expression1, _expressionTextCache); // Act - 2 var text2 = ExpressionHelper.GetExpressionText(expression2, _expressionTextCache); // Assert Assert2.NotEqual(text1, text2, StringComparer.Ordinal); Assert2.NotSame(text1, text2); }
public void Process_ConstLookup_WhenCapturedLocalChanges() { // Arrange var model = new TestModel(); var differentModel = new DifferentModel(); var expression = GetTestModelExpression(m => differentModel); // Act var func = CachedExpressionCompiler.Process(expression); // Assert - 1 var result1 = func(null); Assert2.Same(differentModel, result1); // Act - 2 differentModel = new DifferentModel(); // Assert - 2 var result2 = func(null); Assert2.NotSame(differentModel, result1); Assert2.Same(differentModel, result2); }