Пример #1
0
        public void FromDomainEvent_Should_Create_Message()
        {
            var @event = new FakeEvent()
            {
                Text = Guid.NewGuid().ToString()
            };

            var eventSerializer = Substitute.For <IEventSerializer>();
            var expectedPayload = $"{@event.Text}";

            eventSerializer.Serialize(@event)
            .Returns(expectedPayload);

            var sut = Message.FromDomainEvent(@event, eventSerializer);

            sut.Should().NotBeNull();
            sut.Payload.Should().Be(expectedPayload);
            sut.ProcessedAt.Should().BeNull();
            sut.Type.Should().Be(typeof(FakeEvent).FullName);
        }
Пример #2
0
        public async Task Process_Should_Publish_Message()
        {
            var @event = new FakeEvent()
            {
                Text = Guid.NewGuid().ToString()
            };

            var eventSerializer = Substitute.For <IEventSerializer>();

            var sut = Message.FromDomainEvent(@event, eventSerializer);

            sut.ProcessedAt.Should().BeNull();

            var publisher = Substitute.For <IMessagePublisher>();

            await sut.Process(publisher, CancellationToken.None);

            await publisher.Received(1).PublishAsync(sut, CancellationToken.None);

            sut.ProcessedAt.Should().NotBeNull();
        }