Example #1
0
        public async void ShouldCallInnerPublisher()
        {
            // Arrange
            var          publisherMock         = new Mock <IMessageBusPublisher>();
            var          tenantContext         = new TenantContext(new Tenant(new Guid(), string.Empty, false));
            var          tenantContextAccessor = Mock.Of <ITenantContextAccessor>(x => x.TenantContext == tenantContext);
            var          sut     = new MultiTenancyMessageBusPublisherDecorator(publisherMock.Object, tenantContextAccessor);
            const string message = "test";

            // Act
            await sut.PublishAsync(message);

            // Assert
            publisherMock.Verify(
                publisher => publisher.PublishAsync(message, default, It.IsAny <Action <MessagingEnvelope> >(), null),
Example #2
0
        public async void ShouldSetTenantIdInEnvelopeHeader()
        {
            // Arrange
            var tenantId              = Guid.NewGuid();
            var publishedEnvelope     = default(MessagingEnvelope);
            var tenantContextAccessor = Mock.Of <ITenantContextAccessor>(x => x.TenantContext == new TenantContext(new Tenant(tenantId, string.Empty, false)));

            void EnvelopeCustomizer(MessagingEnvelope envelope) => publishedEnvelope = envelope;

            var sut = new MultiTenancyMessageBusPublisherDecorator(new MockMessageBusPublisher(), tenantContextAccessor);

            // Act
            await sut.PublishAsync("test", new MessagingPublisherOptions { EnvelopeCustomizer = EnvelopeCustomizer });

            // Assert
            publishedEnvelope.Headers[MessagingHeaders.TenantId].Should().Be(tenantId.ToString());
        }