File tree Expand file tree Collapse file tree 2 files changed +23
-3
lines changed
ReadableExpressions.UnitTests Expand file tree Collapse file tree 2 files changed +23
-3
lines changed Original file line number Diff line number Diff line change @@ -357,9 +357,20 @@ public void ShouldAssignAVariableInAMethodCallArgument()
357357
358358 var translated = intToString . ToReadableString ( ) ;
359359
360- const string EXPECTED = @"i.ToString(value = null)" ;
360+ Assert . AreEqual ( "i.ToString(value = null)" , translated ) ;
361+ }
361362
362- Assert . AreEqual ( EXPECTED . TrimStart ( ) , translated ) ;
363+ [ TestMethod ]
364+ public void ShouldAssignAMultiplicationToStringResult ( )
365+ {
366+ Expression < Func < int , string > > timesThreeToString = i => ( i * 3 ) . ToString ( ) ;
367+
368+ var stringVariable = Expression . Variable ( typeof ( string ) , "value" ) ;
369+ var stringAssignment = Expression . Assign ( stringVariable , timesThreeToString . Body ) ;
370+
371+ var translated = stringAssignment . ToReadableString ( ) ;
372+
373+ Assert . AreEqual ( "value = (i * 3).ToString()" , translated ) ;
363374 }
364375
365376 [ TestMethod ]
Original file line number Diff line number Diff line change @@ -117,7 +117,16 @@ private static bool KeepSurroundingParentheses(Expression expression)
117117 parentExpression = expression . GetParentOrNull ( ) ;
118118 }
119119
120- return ( expression . NodeType == ExpressionType . Convert ) ;
120+ switch ( expression . NodeType )
121+ {
122+ case ExpressionType . Add :
123+ case ExpressionType . Convert :
124+ case ExpressionType . Multiply :
125+ case ExpressionType . Subtract :
126+ return true ;
127+ }
128+
129+ return false ;
121130
122131 case ExpressionType . Invoke :
123132 var invocation = ( InvocationExpression ) expression ;
You can’t perform that action at this time.
0 commit comments