public Fixture() { Hub = Substitute.For <IHub>(); Tracer = new TransactionTracer(Hub, "foo", "bar") { IsSampled = true }; _scope = new Scope { Transaction = Tracer }; var logger = Substitute.For <IDiagnosticLogger>(); logger.IsEnabled(Arg.Any <SentryLevel>()).Returns(true); Options = new SentryOptions { TracesSampleRate = 1.0, Debug = true, DiagnosticLogger = logger }; Hub.GetSpan().ReturnsForAnyArgs(_ => Spans?.LastOrDefault(s => !s.IsFinished) ?? Tracer); Hub.CaptureEvent(Arg.Any <SentryEvent>(), Arg.Any <Scope>()).Returns(_ => { Spans.LastOrDefault(s => !s.IsFinished)?.Finish(SpanStatus.InternalError); return(SentryId.Empty); }); Hub.When(hub => hub.ConfigureScope(Arg.Any <Action <Scope> >())) .Do(callback => callback.Arg <Action <Scope> >().Invoke(_scope)); }
void DeleteSpan(object parameter) { if (Spans.Count > 1) { Spans.Remove(Spans.LastOrDefault()); SelectedSpan = Spans.LastOrDefault(); } }
/// <inheritdoc /> public override TextSpan <CultureSpecificCharacterBufferRange> GetPrecedingText(int textSourceCharacterIndexLimit) { Debug.WriteLine($"{nameof(GetPrecedingText)}: {textSourceCharacterIndexLimit}"); var span = Spans.FirstOrDefault(z => z.Value.StartIndex + z.Value.Length == textSourceCharacterIndexLimit); if (span != null) { return(new TextSpan <CultureSpecificCharacterBufferRange>(span.Length, new CultureSpecificCharacterBufferRange(CultureInfo.CurrentUICulture, new CharacterBufferRange(TextBuffer, span.Value.StartIndex, span.Length)))); } span = Spans.LastOrDefault(z => z.Value.StartIndex < textSourceCharacterIndexLimit); var offset = (span.Value.StartIndex + span.Value.Length); return(new TextSpan <CultureSpecificCharacterBufferRange>(offset - textSourceCharacterIndexLimit, new CultureSpecificCharacterBufferRange(CultureInfo.CurrentUICulture, new CharacterBufferRange(TextBuffer, offset, offset - textSourceCharacterIndexLimit)))); }
void AddSpan(object parameter) { Spans.Add(new Span(Spans.LastOrDefault())); }