@@ -538,6 +538,8 @@ private void TestMustDing(string expectedResult, object[] items)
538
538
private TestConsole _console ;
539
539
private MockedMethods _mockedMethods ;
540
540
private bool _oneTimeInitCompleted ;
541
+ private object _psrlInstance ;
542
+ private FieldInfo _psrlConsole , _psrlMockableMethods ;
541
543
542
544
private static string MakeCombinedColor ( ConsoleColor fg , ConsoleColor bg )
543
545
=> VTColorUtils . AsEscapeSequence ( fg ) + VTColorUtils . AsEscapeSequence ( bg , isBackground : true ) ;
@@ -554,14 +556,17 @@ private void TestSetup(TestConsole console, KeyMode keyMode, params KeyHandler[]
554
556
555
557
_console = console ?? new TestConsole ( _ ) ;
556
558
_mockedMethods = new MockedMethods ( ) ;
557
- var instance = ( PSConsoleReadLine ) typeof ( PSConsoleReadLine )
558
- . GetField ( "_singleton" , BindingFlags . Static | BindingFlags . NonPublic ) . GetValue ( null ) ;
559
- typeof ( PSConsoleReadLine )
560
- . GetField ( "_mockableMethods" , BindingFlags . Instance | BindingFlags . NonPublic )
561
- . SetValue ( instance , _mockedMethods ) ;
562
- typeof ( PSConsoleReadLine )
563
- . GetField ( "_console" , BindingFlags . Instance | BindingFlags . NonPublic )
564
- . SetValue ( instance , _console ) ;
559
+
560
+ if ( _psrlInstance is null )
561
+ {
562
+ Type psrlType = typeof ( PSConsoleReadLine ) ;
563
+ _psrlInstance = psrlType . GetField ( "_singleton" , BindingFlags . Static | BindingFlags . NonPublic ) . GetValue ( null ) ;
564
+ _psrlConsole = psrlType . GetField ( "_console" , BindingFlags . Instance | BindingFlags . NonPublic ) ;
565
+ _psrlMockableMethods = psrlType . GetField ( "_mockableMethods" , BindingFlags . Instance | BindingFlags . NonPublic ) ;
566
+ }
567
+
568
+ _psrlConsole . SetValue ( _psrlInstance , _console ) ;
569
+ _psrlMockableMethods . SetValue ( _psrlInstance , _mockedMethods ) ;
565
570
566
571
_emptyLine ??= new string ( ' ' , _console . BufferWidth ) ;
567
572
@@ -628,11 +633,11 @@ private void TestSetup(TestConsole console, KeyMode keyMode, params KeyHandler[]
628
633
var colorOptions = new SetPSReadLineOption { Colors = colors } ;
629
634
PSConsoleReadLine . SetOptions ( colorOptions ) ;
630
635
631
- if ( ! _oneTimeInitCompleted )
632
- {
633
- typeof ( PSConsoleReadLine ) . GetMethod ( "Initialize" , BindingFlags . Instance | BindingFlags . NonPublic )
634
- . Invoke ( instance , new object [ ] { /* Runspace */ null , /* EngineIntrinsics */ null , } ) ;
635
- _oneTimeInitCompleted = true ;
636
+ if ( ! _oneTimeInitCompleted )
637
+ {
638
+ typeof ( PSConsoleReadLine ) . GetMethod ( "Initialize" , BindingFlags . Instance | BindingFlags . NonPublic )
639
+ . Invoke ( _psrlInstance , new object [ ] { /* Runspace */ null , /* EngineIntrinsics */ null , } ) ;
640
+ _oneTimeInitCompleted = true ;
636
641
}
637
642
}
638
643
}
0 commit comments