public async Task ThenEmailIsSent() { var dbContext = ContextHelper.GetInMemoryContext(); var requestFeedbackId = Guid.NewGuid(); await dbContext.VisitFeedback.AddAsync(new VisitFeedback() { Id = requestFeedbackId, Status = FeedbackStatus.NotStarted, Visit = new Visit() { OrganisationContact = new OrganisationContact() { Email = "*****@*****.**", FirstName = "Fred" }, SupportRequest = new SupportRequest() { Organisation = new Organisation() { OrganisationName = "Org1" } } } }); await dbContext.SaveChangesAsync(); var emailService = Substitute.For <IEmailService>(); var handler = new SetVisitFeedbackCompleteHandler(dbContext, emailService); await handler.Handle(new SetVisitFeedbackCompleteCommand(requestFeedbackId, FeedbackStatus.Complete), CancellationToken.None); await emailService.Received().SendFeedbackSubmitted("*****@*****.**", "Fred", "Org1"); }
public async Task ThenVisitStatusSetToComplete() { var dbContext = ContextHelper.GetInMemoryContext(); var requestFeedbackId = Guid.NewGuid(); await dbContext.VisitFeedback.AddAsync(new VisitFeedback() { Id = requestFeedbackId, Status = FeedbackStatus.NotStarted, Visit = new Visit() { OrganisationContact = new OrganisationContact() { Email = "*****@*****.**", FirstName = "Fred" }, SupportRequest = new SupportRequest() { Organisation = new Organisation() { OrganisationName = "Org1" } } } }); await dbContext.SaveChangesAsync(); var handler = new SetVisitFeedbackCompleteHandler(dbContext, Substitute.For <IEmailService>()); await handler.Handle(new SetVisitFeedbackCompleteCommand(requestFeedbackId, FeedbackStatus.Complete), CancellationToken.None); (await dbContext.VisitFeedback.Where(visit => visit.Id == requestFeedbackId).SingleAsync()).Status.Should().Be(FeedbackStatus.Complete); }