@@ -2158,7 +2158,7 @@ void Evaluator_PreEvaluateVariable(object sender, VariablePreEvaluationEventArg
21582158
21592159 #region Method with params parameter
21602160
2161- ExpressionEvaluator evaluatorForParamsTests ( )
2161+ ExpressionEvaluator evaluatorForMethodArgs ( )
21622162 {
21632163 ExpressionEvaluator ee = new ExpressionEvaluator ( new Dictionary < string , object > ( )
21642164 {
@@ -2169,110 +2169,174 @@ ExpressionEvaluator evaluatorForParamsTests()
21692169 return ee ;
21702170 }
21712171
2172- yield return new TestCaseData ( evaluatorForParamsTests ( )
2172+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
21732173 , "paramsObj.SumOf(1, 2)"
21742174 , null )
21752175 . Returns ( 3 )
21762176 . SetCategory ( "ParamsKeywordMethod" ) ;
21772177
2178- yield return new TestCaseData ( evaluatorForParamsTests ( )
2178+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
21792179 , "paramsObj.SumOf(1, 2, 3)"
21802180 , null )
21812181 . Returns ( 6 )
21822182 . SetCategory ( "ParamsKeywordMethod" ) ;
21832183
2184- yield return new TestCaseData ( evaluatorForParamsTests ( )
2184+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
21852185 , "paramsObj.SumOf(1,2,3,4)"
21862186 , null )
21872187 . Returns ( 10 )
21882188 . SetCategory ( "ParamsKeywordMethod" ) ;
21892189
2190- yield return new TestCaseData ( evaluatorForParamsTests ( )
2190+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
21912191 , "paramsObj.SumOf2()"
21922192 , null )
21932193 . Returns ( 0 )
21942194 . SetCategory ( "ParamsKeywordMethod" ) ;
21952195
2196- yield return new TestCaseData ( evaluatorForParamsTests ( )
2196+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
21972197 , "paramsObj.SumOf2(1)"
21982198 , null )
21992199 . Returns ( 1 )
22002200 . SetCategory ( "ParamsKeywordMethod" ) ;
22012201
2202- yield return new TestCaseData ( evaluatorForParamsTests ( )
2202+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22032203 , "paramsObj.SumOf2(1,2,3,4)"
22042204 , null )
22052205 . Returns ( 10 )
22062206 . SetCategory ( "ParamsKeywordMethod" ) ;
22072207
2208- yield return new TestCaseData ( evaluatorForParamsTests ( )
2208+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22092209 , "string.Join(\" ,\" , 2, 3.5, \" Hello\" , true)"
22102210 , null )
22112211 . Returns ( "2,3.5,Hello,True" )
22122212 . SetCategory ( "ParamsKeywordMethod" ) ;
22132213
2214- yield return new TestCaseData ( evaluatorForParamsTests ( )
2214+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22152215 , "string.Join(\" ,\" , 2, 3.5, null, \" Hello\" , true)"
22162216 , null )
22172217 . Returns ( "2,3.5,,Hello,True" )
22182218 . SetCategory ( "ParamsKeywordMethod" ) ;
22192219
2220- yield return new TestCaseData ( evaluatorForParamsTests ( )
2220+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22212221 , "\" ,\" .UseAsSepForJoin(2, 3.5, \" Hello\" , true)"
22222222 , null )
22232223 . Returns ( "2,3.5,Hello,True" )
22242224 . SetCategory ( "ParamsKeywordMethod" ) ;
22252225
2226- yield return new TestCaseData ( evaluatorForParamsTests ( )
2226+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22272227 , "\" ,\" .UseAsSepForJoin(2, 3.5, null, \" Hello\" , true)"
22282228 , null )
22292229 . Returns ( "2,3.5,,Hello,True" )
22302230 . SetCategory ( "ParamsKeywordMethod" ) ;
22312231
2232- yield return new TestCaseData ( evaluatorForParamsTests ( )
2232+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22332233 , "paramsObj.Join(out x, \" ,\" , 2, 3.5, \" Hello\" , true) ?? x"
22342234 , null )
22352235 . Returns ( "2,3.5,Hello,True" )
22362236 . SetCategory ( "ParamsKeywordMethod" ) ;
22372237
2238- yield return new TestCaseData ( evaluatorForParamsTests ( )
2238+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22392239 , "paramsObj.Join(out x, \" ,\" , 2, 3.5, null, \" Hello\" , true) ?? x"
22402240 , null )
22412241 . Returns ( "2,3.5,,Hello,True" )
22422242 . SetCategory ( "ParamsKeywordMethod" ) ;
22432243
2244- yield return new TestCaseData ( evaluatorForParamsTests ( )
2244+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22452245 , "\" ,\" .UseAsSepForJoin(ref string x, 2, 3.5, \" Hello\" , true) ?? x"
22462246 , null )
22472247 . Returns ( "2,3.5,Hello,True" )
22482248 . SetCategory ( "ParamsKeywordMethod" ) ;
22492249
2250- yield return new TestCaseData ( evaluatorForParamsTests ( )
2250+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22512251 , "\" ,\" .UseAsSepForJoin(ref x, 2, 3.5, null, \" Hello\" , true) ?? x"
22522252 , null )
22532253 . Returns ( "2,3.5,,Hello,True" )
22542254 . SetCategory ( "ParamsKeywordMethod" ) ;
22552255
2256- yield return new TestCaseData ( evaluatorForParamsTests ( )
2256+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22572257 , "paramsObj.ReturnTrue(2)"
22582258 , null )
22592259 . Returns ( true )
22602260 . SetCategory ( "ParamsKeywordMethod" ) ;
2261-
2262- yield return new TestCaseData ( evaluatorForParamsTests ( )
2261+
2262+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22632263 , "paramsObj.ReturnTrue(2, \" Hello\" )"
22642264 , null )
22652265 . Returns ( true )
22662266 . SetCategory ( "ParamsKeywordMethod" ) ;
2267-
2268- yield return new TestCaseData ( evaluatorForParamsTests ( )
2267+
2268+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
22692269 , "paramsObj.ReturnTrue(2, \" Hello\" , \" Test\" )"
22702270 , null )
22712271 . Returns ( true )
22722272 . SetCategory ( "ParamsKeywordMethod" ) ;
22732273
22742274 #endregion
22752275
2276+ #region Method parameters with default value
2277+
2278+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2279+ , "paramsObj.GetTheDefaultValue()"
2280+ , null )
2281+ . Returns ( 10 )
2282+ . SetCategory ( "DefaultValueMethod" ) ;
2283+
2284+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2285+ , "paramsObj.GetTheDefaultValue(15)"
2286+ , null )
2287+ . Returns ( 15 )
2288+ . SetCategory ( "DefaultValueMethod" ) ;
2289+
2290+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2291+ , "paramsObj.GetTheDefaultValue(\" default value is \" )"
2292+ , null )
2293+ . Returns ( "default value is 20" )
2294+ . SetCategory ( "DefaultValueMethod" ) ;
2295+
2296+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2297+ , "paramsObj.GetTheDefaultValue(\" given value is \" , 25)"
2298+ , null )
2299+ . Returns ( "given value is 25" )
2300+ . SetCategory ( "DefaultValueMethod" ) ;
2301+
2302+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2303+ , "paramsObj.SumOf(out r) ?? r"
2304+ , null )
2305+ . Returns ( "default value is 30" )
2306+ . SetCategory ( "DefaultValueMethod" ) ;
2307+
2308+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2309+ , "paramsObj.SumOf(out r, \" half default value is \" ) ?? r"
2310+ , null )
2311+ . Returns ( "half default value is 30" )
2312+ . SetCategory ( "DefaultValueMethod" ) ;
2313+
2314+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2315+ , "paramsObj.SumOf(out r, \" given value is \" , 35) ?? r"
2316+ , null )
2317+ . Returns ( "given value is 35" )
2318+ . SetCategory ( "DefaultValueMethod" ) ;
2319+
2320+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2321+ , "paramsObj.SumOf()"
2322+ , null )
2323+ . Returns ( 40 )
2324+ . SetCategory ( "DefaultValueMethod" ) ;
2325+
2326+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2327+ , "paramsObj.SumOf(22)"
2328+ , null )
2329+ . Returns ( 43 )
2330+ . SetCategory ( "DefaultValueMethod" ) ;
2331+
2332+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2333+ , "paramsObj.SumOf(22, 23)"
2334+ , null )
2335+ . Returns ( 45 )
2336+ . SetCategory ( "DefaultValueMethod" ) ;
2337+
2338+ #endregion
2339+
22762340 #region Bug resolution
22772341
22782342 yield return new TestCaseData ( new ExpressionEvaluator ( )
0 commit comments