33using System . Collections . Generic ;
44using System . Text . RegularExpressions ;
55using Should ;
6+ using Newtonsoft . Json ;
67
78namespace CodingSeb . ExpressionEvaluator . Tests
89{
@@ -370,7 +371,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
370371 new Action ( ( ) => evaluator0001 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
371372 new Action ( ( ) => evaluator0001 . Variables [ "x" ] . ShouldEqual ( 3 ) ) )
372373 . SetCategory ( "Script" )
373- . SetCategory ( "Variable Assignation assignation" )
374+ . SetCategory ( "Variable assignation" )
374375 . SetCategory ( "=" )
375376 . Returns ( 3 ) ;
376377
@@ -379,7 +380,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
379380 new Action ( ( ) => evaluator0001 . Variables . ContainsKey ( "y" ) . ShouldBeFalse ( ) ) ,
380381 new Action ( ( ) => evaluator0001 . Variables [ "y" ] . ShouldEqual ( 20 ) ) )
381382 . SetCategory ( "Script" )
382- . SetCategory ( "Variable Assignation assignation" )
383+ . SetCategory ( "Variable assignation" )
383384 . SetCategory ( "=" )
384385 . Returns ( 20 ) ;
385386
@@ -397,7 +398,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
397398 new Action ( ( ) => evaluator0002 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
398399 new Action ( ( ) => evaluator0002 . Variables [ "x" ] . ShouldEqual ( 9 ) ) )
399400 . SetCategory ( "Script" )
400- . SetCategory ( "Variable Assignation assignation" )
401+ . SetCategory ( "Variable assignation" )
401402 . SetCategory ( "+=" )
402403 . Returns ( 9 ) ;
403404
@@ -406,7 +407,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
406407 new Action ( ( ) => evaluator0002 . Variables [ "text" ] . ShouldEqual ( "Test" ) ) ,
407408 new Action ( ( ) => evaluator0002 . Variables [ "text" ] . ShouldEqual ( "Test Try" ) ) )
408409 . SetCategory ( "Script" )
409- . SetCategory ( "Variable Assignation assignation" )
410+ . SetCategory ( "Variable assignation" )
410411 . SetCategory ( "+=" )
411412 . Returns ( "Test Try" ) ;
412413
@@ -423,7 +424,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
423424 new Action ( ( ) => evaluator0003 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
424425 new Action ( ( ) => evaluator0003 . Variables [ "x" ] . ShouldEqual ( 1 ) ) )
425426 . SetCategory ( "Script" )
426- . SetCategory ( "Variable Assignation assignation" )
427+ . SetCategory ( "Variable assignation" )
427428 . SetCategory ( "-=" )
428429 . Returns ( 1 ) ;
429430
@@ -440,7 +441,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
440441 new Action ( ( ) => evaluator0004 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
441442 new Action ( ( ) => evaluator0004 . Variables [ "x" ] . ShouldEqual ( 10 ) ) )
442443 . SetCategory ( "Script" )
443- . SetCategory ( "Variable Assignation assignation" )
444+ . SetCategory ( "Variable assignation" )
444445 . SetCategory ( "*=" )
445446 . Returns ( 10 ) ;
446447
@@ -457,7 +458,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
457458 new Action ( ( ) => evaluator0005 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
458459 new Action ( ( ) => evaluator0005 . Variables [ "x" ] . ShouldEqual ( 2 ) ) )
459460 . SetCategory ( "Script" )
460- . SetCategory ( "Variable Assignation assignation" )
461+ . SetCategory ( "Variable assignation" )
461462 . SetCategory ( "/=" )
462463 . Returns ( 2 ) ;
463464
@@ -474,7 +475,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
474475 new Action ( ( ) => evaluator0006 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
475476 new Action ( ( ) => evaluator0006 . Variables [ "x" ] . ShouldEqual ( 1 ) ) )
476477 . SetCategory ( "Script" )
477- . SetCategory ( "Variable Assignation assignation" )
478+ . SetCategory ( "Variable assignation" )
478479 . SetCategory ( "%=" )
479480 . Returns ( 1 ) ;
480481
@@ -491,7 +492,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
491492 new Action ( ( ) => evaluator0007 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
492493 new Action ( ( ) => evaluator0007 . Variables [ "x" ] . ShouldEqual ( 6 ) ) )
493494 . SetCategory ( "Script" )
494- . SetCategory ( "Variable Assignation assignation" )
495+ . SetCategory ( "Variable assignation" )
495496 . SetCategory ( "^=" )
496497 . Returns ( 6 ) ;
497498
@@ -508,7 +509,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
508509 new Action ( ( ) => evaluator0008 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
509510 new Action ( ( ) => evaluator0008 . Variables [ "x" ] . ShouldEqual ( 1 ) ) )
510511 . SetCategory ( "Script" )
511- . SetCategory ( "Variable Assignation assignation" )
512+ . SetCategory ( "Variable assignation" )
512513 . SetCategory ( "&=" )
513514 . Returns ( 1 ) ;
514515
@@ -525,7 +526,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
525526 new Action ( ( ) => evaluator0009 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
526527 new Action ( ( ) => evaluator0009 . Variables [ "x" ] . ShouldEqual ( 7 ) ) )
527528 . SetCategory ( "Script" )
528- . SetCategory ( "Variable Assignation assignation" )
529+ . SetCategory ( "Variable assignation" )
529530 . SetCategory ( "|=" )
530531 . Returns ( 7 ) ;
531532
@@ -542,7 +543,7 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
542543 new Action ( ( ) => evaluator0010 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
543544 new Action ( ( ) => evaluator0010 . Variables [ "x" ] . ShouldEqual ( 20 ) ) )
544545 . SetCategory ( "Script" )
545- . SetCategory ( "Variable Assignation assignation" )
546+ . SetCategory ( "Variable assignation" )
546547 . SetCategory ( "<<=" )
547548 . Returns ( 20 ) ;
548549
@@ -559,16 +560,31 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
559560 new Action ( ( ) => evaluator0011 . Variables [ "x" ] . ShouldEqual ( 5 ) ) ,
560561 new Action ( ( ) => evaluator0011 . Variables [ "x" ] . ShouldEqual ( 1 ) ) )
561562 . SetCategory ( "Script" )
562- . SetCategory ( "Variable Assignation assignation" )
563+ . SetCategory ( "Variable assignation" )
563564 . SetCategory ( ">>=" )
564565 . Returns ( 1 ) ;
565566
566567 #endregion
567568
568569 #region Indexing Assignation
569570
570-
571-
571+ yield return new TestCaseData ( Resources . Script0011 , null , null , null )
572+ . SetCategory ( "Script" )
573+ . SetCategory ( "Indexing assignation" )
574+ . SetCategory ( "=" )
575+ . SetCategory ( "+=" )
576+ . SetCategory ( "-=" )
577+ . SetCategory ( "*=" )
578+ . SetCategory ( "/=" )
579+ . SetCategory ( "/=" )
580+ . SetCategory ( "%=" )
581+ . SetCategory ( "^=" )
582+ . SetCategory ( "&=" )
583+ . SetCategory ( "|=" )
584+ . SetCategory ( "<<=" )
585+ . SetCategory ( "<<=" )
586+ . SetCategory ( "List function" )
587+ . Returns ( "[8,11,3,15,2,1,6,1,7,20,1]" ) ;
572588 #endregion
573589
574590 #endregion
@@ -947,6 +963,8 @@ public object TestCasesForScriptEvaluate(string script, ExpressionEvaluator eval
947963 {
948964 evaluator = evaluator ?? new ExpressionEvaluator ( ) ;
949965
966+ evaluator . EvaluateVariable += Evaluator_EvaluateVariable ;
967+
950968 evaluator . Namespaces . Add ( "CodingSeb.ExpressionEvaluator.Tests" ) ;
951969
952970 PreExecuteAssertAction ? . Invoke ( ) ;
@@ -955,9 +973,19 @@ public object TestCasesForScriptEvaluate(string script, ExpressionEvaluator eval
955973
956974 PostExecuteAssertAction ? . Invoke ( ) ;
957975
976+ evaluator . EvaluateVariable -= Evaluator_EvaluateVariable ;
977+
958978 return result ;
959979 }
960980
981+ private void Evaluator_EvaluateVariable ( object sender , VariableEvaluationEventArg e )
982+ {
983+ if ( e . This != null && e . Name . Equals ( "Json" ) )
984+ {
985+ e . Value = JsonConvert . SerializeObject ( e . This ) ;
986+ }
987+ }
988+
961989 #endregion
962990
963991 #region Exception Throwing Evaluation
0 commit comments