Esempio n. 1
0
        public virtual void OnProgramDestroy(uint exitCode)
        {
            Logger.Debug(string.Empty);
            var eventObject = new ProgramDestroyEvent(exitCode);

            OnDebugEvent(eventObject, InterfaceGuids.IDebugProgramDestroyEvent2Guid);
        }
        public void AbortSendsProgramDestroyEvent(ExitReason exitReason)
        {
            ProgramDestroyEvent destroyEvent = null;

            debugEngineHandler.SendEvent(
                Arg.Do <DebugEvent>(e => destroyEvent = e as ProgramDestroyEvent),
                Arg.Any <IGgpDebugProgram>(), Arg.Any <IDebugThread2>())
            .Returns(VSConstants.S_OK);

            debugEngineHandler.Abort(program, ExitInfo.Normal(exitReason));
            debugEngineHandler.Received(1).SendEvent(
                Arg.Is <DebugEvent>(e => e is ProgramDestroyEvent), program, (IDebugThread2)null);

            destroyEvent.ExitInfo.HandleResult(
                r => Assert.That(r, Is.EqualTo(exitReason)),
                ex => Assert.Fail("Unexpected error: " + ex.ToString()));
        }