@@ -31,7 +31,7 @@ public async Task Select_Total_ReturnsCorrectValues()
3131 }
3232
3333 [ TestMethod ]
34- public async Task Where_TotalGreaterThan100_FiltersCorrectly ( )
34+ public virtual async Task Where_TotalGreaterThan100_FiltersCorrectly ( )
3535 {
3636 Expression < Func < Order , double > > totalExpr = o => o . Total ;
3737 var expanded = ( Expression < Func < Order , double > > ) totalExpr . ExpandExpressives ( ) ;
@@ -47,7 +47,7 @@ public async Task Where_TotalGreaterThan100_FiltersCorrectly()
4747 }
4848
4949 [ TestMethod ]
50- public async Task Where_NoMatch_ReturnsEmpty ( )
50+ public virtual async Task Where_NoMatch_ReturnsEmpty ( )
5151 {
5252 Expression < Func < Order , double > > totalExpr = o => o . Total ;
5353 var expanded = ( Expression < Func < Order , double > > ) totalExpr . ExpandExpressives ( ) ;
@@ -62,7 +62,7 @@ public async Task Where_NoMatch_ReturnsEmpty()
6262 }
6363
6464 [ TestMethod ]
65- public async Task OrderByDescending_Total_ReturnsSortedDescending ( )
65+ public virtual async Task OrderByDescending_Total_ReturnsSortedDescending ( )
6666 {
6767 Expression < Func < Order , double > > totalExpr = o => o . Total ;
6868 var expanded = ( Expression < Func < Order , double > > ) totalExpr . ExpandExpressives ( ) ;
@@ -280,7 +280,7 @@ public async Task Select_InstanceProperty_ViaExpressiveFor_ReturnsConstant()
280280 // ── Loop Tests ──────────────────────────────────────────────────────────
281281
282282 [ TestMethod ]
283- public async Task Select_ItemCount_ReturnsCorrectCounts ( )
283+ public virtual async Task Select_ItemCount_ReturnsCorrectCounts ( )
284284 {
285285 Expression < Func < Order , int > > expr = o => o . ItemCount ( ) ;
286286 var expanded = ( Expression < Func < Order , int > > ) expr . ExpandExpressives ( ) ;
@@ -291,7 +291,7 @@ public async Task Select_ItemCount_ReturnsCorrectCounts()
291291 }
292292
293293 [ TestMethod ]
294- public async Task Select_ItemTotal_ReturnsCorrectTotals ( )
294+ public virtual async Task Select_ItemTotal_ReturnsCorrectTotals ( )
295295 {
296296 Expression < Func < Order , double > > expr = o => o . ItemTotal ( ) ;
297297 var expanded = ( Expression < Func < Order , double > > ) expr . ExpandExpressives ( ) ;
@@ -302,7 +302,7 @@ public async Task Select_ItemTotal_ReturnsCorrectTotals()
302302 }
303303
304304 [ TestMethod ]
305- public async Task Select_HasExpensiveItems_ReturnsCorrectFlags ( )
305+ public virtual async Task Select_HasExpensiveItems_ReturnsCorrectFlags ( )
306306 {
307307 Expression < Func < Order , bool > > expr = o => o . HasExpensiveItems ( ) ;
308308 var expanded = ( Expression < Func < Order , bool > > ) expr . ExpandExpressives ( ) ;
@@ -313,7 +313,7 @@ public async Task Select_HasExpensiveItems_ReturnsCorrectFlags()
313313 }
314314
315315 [ TestMethod ]
316- public async Task Select_AllItemsAffordable_ReturnsCorrectFlags ( )
316+ public virtual async Task Select_AllItemsAffordable_ReturnsCorrectFlags ( )
317317 {
318318 Expression < Func < Order , bool > > expr = o => o . AllItemsAffordable ( ) ;
319319 var expanded = ( Expression < Func < Order , bool > > ) expr . ExpandExpressives ( ) ;
@@ -324,7 +324,7 @@ public async Task Select_AllItemsAffordable_ReturnsCorrectFlags()
324324 }
325325
326326 [ TestMethod ]
327- public async Task Select_ItemTotalForExpensive_ReturnsCorrectTotals ( )
327+ public virtual async Task Select_ItemTotalForExpensive_ReturnsCorrectTotals ( )
328328 {
329329 Expression < Func < Order , double > > expr = o => o . ItemTotalForExpensive ( ) ;
330330 var expanded = ( Expression < Func < Order , double > > ) expr . ExpandExpressives ( ) ;
@@ -337,7 +337,7 @@ public async Task Select_ItemTotalForExpensive_ReturnsCorrectTotals()
337337 // ── Null Conditional ────────────────────────────────────────────────────
338338
339339 [ TestMethod ]
340- public async Task Select_CustomerName_ReturnsCorrectNullableValues ( )
340+ public virtual async Task Select_CustomerName_ReturnsCorrectNullableValues ( )
341341 {
342342 Expression < Func < Order , string ? > > expr = o => o . CustomerName ;
343343 var expanded = ( Expression < Func < Order , string ? > > ) expr . ExpandExpressives ( ) ;
@@ -348,7 +348,7 @@ public async Task Select_CustomerName_ReturnsCorrectNullableValues()
348348 }
349349
350350 [ TestMethod ]
351- public async Task Select_TagLength_ReturnsCorrectNullableValues ( )
351+ public virtual async Task Select_TagLength_ReturnsCorrectNullableValues ( )
352352 {
353353 Expression < Func < Order , int ? > > expr = o => o . TagLength ;
354354 var expanded = ( Expression < Func < Order , int ? > > ) expr . ExpandExpressives ( ) ;
@@ -375,7 +375,7 @@ public async Task Where_CustomerNameEquals_FiltersCorrectly()
375375 }
376376
377377 [ TestMethod ]
378- public async Task Where_CustomerNameIsNull_FiltersCorrectly ( )
378+ public virtual async Task Where_CustomerNameIsNull_FiltersCorrectly ( )
379379 {
380380 Expression < Func < Order , string ? > > nameExpr = o => o . CustomerName ;
381381 var expanded = ( Expression < Func < Order , string ? > > ) nameExpr . ExpandExpressives ( ) ;
@@ -411,7 +411,7 @@ public virtual async Task OrderBy_TagLength_NullsAppearFirst()
411411 // ── Nullable Chain ──────────────────────────────────────────────────────
412412
413413 [ TestMethod ]
414- public async Task Select_CustomerCountry_TwoLevelChain ( )
414+ public virtual async Task Select_CustomerCountry_TwoLevelChain ( )
415415 {
416416 Expression < Func < Order , string ? > > expr = o => o . CustomerCountry ;
417417 var expanded = ( Expression < Func < Order , string ? > > ) expr . ExpandExpressives ( ) ;
@@ -526,7 +526,7 @@ public async Task Polyfill_Arithmetic_ProjectsCorrectly()
526526 }
527527
528528 [ TestMethod ]
529- public async Task Polyfill_NullConditional_ProjectsCorrectly ( )
529+ public virtual async Task Polyfill_NullConditional_ProjectsCorrectly ( )
530530 {
531531 var expr = ExpressionPolyfill . Create ( ( Order o ) => o . Customer != null ? o . Customer . Name : null ) ;
532532
@@ -607,7 +607,7 @@ public async Task Select_FormattedPrice_UsesToStringWithFormat()
607607 }
608608
609609 [ TestMethod ]
610- public async Task Where_Summary_TranslatesToSql ( )
610+ public virtual async Task Where_Summary_TranslatesToSql ( )
611611 {
612612 // Summary uses string.Concat(string, string, string, string).
613613 // This verifies the 4-arg overload translates to SQL (Where throws if not).
@@ -621,7 +621,7 @@ public async Task Where_Summary_TranslatesToSql()
621621 }
622622
623623 [ TestMethod ]
624- public async Task Where_DetailedSummary_ConcatArrayTranslatesToSql ( )
624+ public virtual async Task Where_DetailedSummary_ConcatArrayTranslatesToSql ( )
625625 {
626626 // DetailedSummary has 7 string parts, so the emitter produces string.Concat(string[]).
627627 // FlattenConcatArrayCalls rewrites it to chained Concat calls for EF Core.
@@ -649,7 +649,7 @@ public async Task Select_GetGrade_ReturnsCorrectValues()
649649 }
650650
651651 [ TestMethod ]
652- public async Task OrderBy_GetGrade_ReturnsSorted ( )
652+ public virtual async Task OrderBy_GetGrade_ReturnsSorted ( )
653653 {
654654 Expression < Func < Order , string > > gradeExpr = o => o . GetGrade ( ) ;
655655 var expandedGrade = ( Expression < Func < Order , string > > ) gradeExpr . ExpandExpressives ( ) ;
@@ -664,7 +664,7 @@ public async Task OrderBy_GetGrade_ReturnsSorted()
664664 }
665665
666666 [ TestMethod ]
667- public async Task OrderByDescending_GetGrade_ReturnsSortedDescending ( )
667+ public virtual async Task OrderByDescending_GetGrade_ReturnsSortedDescending ( )
668668 {
669669 Expression < Func < Order , string > > gradeExpr = o => o . GetGrade ( ) ;
670670 var expandedGrade = ( Expression < Func < Order , string > > ) gradeExpr . ExpandExpressives ( ) ;
0 commit comments