@@ -1563,20 +1563,30 @@ public static IEnumerable<TestCaseData> TestCasesEvaluateWithSpecificEvaluator
15631563
15641564 #endregion
15651565
1566- #region Onthefly events (Pre events and/or Generics)
1566+ #region Onthefly events (Pre events and/or Generics and/or Static )
15671567
1568- ExpressionEvaluator evaluatorOnTheFlyGenericTypes = new ExpressionEvaluator ( ) ;
1568+ ExpressionEvaluator evaluatorOnTheFlies = new ExpressionEvaluator ( ) ;
1569+
1570+ evaluatorOnTheFlies . Namespaces . Add ( "CodingSeb.ExpressionEvaluator.Tests" ) ;
15691571
15701572 void VariableEval ( object sender , VariableEvaluationEventArg e )
15711573 {
15721574 if ( e . Name . Equals ( "GetSpecifiedGenericTypesVar" ) )
15731575 e . Value = e . EvaluateGenericTypes ( ) ;
1576+ else if ( e . This is ClassOrTypeName classOrTypeName && classOrTypeName . Type == typeof ( ClassForTest1 ) && e . Name . Equals ( "OnTheFlyStaticVar" ) )
1577+ {
1578+ e . Value = 10 ;
1579+ }
15741580 }
15751581
15761582 void FunctionEval ( object sender , FunctionEvaluationEventArg e )
15771583 {
15781584 if ( e . Name . Equals ( "GetSpecifiedGenericTypesFunc" ) )
15791585 e . Value = e . EvaluateGenericTypes ( ) ;
1586+ else if ( e . This is ClassOrTypeName classOrTypeName && classOrTypeName . Type == typeof ( ClassForTest1 ) && e . Name . Equals ( "OnTheFlyStaticFunc" ) )
1587+ {
1588+ e . Value = 8 ;
1589+ }
15801590 }
15811591
15821592 void Evaluator_PreEvaluateFunction ( object sender , FunctionPreEvaluationEventArg e )
@@ -1590,6 +1600,10 @@ void Evaluator_PreEvaluateFunction(object sender, FunctionPreEvaluationEventArg
15901600 // e.EvaluateGenericTypes() return a Type[]
15911601 e . Value = e . EvaluateGenericTypes ( ) [ 0 ] . Namespace ;
15921602 }
1603+ else if ( e . This is ClassOrTypeName classOrTypeName && classOrTypeName . Type == typeof ( ClassForTest1 ) && e . Name . Equals ( "OnTheFlyStaticPreVar" ) )
1604+ {
1605+ e . Value = 15 ;
1606+ }
15931607 }
15941608
15951609 void Evaluator_PreEvaluateVariable ( object sender , VariablePreEvaluationEventArg e )
@@ -1603,49 +1617,65 @@ void Evaluator_PreEvaluateVariable(object sender, VariablePreEvaluationEventArg
16031617 // e.EvaluateGenericTypes() return a Type[]
16041618 e . Value = e . EvaluateGenericTypes ( ) [ 0 ] . Assembly . GetName ( ) . Name ;
16051619 }
1620+ else if ( e . This is ClassOrTypeName classOrTypeName && classOrTypeName . Type == typeof ( ClassForTest1 ) && e . Name . Equals ( "OnTheFlyStaticPreFunc" ) )
1621+ {
1622+ e . Value = 3 ;
1623+ }
16061624 }
16071625
1608- evaluatorOnTheFlyGenericTypes . EvaluateVariable += VariableEval ;
1609- evaluatorOnTheFlyGenericTypes . EvaluateFunction += FunctionEval ;
1626+ evaluatorOnTheFlies . EvaluateVariable += VariableEval ;
1627+ evaluatorOnTheFlies . EvaluateFunction += FunctionEval ;
16101628
1611- evaluatorOnTheFlyGenericTypes . PreEvaluateVariable += Evaluator_PreEvaluateVariable ;
1612- evaluatorOnTheFlyGenericTypes . PreEvaluateFunction += Evaluator_PreEvaluateFunction ;
1629+ evaluatorOnTheFlies . PreEvaluateVariable += Evaluator_PreEvaluateVariable ;
1630+ evaluatorOnTheFlies . PreEvaluateFunction += Evaluator_PreEvaluateFunction ;
16131631
1614- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1632+ yield return new TestCaseData ( evaluatorOnTheFlies
16151633 , "GetSpecifiedGenericTypesFunc<string>()[0]" )
16161634 . Returns ( typeof ( string ) )
16171635 . SetCategory ( "On the fly func" )
16181636 . SetCategory ( "GenericTypes" ) ;
16191637
1620- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1638+ yield return new TestCaseData ( evaluatorOnTheFlies
16211639 , "GetSpecifiedGenericTypesVar<string>[0]" )
16221640 . Returns ( typeof ( string ) )
16231641 . SetCategory ( "On the fly var" )
16241642 . SetCategory ( "GenericTypes" ) ;
16251643
1626- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1644+ yield return new TestCaseData ( evaluatorOnTheFlies
16271645 , "GetSpecifiedGenericTypesFunc<string, List<int>>()[1]" )
16281646 . Returns ( typeof ( List < int > ) )
16291647 . SetCategory ( "On the fly func" )
16301648 . SetCategory ( "GenericTypes" ) ;
16311649
1632- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1650+ yield return new TestCaseData ( evaluatorOnTheFlies
16331651 , "GetSpecifiedGenericTypesVar<string, List<int>>[1]" )
16341652 . Returns ( typeof ( List < int > ) )
16351653 . SetCategory ( "On the fly var" )
16361654 . SetCategory ( "GenericTypes" ) ;
16371655
1638- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1639- , "GenericNamespace<List<string>> ()" )
1640- . Returns ( "System.Collections.Generic" )
1656+ yield return new TestCaseData ( evaluatorOnTheFlies
1657+ , "ClassForTest1.OnTheFlyStaticFunc ()" )
1658+ . Returns ( 5 )
16411659 . SetCategory ( "On the fly func" )
1642- . SetCategory ( "GenericTypes " ) ;
1660+ . SetCategory ( "Static Onthefly " ) ;
16431661
1644- yield return new TestCaseData ( evaluatorOnTheFlyGenericTypes
1645- , "GenericAssembly<string> " )
1646- . Returns ( "mscorlib" )
1662+ yield return new TestCaseData ( evaluatorOnTheFlies
1663+ , "ClassForTest1.OnTheFlyStaticVar " )
1664+ . Returns ( 5 )
16471665 . SetCategory ( "On the fly var" )
1648- . SetCategory ( "GenericTypes" ) ;
1666+ . SetCategory ( "Static Onthefly" ) ;
1667+
1668+ yield return new TestCaseData ( evaluatorOnTheFlies
1669+ , "ClassForTest1.OnTheFlyStaticPreFunc()" )
1670+ . Returns ( 5 )
1671+ . SetCategory ( "On the fly func" )
1672+ . SetCategory ( "Static Onthefly" ) ;
1673+
1674+ yield return new TestCaseData ( evaluatorOnTheFlies
1675+ , "ClassForTest1.OnTheFlyStaticPreVar" )
1676+ . Returns ( 5 )
1677+ . SetCategory ( "On the fly var" )
1678+ . SetCategory ( "Static Onthefly" ) ;
16491679
16501680 #endregion
16511681 }
0 commit comments