public void ShouldBreakOnBreakPoint() { var engineEvents = new Mock <IEngineEvents>(); var fi = new FileInfo(".\\TestFile.ps1"); var sbps = new List <ScriptBreakpoint> { new ScriptBreakpoint(null, fi.FullName, 3, 0, engineEvents.Object) }; _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); var node = new ScriptProgramNode(null); node.IsFile = true; node.FileName = fi.FullName; var mre = new ManualResetEvent(false); bool breakpointHit = false; _debugger.BreakpointHit += (sender, args) => { breakpointHit = true; _debugger.Continue(); }; _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); Assert.IsTrue(breakpointHit); }
public void ShouldBreakOnBreakPoint() { var engineEvents = new Mock <IEngineEvents>(); var fi = new FileInfo(".\\TestFile.ps1"); var sbps = new List <ScriptBreakpoint> { new ScriptBreakpoint(null, fi.FullName, 3, 0, engineEvents.Object) }; _debugger.BreakpointManager.SetBreakpoints(sbps); foreach (var bp in sbps) { bp.Bind(); } var node = new ScriptProgramNode(null); node.IsFile = true; node.FileName = fi.FullName; var mre = new ManualResetEvent(false); bool breakpointHit = false; _debugger.BreakpointManager.BreakpointHit += (sender, args) => { breakpointHit = true; System.Threading.Tasks.Task.Factory.StartNew(() => _debugger.Continue()); }; _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.IsDebugging = true; _debugger.Execute(node); _debugger.IsDebugging = false; Assert.IsTrue(mre.WaitOne(5000)); Assert.IsTrue(breakpointHit); }