public async Task PublishAsync_SubscribedMessage_ReceivedRepublishedMessages(IEvent message, int expectedEventOne, int expectedEventTwo) { var service1 = new TestServiceOne(); var service2 = new TestServiceTwo(); var publisher = GetPublisher(new RepublishMessagesTestService(), service1, service2); await publisher.PublishAsync(message); service1.ReceivedMessagesCount.Should().Be(expectedEventOne * 2); service2.ReceivedMessagesCount.Should().Be(expectedEventTwo * 2); }
public async Task Publish_SomeMessages_ReceivedByAllSubscribedMethods() { var service1 = new TestServiceOne(); var service2 = new TestServiceTwo(); var publisher = GetPublisher(config => config.Subscribe <ISubscriber>(false), service1, service2); await publisher.PublishAsync(new TestCommandOne()); // service1 +2 await publisher.PublishAsync(new TestCommandTwo()); // service2 +2 publisher.Publish(new TestCommandOne()); // service1 +2 await publisher.PublishAsync(new TransactionCompletedEvent()); // service1/2 +1 publisher.Publish(new TransactionAbortedEvent()); // service1/2 +1 service1.ReceivedMessagesCount.Should().Be(6); service2.ReceivedMessagesCount.Should().Be(4); }
public void AddSubscribers_Interface_MessagesReceived() { var testService1 = new TestServiceOne(); var testService2 = new TestServiceTwo(); var serviceProvider = ServiceProviderHelper.GetServiceProvider( services => services .AddSilverback() .AddSubscribers <IService>() .Services .AddSingleton <IService>(testService1) .AddSingleton(testService1) .AddSingleton <IService>(testService2) .AddSingleton(testService2)); var publisher = serviceProvider.GetRequiredService <IPublisher>(); publisher.Publish(new object[] { new TestCommandOne(), new TestCommandTwo() }); testService1.ReceivedMessagesCount.Should().BeGreaterThan(0); testService2.ReceivedMessagesCount.Should().BeGreaterThan(0); }