Exemple #1
0
        public void Dispose()
        {
            // arrange
            ITransmissionBuffer <EventData> buffer      = new Mock <ITransmissionBuffer <EventData> >().Object;
            ITransmissionSender <EventData> sender      = new Mock <ITransmissionSender <EventData> >().Object;
            EventHubTransmitter             transmitter = new EventHubTransmitter(buffer, sender);

            // act
            Action verify = () => transmitter.Dispose();

            // assert
            Assert.Null(Record.Exception(verify));
        }
Exemple #2
0
        public void Enqueue_DataNull()
        {
            // arrange
            ITransmissionBuffer <EventData> buffer      = new Mock <ITransmissionBuffer <EventData> >().Object;
            ITransmissionSender <EventData> sender      = new Mock <ITransmissionSender <EventData> >().Object;
            ITelemetryEventTransmitter      transmitter = new EventHubTransmitter(buffer, sender);
            TelemetryEvent data = null;

            // act
            Action verify = () => transmitter.Enqueue(data);

            // assert
            Assert.Throws <ArgumentNullException>("data", verify);
        }
Exemple #3
0
        public void Dispose()
        {
            // arrange
            IMemoryBuffer <EventData> buffer = new Mock <IMemoryBuffer <EventData> >().Object;
            ITransmissionBuffer <EventData, EventDataBatch> aggregator = Mock.Of <ITransmissionBuffer <EventData, EventDataBatch> >();
            ITransmissionSender <EventDataBatch>            sender     = new Mock <ITransmissionSender <EventDataBatch> >().Object;
            ITransmissionStorage <EventData> storage = new Mock <ITransmissionStorage <EventData> >().Object;
            EventHubTransmitter transmitter          = new EventHubTransmitter(
                buffer, aggregator, sender, storage);

            // act
            Action verify = () => transmitter.Dispose();

            // assert
            Assert.Null(Record.Exception(verify));
        }
Exemple #4
0
        public void Enqueue_DataNull()
        {
            // arrange
            IMemoryBuffer <EventData> buffer = new Mock <IMemoryBuffer <EventData> >().Object;
            ITransmissionBuffer <EventData, EventDataBatch> aggregator = Mock.Of <ITransmissionBuffer <EventData, EventDataBatch> >();
            ITransmissionSender <EventDataBatch>            sender     = new Mock <ITransmissionSender <EventDataBatch> >().Object;
            ITransmissionStorage <EventData> storage     = new Mock <ITransmissionStorage <EventData> >().Object;
            ITelemetryEventTransmitter       transmitter = new EventHubTransmitter(
                buffer, aggregator, sender, storage);
            TelemetryEvent data = null;

            // act
            Action verify = () => transmitter.Enqueue(data);

            // assert
            Assert.Throws <ArgumentNullException>("data", verify);
        }
Exemple #5
0
        public void Enqueue_TransmissionFlow()
        {
            // assert
            ManualResetEventSlim resetEvent          = new ManualResetEventSlim();
            Mock <IMemoryBuffer <EventData> > buffer = new Mock <IMemoryBuffer <EventData> >();
            Mock <ITransmissionBuffer <EventData, EventDataBatch> > aggregator = new Mock <ITransmissionBuffer <EventData, EventDataBatch> >();
            Mock <ITransmissionSender <EventDataBatch> >            sender     = new Mock <ITransmissionSender <EventDataBatch> >();
            Mock <ITransmissionStorage <EventData> > storage     = new Mock <ITransmissionStorage <EventData> >();
            ConcurrentQueue <EventDataBatch>         bufferQueue = new ConcurrentQueue <EventDataBatch>();

            buffer
            .Setup(t => t.Enqueue(It.IsAny <EventData>()))
            .Callback((EventData d) => bufferQueue.Enqueue(EventHubsModelFactory.EventDataBatch(1, new[] { d })));
            aggregator
            .Setup(t => t.Dequeue(It.IsAny <CancellationToken>()))
            .Returns(() =>
            {
                int count = 0;
                List <EventDataBatch> results = new List <EventDataBatch>();

                while (bufferQueue.TryDequeue(out EventDataBatch d) && count < 10)
                {
                    results.Add(d);
                    count++;
                }

                return(results.ToAsyncEnumerable());
            });
            sender
            .Setup(t => t.SendAsync(It.IsAny <IAsyncEnumerable <EventDataBatch> >(), It.IsAny <CancellationToken>()))
            .Callback(() => resetEvent.Set());

            ITelemetryEventTransmitter transmitter = new EventHubTransmitter(
                buffer.Object, aggregator.Object, sender.Object, storage.Object);
            TelemetryEvent data = new TelemetryEvent();

            // act
            transmitter.Enqueue(data);

            // arrange
            resetEvent.Wait(TimeSpan.FromSeconds(5));

            sender.Verify(s => s.SendAsync(
                              It.IsAny <IAsyncEnumerable <EventDataBatch> >(),
                              It.IsAny <CancellationToken>()), Times.Once);
        }
Exemple #6
0
        public void Enqueue_TransmissionFlow()
        {
            // assert
            ManualResetEventSlim resetEvent = new ManualResetEventSlim();
            Mock <ITransmissionBuffer <EventData> > buffer      = new Mock <ITransmissionBuffer <EventData> >();
            Mock <ITransmissionSender <EventData> > sender      = new Mock <ITransmissionSender <EventData> >();
            ConcurrentQueue <EventData>             bufferQueue = new ConcurrentQueue <EventData>();

            buffer
            .Setup(t => t.EnqueueAsync(It.IsAny <EventData>(), It.IsAny <CancellationToken>()))
            .Callback((EventData d, CancellationToken t) => bufferQueue.Enqueue(d));
            buffer
            .Setup(t => t.DequeueAsync(It.IsAny <CancellationToken>()))
            .Returns(() =>
            {
                int count = 0;
                List <EventData> results = new List <EventData>();

                while (bufferQueue.TryDequeue(out EventData d) && count < 10)
                {
                    results.Add(d);
                    count++;
                }

                return(Task.FromResult(results.AsEnumerable()));
            });
            sender
            .Setup(t => t.SendAsync(It.IsAny <IEnumerable <EventData> >(), It.IsAny <CancellationToken>()))
            .Callback(() => resetEvent.Set());

            ITelemetryEventTransmitter transmitter = new EventHubTransmitter(buffer.Object, sender.Object);
            TelemetryEvent             data        = new TelemetryEvent();

            // act
            transmitter.Enqueue(data);

            // arrange
            resetEvent.Wait(TimeSpan.FromSeconds(5));

            sender.Verify(s => s.SendAsync(
                              It.Is((IEnumerable <EventData> d) => d.Count() == 1),
                              It.IsAny <CancellationToken>()), Times.Once);
        }