Esempio n. 1
0
        public async Task Has_expected_number_of_creations_and_disposals_when_singleton()
        {
            var dummyMessage = new DummyMessage();
            var messageStub  = new TransportLevelMessageBuilder()
                               .WithType(nameof(DummyMessage))
                               .WithData(dummyMessage)
                               .Build();
            var messageResult = new MessageResultBuilder()
                                .WithTransportLevelMessage(messageStub)
                                .Build();

            var services = new ServiceCollection();

            services.AddTransient <Repository>();
            services.AddSingleton <IApplicationLifetime, DummyApplicationLifetime>();
            services.AddTransient <DummyMessageHandler>();
            services.AddLogging();
            services.AddConsumer(options =>
            {
                options.WithBootstrapServers("dummyBootstrapServer");
                options.WithGroupId("dummyGroupId");
                options.RegisterMessageHandler <DummyMessage, DummyMessageHandler>("dummyTopic", nameof(DummyMessage));

                options.WithTopicSubscriberScopeFactory(new TopicSubscriberScopeFactoryStub(new TopicSubscriberScopeStub(messageResult)));
            });

            services.AddSingleton <ScopeSpy>();

            var serviceProvider = services.BuildServiceProvider();
            var consumer        = serviceProvider.GetRequiredService <Consumer>();

            ScopeSpy.Reset();

            await consumer.ConsumeSingle(CancellationToken.None);

            await consumer.ConsumeSingle(CancellationToken.None);

            Assert.Equal(1, ScopeSpy.Created);
            Assert.Equal(0, ScopeSpy.Disposed);
        }
Esempio n. 2
0
 public Repository(ScopeSpy scopeSpy)
 {
     _scopeSpy = scopeSpy;
 }
Esempio n. 3
0
 public DummyMessageHandler(ScopeSpy scopeSpy, Repository repository)
 {
     _scopeSpy   = scopeSpy;
     _repository = repository;
 }