コード例 #1
0
        public async Task Null_guard_checks()
        {
            var sut = new MarketData.Domain.SeedWork.DomainEventsContext();

            Assert.Throws <ArgumentNullException>(() => sut.RecordDomainEvent(null !));
            Assert.Throws <ArgumentNullException>(() => sut.RecordDomainEvents(null !));
            await Assert.ThrowsAsync <ArgumentNullException>(() => sut.PublishEventsAsync(null !));
        }
コード例 #2
0
        public void Added_domain_event_should_be_stored()
        {
            var fixture = new Fixture();

            fixture.Customize(new AutoMoqCustomization());
            var domainEvent = fixture.Create <IDomainEvent>();

            var sut = new MarketData.Domain.SeedWork.DomainEventsContext();

            sut.RecordDomainEvent(domainEvent);

            sut.DomainEvents.Should().Contain(domainEvent);
        }
コード例 #3
0
        public void Recorded_domain_events_should_be_stored()
        {
            var fixture = new Fixture();

            fixture.Customize(new AutoMoqCustomization());

            var domainEvents = fixture.CreateMany <IDomainEvent>().ToArray();

            var sut = new MarketData.Domain.SeedWork.DomainEventsContext();

            sut.RecordDomainEvents(domainEvents);

            sut.DomainEvents.Should().ContainInOrder(domainEvents);
        }
コード例 #4
0
        public async Task Events_should_be_published()
        {
            var fixture = new Fixture();

            fixture.Customize(new AutoMoqCustomization());
            var publishDelegate = new Mock <PublishDomainEvent>();
            var events          = fixture.CreateMany <IDomainEvent>().ToList();

            var sut = new MarketData.Domain.SeedWork.DomainEventsContext(events);
            await sut.PublishEventsAsync(publishDelegate.Object);

            publishDelegate.Verify(
                p =>
                p.Invoke(It.IsAny <IDomainEvent>(), It.IsAny <CancellationToken>()), Times.Exactly(events.Count));
        }