Example #1
0
        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));
        }
Example #2
0
        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));
        }