Exemplo n.º 1
0
        public async Task ProjectEventsAsync_CallsApplyProjections()
        {
            sut = new TestEntityEventProjector();
            await sut.ProjectEventsAsync(aggregateId, eventMessages);

            Assert.True(sut.AppliedEvents.SequenceEqual(new List <IEventMessage <DomainAggregateEvent> >()
            {
                eventMessages[0],
                eventMessages[1]
            }));
        }
Exemplo n.º 2
0
        public async Task ProjectEventsAsync_WithSubProjector()
        {
            sut = new TestEntityEventProjector();
            var subProjector = Substitute.ForPartsOf <TestSubProjector>(new object[] { sut.AppliedEvents });

            sut.AddSubProjector(subProjector);
            await sut.ProjectEventsAsync(aggregateId, eventMessages);

            sut.AppliedEvents.Should().BeEquivalentTo(new List <IEventMessage <DomainAggregateEvent> >()
            {
                eventMessages[0],
                eventMessages[1],
                eventMessages[2]
            });

            subProjector.Received(1).Apply((IEventMessage <TestEvent3>)eventMessages[2], aggregateId);
        }