@@ -71,10 +71,10 @@ public void Parse_ParseAndOperator(string expression, string result)
7171 }
7272
7373 [ Theory ]
74- [ InlineData ( "string(null)" , null ) ]
7574 [ InlineData ( "string(\" \" )" , "" ) ]
7675 [ InlineData ( "string(\" a\" )" , "a" ) ]
77- public void Parse_CastStringShouldReturnConstantExpression ( string expression , object result )
76+ [ InlineData ( "int(42)" , 42 ) ]
77+ public void Parse_CastStringIntShouldReturnConstantExpression ( string expression , object result )
7878 {
7979 // Arrange
8080 ParameterExpression [ ] parameters = { ParameterExpressionHelper . CreateParameterExpression ( typeof ( bool ) , "x" ) } ;
@@ -88,20 +88,27 @@ public void Parse_CastStringShouldReturnConstantExpression(string expression, ob
8888 }
8989
9090 [ Theory ]
91- [ InlineData ( "int?(null)" , null ) ]
92- [ InlineData ( "int?(5)" , 5 ) ]
93- [ InlineData ( "int(42)" , 42 ) ]
94- public void Parse_CastIntShouldReturnConstantExpression ( string expression , object result )
91+ #if NET452
92+ [ InlineData ( "int?(5)" , typeof ( int ? ) , "Convert(5)" ) ]
93+ [ InlineData ( "int?(null)" , typeof ( int ? ) , "Convert(null)" ) ]
94+ [ InlineData ( "string(null)" , typeof ( string ) , "Convert(null)" ) ]
95+ #else
96+ [ InlineData ( "int?(5)" , typeof ( int ? ) , "Convert(5, Nullable`1)" ) ]
97+ [ InlineData ( "int?(null)" , typeof ( int ? ) , "Convert(null, Nullable`1)" ) ]
98+ [ InlineData ( "string(null)" , typeof ( string ) , "Convert(null, String)" ) ]
99+ #endif
100+ public void Parse_NullableShouldReturnNullable ( string expression , object resultType , object result )
95101 {
96102 // Arrange
97103 ParameterExpression [ ] parameters = { ParameterExpressionHelper . CreateParameterExpression ( typeof ( bool ) , "x" ) } ;
98104 var sut = new ExpressionParser ( parameters , expression , null , null ) ;
99105
100106 // Act
101- var constantExpression = ( ConstantExpression ) sut . Parse ( null ) ;
107+ var unaryExpression = ( UnaryExpression ) sut . Parse ( null ) ;
102108
103109 // Assert
104- Check . That ( constantExpression . Value ) . Equals ( result ) ;
110+ Check . That ( unaryExpression . Type ) . Equals ( resultType ) ;
111+ Check . That ( unaryExpression . ToString ( ) ) . Equals ( result ) ;
105112 }
106113 }
107114}
0 commit comments