public void VisitAndConvertSameResultAsVisit() { ConstantExpression constant = Expression.Constant(0); ConstantExpression visited = new ConstantRefreshingVisitor().VisitAndConvert(constant, ""); Assert.NotSame(constant, visited); Assert.Equal(0, visited.Value); }
public void VisitCollectionDifferOnFirst() { string value = new string(new[] { 'a', 'b', 'c' }); ReadOnlyCollection <Expression> collection = new List <Expression> { Expression.Constant(value) }.AsReadOnly(); ReadOnlyCollection <Expression> visited = new ConstantRefreshingVisitor().Visit(collection); Assert.NotSame(collection, visited); Assert.NotSame(collection[0], visited[0]); Assert.Same(value, ((ConstantExpression)visited[0]).Value); }
public void VisitAndConvertSameResultAsVisit() { var constant = Expression.Constant(0); var visited = new ConstantRefreshingVisitor().VisitAndConvert(constant, ""); Assert.NotSame(constant, visited); Assert.Equal(0, visited.Value); }
public void VisitCollectionDifferOnLater() { string value = new string(new[] { 'a', 'b', 'c' }); var collection = new List<Expression> { Expression.Empty(), Expression.Constant(value) }.AsReadOnly(); var visited = new ConstantRefreshingVisitor().Visit(collection); Assert.NotSame(collection, visited); Assert.Same(collection[0], visited[0]); Assert.NotSame(collection[1], visited[1]); Assert.Same(value, ((ConstantExpression)visited[1]).Value); }