public void Given_a_qaAdvisor_when_GetNextQaAdvisorInTheRotation_then_returns_next_qaAdvisor_in_rotation() { var qaAdvisor = new QaAdvisor() { Id = Guid.NewGuid(), Forename = "Alan", Surname = "Ball", InRotation = true }; var expectedAdvisor = new QaAdvisor() { Id = Guid.NewGuid(), Forename = "John", Surname = "Virgo", InRotation = true }; //GIVEN _lastQaAdvisorAssignedRepo.Setup(x => x.GetAll()) .Returns(() => new List<LastQaAdvisorAssigned>() { new LastQaAdvisorAssigned() { QaAdvisor = qaAdvisor } }); _lastQaAdvisorAssignedRepo.Setup(x => x.GetById(It.IsAny<int>())) .Returns(() => new LastQaAdvisorAssigned { QaAdvisor = qaAdvisor }); _qaAdvisorRepo.Setup(x => x.GetAll()) .Returns(() => new List<QaAdvisor>() { new QaAdvisor() { Forename="Bob", Surname="Smith", InRotation=false} ,qaAdvisor ,expectedAdvisor} ); var target = GetTarget(); //WHEN var result = target.GetNextQaAdvisorInTheRotation(qaAdvisor); //THEN Assert.That(result.Forename, Is.EqualTo(expectedAdvisor.Forename)); Assert.That(result, Is.EqualTo(expectedAdvisor)); }
public void SetUp() { _emailSender = new Mock<IEmailSender>(); _checklistRepository = new Mock<ICheckListRepository>(); _qaRepository = new Mock<IQaAdvisorRepository>(); _urlConfiguration = new Mock<ISafeCheckEmailLinkBaseUrlConfiguration>(); _urlConfiguration.Setup(x => x.GetBaseUrl()).Returns(string.Empty); var checklistId = Guid.NewGuid(); var assignedToId = Guid.NewGuid(); _checklist = new Checklist() {ClientId = 1111, Id = checklistId, ChecklistCompletedBy = "Gareth Wilby"}; _checklistRepository.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(_checklist); var qaAdvisor = new QaAdvisor() {Id = Guid.NewGuid()}; _qaRepository.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(qaAdvisor); }
public static ChecklistIndexViewModel Map(this Checklist checklist, SiteAddressResponse visitSite, string clientAccountNumber, QaAdvisor qaAdvisor) { var checklistViewModel = checklist.Map(visitSite); checklistViewModel.CAN = clientAccountNumber; checklistViewModel.HasQaComments = checklist.Answers.Any(x => !string.IsNullOrEmpty(x.QaComments) && x.QaSignedOffBy == null); checklistViewModel.Deleted = checklist.Deleted; if (qaAdvisor != null) { checklistViewModel.QaAdvisor = new QaAdvisorViewModel() { Id = qaAdvisor.Id, Forename = qaAdvisor.Forename, Email = qaAdvisor.Email, Fullname = qaAdvisor.Forename + ' ' + qaAdvisor.Surname, Initials = qaAdvisor.Forename + ' ' + (qaAdvisor.Surname.Length > 0 ? qaAdvisor.Surname.Substring(0, 1) : "") }; } return checklistViewModel; }
public void Given_a_draft_checklist_when_assigning_then_status_is_Assigned() { //GIVN var checklist = new Checklist() {Status = "Draft"}; var qaAdvisor = new QaAdvisor(); _checklistRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => checklist); _qaAdvisorRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => qaAdvisor); var target = GetTarget(); var viewModel = new QaAdvisorViewModel(); viewModel.Id = Guid.NewGuid(); //WHEN target.AssignChecklistToQaAdvisor(Guid.NewGuid(), viewModel); Assert.That(checklist.Status,Is.EqualTo("Assigned")); }
public void Given_a_checklist_when_assigning_then_updated_required_is_added() { //GIVN var checklist = new Checklist() {Id = Guid.NewGuid()}; var qaAdvisor = new QaAdvisor(); _checklistRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => checklist); _qaAdvisorRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => qaAdvisor); var target = GetTarget(); var viewModel = new QaAdvisorViewModel(); viewModel.Id = Guid.NewGuid(); //WHEN target.SendUpdateRequiredEmailNotification(checklist.Id); Assert.That(checklist.UpdatesRequiredLog.Count, Is.EqualTo(1)); }
public void Given_QA_Advisors_exists_when_Post_then_qaAdvisor_is_updated() { QaAdvisor savedQaAdvisor = null; // Given var qaAdvisor = new QaAdvisor() { Id = Guid.NewGuid() }; var model = new QaAdvisorViewModel(){Id = qaAdvisor.Id, Forename= "Stansa", Surname="Stark", InRotation = true}; var target = new QaAdvisorController(_dependencyFactory.Object); _qaAdvisorRepository.Setup(x => x.GetById(qaAdvisor.Id)) .Returns(() => qaAdvisor); _qaAdvisorRepository.Setup(x => x.SaveOrUpdate(It.IsAny<QaAdvisor>())) .Callback<QaAdvisor>(x => savedQaAdvisor = x); // When target.Post(model); // Then Assert.That(savedQaAdvisor.Id,Is.EqualTo(model.Id)); Assert.That(savedQaAdvisor.InRotation, Is.EqualTo(model.InRotation)); Assert.That(savedQaAdvisor.Forename, Is.EqualTo(model.Forename)); Assert.That(savedQaAdvisor.Surname, Is.EqualTo(model.Surname)); }
public void Setup() { _consultant = Consultant.Create("Tywin", "Lannister"); _qaAdvisor = QaAdvisor.Create("Jon", "Stark", "*****@*****.**"); _qaAdvisor.Id = Guid.NewGuid(); _bus = new Mock<IBus>(); _clientDetailsService = new Mock<IClientDetailsService>(); _dependencyFactory = new Mock<IDependencyFactory>(); _consultantRepo = new Mock<IConsultantRepository>(); _lastQaAdvisorAssignedRepo = new Mock<IRepository<LastQaAdvisorAssigned, int>>(); _qaAdvisorRepo = new Mock<IQaAdvisorRepository>(); _consultantRepo.Setup(x=> x.GetByFullname(It.IsAny<string>())) .Returns(() => _consultant); _qaAdvisorRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => _qaAdvisor); _getCompletedChecklistQuery = new Mock<IGetCompleteChecklistsQuery>(); _dependencyFactory.Setup(x => x.GetInstance<IBus>()) .Returns(() => _bus.Object); _dependencyFactory.Setup(x => x.GetInstance<IConsultantRepository>()) .Returns(() => _consultantRepo.Object); _dependencyFactory.Setup(x => x.GetInstance<IGetCompleteChecklistsQuery>()) .Returns(() => _getCompletedChecklistQuery.Object); _dependencyFactory.Setup(x => x.GetInstance<IRepository<LastQaAdvisorAssigned, int>>()) .Returns(() => _lastQaAdvisorAssignedRepo.Object); _dependencyFactory.Setup(x => x.GetInstance<IQaAdvisorRepository>()) .Returns(() => _qaAdvisorRepo.Object); }
public void AssignChecklistToQaAdvisor(Checklist checklist, QaAdvisor qaAdvisor) { if (checklist.Status == Checklist.STATUS_SUBMITTED) return; if (checklist.QaAdvisor == null) { checklist.QaAdvisorAssignedOn = DateTime.Now; } checklist.QaAdvisor = qaAdvisor; checklist.Status = Checklist.STATUS_ASSIGNED; var sendChecklistAssignedEmail = new SendChecklistAssignedEmail { ChecklistId = checklist.Id, AssignedToId = qaAdvisor.Id }; if (checklist.ClientId.HasValue) { var clientDetail = _clientDetailsService.Get(checklist.ClientId.Value); var site = checklist.SiteId.HasValue ? _clientDetailsService.GetSite(checklist.ClientId.Value, checklist.SiteId.Value) : null; var postcode = site != null ? site.Postcode : ""; sendChecklistAssignedEmail.Can = clientDetail.CAN; sendChecklistAssignedEmail.SiteName = site != null ? site.SiteName : ""; sendChecklistAssignedEmail.Address1 = site != null ? site.Address1 : ""; sendChecklistAssignedEmail.Address2 = site != null ? site.Address2 : ""; sendChecklistAssignedEmail.Address3 = site != null ? site.Address3 : ""; sendChecklistAssignedEmail.Address4 = site != null ? site.Address4 : ""; sendChecklistAssignedEmail.Address5 = site != null ? site.Address5 : ""; sendChecklistAssignedEmail.Postcode = postcode; } else { sendChecklistAssignedEmail.Can = "Not specified"; sendChecklistAssignedEmail.Postcode = "Not specified"; } _bus.Send(sendChecklistAssignedEmail); }
public void UpdateLastQaAdvisorAssigned(QaAdvisor qaAdvisor) { var nextQaAdvisorList = _lastQaAdvisorAssignedRepository.GetAll(); var nextQaAdvisor = nextQaAdvisorList.Count() == 0 ? new LastQaAdvisorAssigned() { Id = 1 } : nextQaAdvisorList.First(); nextQaAdvisor.QaAdvisor = qaAdvisor; _lastQaAdvisorAssignedRepository.SaveOrUpdate(nextQaAdvisor); }
/// <summary> /// returns the next qaAdvisor in the rotation after the specified qaAdvisor /// </summary> /// <param name="precedingQaAdvisor"></param> /// <returns></returns> public QaAdvisor GetNextQaAdvisorInTheRotation(QaAdvisor precedingQaAdvisor) { var orderNumber = 1; var orderedAdvisors = _qaAdvisorRepository.GetAll() .OrderBy(x => x.Forename) .ThenBy(x => x.Surname) .Select(x => new {QaAdvisor = x, OrderNumber = orderNumber++}) .ToList(); var positionOfQaAdvisor = orderedAdvisors.First(x => x.QaAdvisor.Id == precedingQaAdvisor.Id).OrderNumber; var nextQaAdvisor = orderedAdvisors .Where(x => x.OrderNumber > positionOfQaAdvisor) .Where(x => !x.QaAdvisor.Deleted && x.QaAdvisor.InRotation) .OrderBy(x => x.OrderNumber) .FirstOrDefault(); //if we are at the end of the list then we need to return to the start if (nextQaAdvisor != null) { return nextQaAdvisor.QaAdvisor; } else { return orderedAdvisors.FirstOrDefault(x => !x.QaAdvisor.Deleted && x.QaAdvisor.InRotation) !=null ? orderedAdvisors.FirstOrDefault(x => !x.QaAdvisor.Deleted && x.QaAdvisor.InRotation).QaAdvisor: null; } }
public void Given_that_the_next_qaAdvisor_is_NOT_set_when_GetNextQaAdvisorInTheRotation_then_returns_null() { var expectedAdvisor = new QaAdvisor() { Id = Guid.NewGuid(), Forename = "Alan", Surname = "Ball" }; //GIVEN _lastQaAdvisorAssignedRepo.Setup(x => x.GetAll()) .Returns(() => new List<LastQaAdvisorAssigned>()); _lastQaAdvisorAssignedRepo.Setup(x => x.GetById(It.IsAny<int>())) .Returns(() => null); _qaAdvisorRepo.Setup(x => x.GetAll()) .Returns(() => new List<QaAdvisor>() { new QaAdvisor() { Forename="Sarah", Surname="Vaughan"} ,expectedAdvisor} ); var target = GetTarget(); //WHEN var result = target.GetNextQaAdvisorInTheRotation(); //THEN Assert.That(result, Is.Null); //Assert.That(result, Is.EqualTo(expectedAdvisor)); }
public void given_qaAdvisor_has_no_email_address_when_sent_then_no_CCRecipents() { //GIVEN // var handler = GetTarget(); var handler = new SendSubmitChecklistEmailHandler(_emailSender.Object, _checklistRepository.Object, _urlConfiguration.Object, _docLibraryService.Object, _clientDocumentService.Object, _clientService.Object); var message = new SendSubmitChecklistEmail() { ChecklistId = Guid.NewGuid() }; var qaAdvisor = new QaAdvisor() { Id = Guid.NewGuid(), Email = "" }; var checklist = new Checklist() { Id = message.ChecklistId, MainPersonSeenName = "Test User", EmailAddress = "*****@*****.**", Jurisdiction = "UK", ClientId = 123123, VisitDate = new DateTime(2014, 05, 01), SiteId = 1, QaAdvisor = qaAdvisor }; var siteAddress = new SiteAddressDto() { AddressLine1 = "Address", Postcode = "M1 1AA" }; _checklistRepository.Setup(c => c.GetById(It.IsAny<Guid>())) .Returns(() => checklist); _clientService.Setup(x => x.GetSite(It.IsAny<long>(), It.IsAny<long>())) .Returns(() => siteAddress); RazorEmailResult sentEmail = null; _emailSender.Setup(x => x.SendWithDifferentAttachmentName(It.IsAny<RazorEmailResult>(), It.IsAny<AttachmentType[]>())) .Callback<RazorEmailResult, AttachmentType[]>( (emailResult, attachments) => sentEmail = emailResult); //WHEN handler.Handle(message); //THEN Assert.That(sentEmail.Mail.CC.Count, Is.EqualTo(0)); }
private void BuildQuery(string checklistCreatedBy, string status, bool includeDeleted, bool excludeSubmitted, DateTime? statusFromDate, DateTime? statusToDate, DateTime? nullableValidVisitDate, int? clientDetailId, string consultantToSearchFor, QaAdvisor qaAdvisorToSearchFor) { var query = _getChecklistsQuery .WithClientId(clientDetailId.HasValue ? clientDetailId.Value : default(int)) .WithConsultantName(checklistCreatedBy) .WithStatus(status) .WithStatusDateBetween(statusFromDate, statusToDate); if (nullableValidVisitDate.HasValue) { query.WithVisitDate(nullableValidVisitDate.Value); } if (includeDeleted) { query.WithDeletedOnly(); } if (excludeSubmitted) { query.ExcludeSubmitted(); } if (!String.IsNullOrEmpty(consultantToSearchFor )) { query.WithConsultantName(consultantToSearchFor); } if (qaAdvisorToSearchFor != null) { query.WithQaAdvisor(qaAdvisorToSearchFor.Id); } }