public void Given_consultant_exists_when_Post_then_consultant_is_updated() { Consultant savedConsultant = null; // Given var consultant = new Consultant() { Id = Guid.NewGuid() }; var model = new ConsultantViewModel() { Id = consultant.Id, Forename = "Stansa", Surname = "Stark", Blacklisted= true, Email="*****@*****.**", QaAdvisorAssigned = Guid.NewGuid()}; var target = GetTarget(); _consultantRepository.Setup(x => x.GetById(consultant.Id)) .Returns(() => consultant); _consultantRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Consultant>())) .Callback<Consultant>(x => savedConsultant = x); // When target.Post(model); // Then Assert.That(savedConsultant.Id, Is.EqualTo(model.Id)); Assert.That(savedConsultant.Forename, Is.EqualTo(model.Forename)); Assert.That(savedConsultant.Surname, Is.EqualTo(model.Surname)); Assert.That(savedConsultant.Email, Is.EqualTo(model.Email)); Assert.That(savedConsultant.QaAdvisorAssigned, Is.EqualTo(model.QaAdvisorAssigned)); Assert.That(savedConsultant.PercentageOfChecklistsToSendToQualityControl, Is.EqualTo(100)); }
public void Given_consultant_exists_when_Delete_then_consultant_deleted() { Consultant savedConsultant = null; // Given var consultant = new Consultant() { Id = Guid.NewGuid() }; var model = new ConsultantViewModel() { Id = consultant.Id, Forename = "Stansa", Surname = "Stark", Blacklisted= true, Email="*****@*****.**", QaAdvisorAssigned = Guid.NewGuid()}; var target = new ConsultantController(_dependencyFactory.Object); _consultantRepository.Setup(x => x.GetById(consultant.Id)) .Returns(() => consultant); _consultantRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Consultant>())) .Callback<Consultant>(x => savedConsultant = x); // When target.Delete(consultant.Id); // Then Assert.That(savedConsultant.Id, Is.EqualTo(model.Id)); Assert.That(savedConsultant.Deleted, Is.EqualTo(true)); }
public void Given_username_doesnt_exist_when_Post_then_404_error_is_returned() { Consultant savedConsultant = null; // Given var model = new ConsultantViewModel() { Id = Guid.NewGuid(), Username = "******"}; var target = GetTarget(); _consultantRepository.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => null); _consultantRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Consultant>())) .Callback<Consultant>(x => savedConsultant = x); _activeDirectoryService.Setup(x => x.DoesUserExist(It.IsAny<string>())) .Returns(false); // When var result = target.Post(model); // Then Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); }
public void Given_username_exist_and_consultant_record_is_deleted_when_Post_then_consultant_restored() { // Given Consultant savedConsultant = null; var adUser = new User() { EmailAddress = "*****@*****.**", Forename = "Casey", Surname = "Stone" }; var consultant = new Consultant() {Id = Guid.Parse("744905F7-62DC-4113-BB45-644E58F02D6A"), Deleted = true, Email = "*****@*****.**"}; var model = new ConsultantViewModel() { Id = Guid.NewGuid(), Username = "******" }; var target = GetTarget(); _consultantRepository.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => null); _consultantRepository.Setup(x => x.GetByUsername(model.Username, true)) .Returns(() => consultant); _consultantRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Consultant>())) .Callback<Consultant>(x => savedConsultant = x); _activeDirectoryService.Setup(x => x.DoesUserExist(It.IsAny<string>())) .Returns(true); _activeDirectoryService.Setup(x => x.GetUser(It.IsAny<string>())) .Returns(() => adUser); // When var result = target.Put(model.Username); // Then Assert.That(savedConsultant.Deleted, Is.False); Assert.That(savedConsultant.Email, Is.EqualTo(adUser.EmailAddress)); Assert.That(savedConsultant.Id, Is.EqualTo(consultant.Id)); }
public void Given_username_exist_when_Post_then_consultant_saved() { Consultant savedConsultant = null; User adUser = new User(){EmailAddress = "*****@*****.**",Forename = "Casey", Surname = "Stone"}; // Given var model = new ConsultantViewModel() { Id = Guid.NewGuid(), Username = "******" }; var target = GetTarget(); _consultantRepository.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(() => null); _consultantRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Consultant>())) .Callback<Consultant>(x => savedConsultant = x); _activeDirectoryService.Setup(x => x.DoesUserExist(It.IsAny<string>())) .Returns(true); _activeDirectoryService.Setup(x => x.GetUser(It.IsAny<string>())) .Returns(() => adUser); // When var result = target.Put(model.Username); // Then Assert.That(savedConsultant.Id, Is.Not.EqualTo(Guid.Empty)); Assert.That(savedConsultant.Forename, Is.EqualTo(adUser.Forename)); Assert.That(savedConsultant.Surname, Is.EqualTo(adUser.Surname)); Assert.That(savedConsultant.Email, Is.EqualTo(adUser.EmailAddress)); Assert.That(savedConsultant.PercentageOfChecklistsToSendToQualityControl, Is.EqualTo(20)); }
public HttpResponseMessage Post(ConsultantViewModel model) { try { var consultant = _consultantRepository.GetById(model.Id); if (consultant == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } else { consultant.Forename = model.Forename; consultant.Surname = model.Surname; consultant.Email = model.Email; consultant.QaAdvisorAssigned = model.QaAdvisorAssigned; if (model.Blacklisted) { consultant.AddToBlacklist(); } else { consultant.RemoveFromBlacklist(); } } _consultantRepository.SaveOrUpdate(consultant); } catch (Exception ex) { LogManager.GetLogger(typeof (ConsultantController)).Error(ex); throw; } return Request.CreateResponse(HttpStatusCode.OK); }