Esempio n. 1
0
        public void Upsert_Frames_From_Breaks()
        {
            var dbg = new DebugEngineProxyBuilder();
            var tt  = new TimeTravelFacadeBuilder(dbg);
            var sc  = new ServerClientBuilder();
            var bp  = new BreakpointFacadeBuilder();

            dbg.WithRunUntilBreak();
            var count = 0;

            dbg.SetRunUntilBreakCallback(() =>
            {
                if (count++ > 0)
                {
                    tt.AdvanceToNextPosition();
                }
            });
            var dbgEngProxy      = dbg.Build();
            var timeTravelFacade = tt.Build();
            var serverClient     = sc.Build();
            var bpFacade         = bp.Build();

            dbg.CurrentThreadId = MockFrames.SingleThreaded0.First().ThreadId;
            tt.WithFrames(MockFrames.SingleThreaded0);
            sc.WithUpsertFrames(() => { });

            var indexMethod = new IndexMethod
            {
                DebugEngineProxy = dbgEngProxy,
                TimeTravelFacade = timeTravelFacade,
                ServerClient     = serverClient,
                BreakpointFacade = bpFacade
            };

            indexMethod.ProcessInternal(new Position(0, 0), MockFrames.SingleThreaded0.Max(x => x.Position),
                                        new IndexOptions());
            sc.Mock.Verify(client =>
                           client.UpsertFrames(
                               It.Is <IEnumerable <Frame> >(frames => frames.SequenceEqual(MockFrames.SingleThreaded0))));
        }