Пример #1
0
        public void BufferItem_ShouldReturnCountAfterAddingItem()
        {
            var sender = new TestingSender();
            var item   = new JaegerSpan();

            Assert.Equal(1, sender.BufferItem(item));
            Assert.Equal(2, sender.BufferItem(item));
            Assert.Equal(2, sender.Buffer.Count);
        }
Пример #2
0
        public async void Dispose_ShouldFlushAnyItemsCurrentlyInTheBuffer()
        {
            var sender = new TestingSender
            {
                SendAsyncDelegate = Substitute.For <Func <List <JaegerSpan>, CancellationToken, Task <int> > >()
            };
            var item = new JaegerSpan();

            sender.BufferItem(item);
            sender.BufferItem(item);
            sender.BufferItem(item);

            sender.Dispose();

            Assert.Empty(sender.Buffer);
            await sender.SendAsyncDelegate.Received(1)(Arg.Is <List <JaegerSpan> >(js => js.Count == 3), Arg.Any <CancellationToken>());
        }
Пример #3
0
        public async void FlushAsync_ShouldNotCallSendAsyncWhenTheBufferIsEmpty()
        {
            var sender = new TestingSender
            {
                SendAsyncDelegate = Substitute.For <Func <List <JaegerSpan>, CancellationToken, Task <int> > >()
            };
            var process = new JaegerProcess("testingService");
            var cts     = new CancellationTokenSource();
            var token   = cts.Token;


            var sent = await sender.FlushAsync(process, token);

            Assert.Equal(0, sent);
            Assert.Empty(sender.Buffer);
            await sender.SendAsyncDelegate.Received(0)(Arg.Any <List <JaegerSpan> >(), Arg.Any <CancellationToken>());
        }
Пример #4
0
        public async void FlushAsync_ShouldCallSendAsyncAndReturnCountOfSpansSent()
        {
            var sender = new TestingSender
            {
                SendAsyncDelegate = Substitute.For <Func <List <JaegerSpan>, CancellationToken, Task <int> > >()
            };
            var item    = new JaegerSpan();
            var process = new JaegerProcess("testingService");
            var cts     = new CancellationTokenSource();
            var token   = cts.Token;

            sender.BufferItem(item);
            sender.BufferItem(item);
            sender.BufferItem(item);
            sender.BufferItem(item);

            sender.SendAsyncDelegate(Arg.Is <List <JaegerSpan> >(js => js.Count == 4), Arg.Is(token)).Returns(4);

            var sent = await sender.FlushAsync(process, token);

            Assert.Equal(4, sent);
            Assert.Empty(sender.Buffer);
            await sender.SendAsyncDelegate.Received(1)(Arg.Is <List <JaegerSpan> >(js => js.Count == 4), Arg.Is(token));
        }
Пример #5
0
        public async void FlushAsync_ShouldThrowWhenProcessIsNull()
        {
            var sender = new TestingSender();

            await Assert.ThrowsAsync <ArgumentNullException>(() => sender.FlushAsync(null, CancellationToken.None));
        }