Ejemplo n.º 1
0
        public async Task WriteAsync_should_set_metric_processed_events_to_one(IEvent evt)
        {
            if (evt is null)
            {
                throw new ArgumentNullException(nameof(evt));
            }

            using var resetEvent = new ManualResetEvent(false);

            var bus     = new FakeBus();
            var pattern = new PatternBuilder().FromTopic(evt.Topic).Build();

            using var subscription = new AsyncActionSubscription(bus, pattern, e =>
            {
                resetEvent.Set();
                return(Task.CompletedTask);
            });

            await subscription.EnableAsync().ConfigureAwait(false);

            await subscription.WriteAsync(evt).ConfigureAwait(false);

            var wasReset = resetEvent.WaitOne(this.waitTimeout);

            Assert.True(wasReset);

            var metric = Assert.Single(subscription.GetMetrics(), m => m.Name == Metrics.Subscription.ProcessedEvents);

            Assert.Equal(1L, metric.Value);
        }
Ejemplo n.º 2
0
        public async Task WriteAsync_should_set_metric_received_events_to_one(IEvent evt)
        {
            if (evt is null)
            {
                throw new ArgumentNullException(nameof(evt));
            }

            var bus     = new FakeBus();
            var pattern = new PatternBuilder().FromTopic(evt.Topic).Build();

            using var subscription = new AsyncActionSubscription(bus, pattern, e => Task.CompletedTask);

            await subscription.EnableAsync().ConfigureAwait(false);

            await subscription.WriteAsync(evt).ConfigureAwait(false);

            var metric = Assert.Single(subscription.GetMetrics(), m => m.Name == Metrics.Subscription.ReceivedEvents);

            Assert.Equal(1L, metric.Value);
        }