public void SinkThrowsOnNullTrackingEvent()
        {
            // arrange
            var            logger        = new FakeLogger <LoggerSink>();
            var            options       = Options.Create(new LoggerSinkOptions());
            var            sink          = new LoggerSink(logger, options);
            ITrackingEvent trackingEvent = null;

            // act
            var ex = Assert.Throws <ArgumentNullException>(() => sink.Sink(trackingEvent));

            // assert
            Assert.Equal(nameof(trackingEvent), ex.ParamName);
        }
 public void Sink(ITrackingEvent trackingEvent)
 {
     foreach (var sink in _sinks)
     {
         try
         {
             sink.Sink(trackingEvent);
         }
         catch (Exception ex)
         {
             _logErrorAction(_logger, ex);
             throw;
         }
     }
 }
Example #3
0
        public void Sink(ITrackingEvent trackingEvent)
        {
            if (trackingEvent is null)
            {
                throw new ArgumentNullException(nameof(trackingEvent));
            }

            switch (trackingEvent)
            {
            case IScopeCreatedEvent e:
                _logScopeCreated(_logger, e.ScopeId, e.Timestamp, null);
                break;

            case ITrackerCreatedEvent e:
                _logTrackerCreated(_logger, e.ScopeId, e.TrackerId, e.Timestamp, null);
                break;

            case ITrackerStartedEvent e:
                _logTrackerStarted(_logger, e.ScopeId, e.TrackerId, e.Timestamp, e.Elapsed, null);
                break;

            case ITrackerStoppedEvent e:
                _logTrackerStopped(_logger, e.ScopeId, e.TrackerId, e.Timestamp, e.Elapsed, null);
                break;

            case ITrackerCompletedEvent e:
                _logTrackerCompleted(_logger, e.ScopeId, e.TrackerId, e.Timestamp, e.Elapsed, null);
                break;

            case ITrackerFaultedEvent e:
                _logTrackerFaulted(_logger, e.ScopeId, e.TrackerId, e.Timestamp, e.Elapsed, e.Exception);
                break;

            case ITrackerCancelledEvent e:
                _logTrackerCancelled(_logger, e.ScopeId, e.TrackerId, e.Timestamp, e.Elapsed, e.Exception);
                break;

            default:
                throw new InvalidOperationException($"TrackingEvent of type '{trackingEvent.GetType().Name}' is not supported by this sink");
            }
        }
Example #4
0
 public void Sink(ITrackingEvent trackingEvent)
 {
     throw _exception;
 }
Example #5
0
 public void Sink(ITrackingEvent trackingEvent)
 {
     Events.Add(trackingEvent);
 }