public async Task DispatchPreSaveAsync_ThrowsException_IfListIsEmptyAsync_Test() { var mediator = new Mock <IMediator>(); var dut = new EventDispatcher(mediator.Object); await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => dut.DispatchPreSaveAsync(null)); }
public async Task DispatchPreSaveAsync_SendsOutEvents_Test() { var mediator = new Mock <IMediator>(); var dut = new EventDispatcher(mediator.Object); var entities = new List <TestableEntityBase>(); for (var i = 0; i < 3; i++) { var entity = new Mock <TestableEntityBase>(); entity.Object.AddPreSaveDomainEvent(new Mock <INotification>().Object); entity.Object.AddPostSaveDomainEvent(new Mock <INotification>().Object); entities.Add(entity.Object); } await dut.DispatchPreSaveAsync(entities); mediator.Verify(x => x.Publish(It.IsAny <INotification>(), It.IsAny <CancellationToken>()), Times.Exactly(3)); entities.ForEach(e => Assert.AreEqual(0, e.PreSaveDomainEvents.Count)); entities.ForEach(e => Assert.AreEqual(1, e.PostSaveDomainEvents.Count)); }