@@ -2158,7 +2158,7 @@ void Evaluator_PreEvaluateVariable(object sender, VariablePreEvaluationEventArg
2158
2158
2159
2159
#region Method with params parameter
2160
2160
2161
- ExpressionEvaluator evaluatorForParamsTests ( )
2161
+ ExpressionEvaluator evaluatorForMethodArgs ( )
2162
2162
{
2163
2163
ExpressionEvaluator ee = new ExpressionEvaluator ( new Dictionary < string , object > ( )
2164
2164
{
@@ -2169,110 +2169,174 @@ ExpressionEvaluator evaluatorForParamsTests()
2169
2169
return ee ;
2170
2170
}
2171
2171
2172
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2172
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2173
2173
, "paramsObj.SumOf(1, 2)"
2174
2174
, null )
2175
2175
. Returns ( 3 )
2176
2176
. SetCategory ( "ParamsKeywordMethod" ) ;
2177
2177
2178
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2178
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2179
2179
, "paramsObj.SumOf(1, 2, 3)"
2180
2180
, null )
2181
2181
. Returns ( 6 )
2182
2182
. SetCategory ( "ParamsKeywordMethod" ) ;
2183
2183
2184
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2184
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2185
2185
, "paramsObj.SumOf(1,2,3,4)"
2186
2186
, null )
2187
2187
. Returns ( 10 )
2188
2188
. SetCategory ( "ParamsKeywordMethod" ) ;
2189
2189
2190
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2190
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2191
2191
, "paramsObj.SumOf2()"
2192
2192
, null )
2193
2193
. Returns ( 0 )
2194
2194
. SetCategory ( "ParamsKeywordMethod" ) ;
2195
2195
2196
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2196
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2197
2197
, "paramsObj.SumOf2(1)"
2198
2198
, null )
2199
2199
. Returns ( 1 )
2200
2200
. SetCategory ( "ParamsKeywordMethod" ) ;
2201
2201
2202
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2202
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2203
2203
, "paramsObj.SumOf2(1,2,3,4)"
2204
2204
, null )
2205
2205
. Returns ( 10 )
2206
2206
. SetCategory ( "ParamsKeywordMethod" ) ;
2207
2207
2208
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2208
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2209
2209
, "string.Join(\" ,\" , 2, 3.5, \" Hello\" , true)"
2210
2210
, null )
2211
2211
. Returns ( "2,3.5,Hello,True" )
2212
2212
. SetCategory ( "ParamsKeywordMethod" ) ;
2213
2213
2214
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2214
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2215
2215
, "string.Join(\" ,\" , 2, 3.5, null, \" Hello\" , true)"
2216
2216
, null )
2217
2217
. Returns ( "2,3.5,,Hello,True" )
2218
2218
. SetCategory ( "ParamsKeywordMethod" ) ;
2219
2219
2220
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2220
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2221
2221
, "\" ,\" .UseAsSepForJoin(2, 3.5, \" Hello\" , true)"
2222
2222
, null )
2223
2223
. Returns ( "2,3.5,Hello,True" )
2224
2224
. SetCategory ( "ParamsKeywordMethod" ) ;
2225
2225
2226
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2226
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2227
2227
, "\" ,\" .UseAsSepForJoin(2, 3.5, null, \" Hello\" , true)"
2228
2228
, null )
2229
2229
. Returns ( "2,3.5,,Hello,True" )
2230
2230
. SetCategory ( "ParamsKeywordMethod" ) ;
2231
2231
2232
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2232
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2233
2233
, "paramsObj.Join(out x, \" ,\" , 2, 3.5, \" Hello\" , true) ?? x"
2234
2234
, null )
2235
2235
. Returns ( "2,3.5,Hello,True" )
2236
2236
. SetCategory ( "ParamsKeywordMethod" ) ;
2237
2237
2238
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2238
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2239
2239
, "paramsObj.Join(out x, \" ,\" , 2, 3.5, null, \" Hello\" , true) ?? x"
2240
2240
, null )
2241
2241
. Returns ( "2,3.5,,Hello,True" )
2242
2242
. SetCategory ( "ParamsKeywordMethod" ) ;
2243
2243
2244
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2244
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2245
2245
, "\" ,\" .UseAsSepForJoin(ref string x, 2, 3.5, \" Hello\" , true) ?? x"
2246
2246
, null )
2247
2247
. Returns ( "2,3.5,Hello,True" )
2248
2248
. SetCategory ( "ParamsKeywordMethod" ) ;
2249
2249
2250
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2250
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2251
2251
, "\" ,\" .UseAsSepForJoin(ref x, 2, 3.5, null, \" Hello\" , true) ?? x"
2252
2252
, null )
2253
2253
. Returns ( "2,3.5,,Hello,True" )
2254
2254
. SetCategory ( "ParamsKeywordMethod" ) ;
2255
2255
2256
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2256
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2257
2257
, "paramsObj.ReturnTrue(2)"
2258
2258
, null )
2259
2259
. Returns ( true )
2260
2260
. SetCategory ( "ParamsKeywordMethod" ) ;
2261
-
2262
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2261
+
2262
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2263
2263
, "paramsObj.ReturnTrue(2, \" Hello\" )"
2264
2264
, null )
2265
2265
. Returns ( true )
2266
2266
. SetCategory ( "ParamsKeywordMethod" ) ;
2267
-
2268
- yield return new TestCaseData ( evaluatorForParamsTests ( )
2267
+
2268
+ yield return new TestCaseData ( evaluatorForMethodArgs ( )
2269
2269
, "paramsObj.ReturnTrue(2, \" Hello\" , \" Test\" )"
2270
2270
, null )
2271
2271
. Returns ( true )
2272
2272
. SetCategory ( "ParamsKeywordMethod" ) ;
2273
2273
2274
2274
#endregion
2275
2275
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
+
2276
2340
#region Bug resolution
2277
2341
2278
2342
yield return new TestCaseData ( new ExpressionEvaluator ( )
0 commit comments