public void PassesAddedEvents_is_published_for_each_pass() { using (PassContext context = GetContext()) { var mediator = new Mock <IMediator>(); var dateService = new Mock <IDateService>(); var currentDate = DateTime.UtcNow; dateService.Setup(x => x.Now()).Returns(currentDate); var sut = new AddSkiPassOnPurchaseCompleted(context, mediator.Object, dateService.Object); sut.Handle(new Events.PurchaseCompleted { Passes = new List <PassPurchased> { passPurchased } }); var dbPass = context.Passes.Single(); mediator.Verify(x => x.Publish(It.Is <PassAdded>(y => y.CardId == passPurchased.CardId && y.CreatedOn == currentDate && y.PassId == dbPass.Id && y.PassTypeId == passPurchased.PassTypeId))); } }
public void Empty_passes_collection_saves_nothing_to_the_database() { using (PassContext context = GetContext()) { var mediator = new Mock <IMediator>(); var dateService = new Mock <IDateService>(); var currentDate = DateTime.UtcNow; dateService.Setup(x => x.Now()).Returns(currentDate); var sut = new AddSkiPassOnPurchaseCompleted(context, mediator.Object, dateService.Object); sut.Handle(new Events.PurchaseCompleted { Passes = new List <PassPurchased>() }); Assert.Equal(0, context.Passes.Count()); } }
public void Empty_passes_collection_publishes_no_messages() { using (PassContext context = GetContext()) { var mediator = new Mock <IMediator>(); var dateService = new Mock <IDateService>(); var currentDate = DateTime.UtcNow; dateService.Setup(x => x.Now()).Returns(currentDate); var sut = new AddSkiPassOnPurchaseCompleted(context, mediator.Object, dateService.Object); sut.Handle(new Events.PurchaseCompleted { Passes = new List <PassPurchased>() }); mediator.Verify(x => x.Publish(It.IsAny <PassAdded>()), Times.Never); } }
public void Pass_is_saved_to_the_database_for_each_pass() { using (PassContext context = GetContext()) { var mediator = new Mock <IMediator>(); var dateService = new Mock <IDateService>(); var currentDate = DateTime.UtcNow; dateService.Setup(x => x.Now()).Returns(currentDate); var sut = new AddSkiPassOnPurchaseCompleted(context, mediator.Object, dateService.Object); sut.Handle(new Events.PurchaseCompleted { Passes = new List <PassPurchased> { passPurchased } }); Assert.Equal(1, context.Passes.Count()); Assert.Equal(passPurchased.CardId, context.Passes.Single().CardId); Assert.Equal(passPurchased.PassTypeId, context.Passes.Single().PassTypeId); Assert.Equal(currentDate, context.Passes.Single().CreatedOn); } }