public void FoodChoiceService_UpdateUser_BadUserId() { const int userId = 99; var userUpdated = new User { Id = userId, Name = "lionel", Choices = new List <Choice> { new Choice { Place = new Place { Id = 1, Label = "Carrefour" } }, new Choice { Place = new Place { Id = 1, Label = "Quick" } }, } }; const string ipAddressToCompare = "192.168.0.1"; var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; service.UpdateUser(userUpdated, ipAddressToCompare); repositoryMock.Verify(r => r.FindById(userId)); repositoryMock.Verify(r => r.Update(_user, userUpdated), Times.Never); }
public ActionResult Index() { var places = FoodChoiceService.GetPlaces(); var usersChoices = FoodChoiceService.GetTodayUsersChoices(); var ipAddress = GetIP(Request); #if DEBUG var userAlreadyRegistered = false; User user = null; #else var userAlreadyRegistered = FoodChoiceService.UserAlreadyRegisteredToday(ipAddress); var user = FoodChoiceService.FindUserByIpAddress(ipAddress); #endif var model = new ContainerModel() { // empty form FoodChoice = new UserModel { Name = user == null ? null : user.Name }, // users choices list UsersChoices = Converter.UsersToUserModels(usersChoices), // places list Places = Converter.PlacesToPlaceModels(places), IpVisitor = ipAddress, ShowForm = !userAlreadyRegistered }; return(View(model)); }
public void FoodChoiceService_AddUser() { // Arrange var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; var user = new User { Name = "lionel", IpAddress = "192.168.0.1", AvailableSeats = 2, Choices = new List <Choice> { new Choice { Place = new Place { Label = "Marie Blachère", InputType = false } } } }; // Act service.AddUser(user); // Assert repositoryMock.Verify(r => r.Add(user)); }
public ActionResult Update(ContainerModel model) { var ipAddress = GetIP(Request); if (ModelState.IsValid) { var user = Converter.UserModelToUser(model); // check choices consistency var places = FoodChoiceService.GetPlaces(); ValidationService.RemoveInvalidEntry(user, places); var errorMessage = string.Empty; if (ValidationService.ControlCheckBoxes(user, out errorMessage)) { FoodChoiceService.UpdateUser(user, ipAddress); logger.Debug("Modification de l'utilisateur: {0} - IP: {1}", user.Name, ipAddress); } return(RedirectToAction("Index")); } else { // errors are not managed logger.Error("Erreur lors de la modification: {0} - IP: {1}", model.FoodChoice.Name, ipAddress); return(RedirectToAction("Index")); } }
public void Remove(int id) { if (id > 0) { var ipAddress = GetIP(Request); logger.Debug(string.Format("Suppression de l'utilisateur id: {0} par l'IP: {1}", id, ipAddress)); FoodChoiceService.DeleteUser(id, ipAddress); } }
public void FoodChoiceService_GetPlaces() { var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; service.GetPlaces(); repositoryMock.Verify(r => r.GetPlaces()); }
public override void Initialize() { // initialize controller with services and fake repository controller = new HomeController(); controller.ValidationService = new ValidationService(); var foodChoiceService = new FoodChoiceService(); foodChoiceService.FoodChoiceRepository = GetRepositoryMock().Object; controller.FoodChoiceService = foodChoiceService; }
public void FoodChoiceService_GetTodayUsersChoices() { var today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); var tomorrow = today.AddDays(1); var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; var usersChoices = service.GetTodayUsersChoices(); repositoryMock.Verify(r => r.GetUsersChoices(today, tomorrow)); }
public void FoodChoiceService_FindUserById() { const int userId = 1; var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; var user = service.FindUserById(userId); Assert.IsNotNull(user); repositoryMock.Verify(r => r.FindById(userId)); }
public void FoodChoiceService_DeleteUser_Ok() { const int userId = 1; const string ipAddressToCompare = "192.168.0.1"; var repositoryMock = GetRepositoryMock(); var service = new FoodChoiceService(); service.FoodChoiceRepository = repositoryMock.Object; service.DeleteUser(userId, ipAddressToCompare); repositoryMock.Verify(r => r.FindById(userId)); repositoryMock.Verify(r => r.Delete(_user)); }
public ActionResult Add(ContainerModel model) { var usersChoices = FoodChoiceService.GetTodayUsersChoices(); var ipAddress = GetIP(Request); if (ModelState.IsValid) { var user = Converter.UserModelToUser(model); // check choices consistency var places = FoodChoiceService.GetPlaces(); ValidationService.RemoveInvalidEntry(user, places); var errorMessage = string.Empty; var allControlsAreOk = ValidationService.DoAllControls(user, usersChoices, out errorMessage); if (allControlsAreOk) { user.IpAddress = ipAddress; FoodChoiceService.AddUser(user); logger.Debug("Ajout de l'utilisateur: {0} - IP: {1}", user.Name, user.IpAddress); return(RedirectToAction("Index")); } else { ModelState.AddModelError("Error", errorMessage); model.UsersChoices = Converter.UsersToUserModels(usersChoices); model.IpVisitor = ipAddress; model.Places = Converter.PlacesToPlaceModels(FoodChoiceService.GetPlaces()); model.ShowForm = true; logger.Error("Erreur lors de l'ajout: {0} - IP: {1} - erreur: {2}", model.FoodChoice.Name, model.IpVisitor, errorMessage); return(View("Index", model)); } } else { var allPlaces = FoodChoiceService.GetPlaces(); model.UsersChoices = Converter.UsersToUserModels(usersChoices); model.Places = Converter.PlacesToPlaceModels(allPlaces); model.ShowForm = true; logger.Error("Erreur lors de l'ajout: {0} - IP: {1}", model.FoodChoice.Name, ipAddress); return(View("Index", model)); } }
public ActionResult Edit(int id) { var user = FoodChoiceService.FindUserById(id); if (user != null) { var allPlaces = FoodChoiceService.GetPlaces(); var container = new ContainerModel { FoodChoice = Converter.UserToFoodChoiceModel(user), IpVisitor = GetIP(Request), Places = Converter.PlacesToPlaceModels(allPlaces), ShowForm = true }; return(View("_Form", "Popup", container)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }