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 !)); }
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); }
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); }
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)); }