public async Task DebugAdapterStopsOnLineBreakpoints()
        {
            await this.SendRequest(
                SetBreakpointsRequest.Type,
                new SetBreakpointsRequestArguments
            {
                Source = new Source
                {
                    Path = DebugScriptPath
                },
                Breakpoints = new []
                {
                    new SourceBreakpoint {
                        Line = 5
                    },
                    new SourceBreakpoint {
                        Line = 7
                    }
                }
            });

            Task <StoppedEventBody> breakEventTask = this.WaitForEvent(StoppedEvent.Type);

            await this.LaunchScript(DebugScriptPath);

            // Wait for a couple breakpoints
            StoppedEventBody stoppedDetails = await breakEventTask;

            Assert.Equal(DebugScriptPath, stoppedDetails.Source.Path);
            Assert.Equal(5, stoppedDetails.Line);

            breakEventTask = this.WaitForEvent(StoppedEvent.Type);
            await this.SendRequest(ContinueRequest.Type, new object());

            stoppedDetails = await breakEventTask;
            Assert.Equal(DebugScriptPath, stoppedDetails.Source.Path);
            Assert.Equal(7, stoppedDetails.Line);

            // Abort script execution
            Task terminatedEvent = this.WaitForEvent(TerminatedEvent.Type);
            await
            Task.WhenAll(
                this.SendRequest(DisconnectRequest.Type, new object()),
                terminatedEvent);
        }
        public StoppedEvent(StoppedEventBody body)
            : base("stopped", body)
        {

        }