Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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"));
            }
        }
Пример #5
0
 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);
     }
 }
Пример #6
0
        public void FoodChoiceService_GetPlaces()
        {
            var repositoryMock = GetRepositoryMock();

            var service = new FoodChoiceService();

            service.FoodChoiceRepository = repositoryMock.Object;

            service.GetPlaces();
            repositoryMock.Verify(r => r.GetPlaces());
        }
Пример #7
0
        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;
        }
Пример #8
0
        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));
        }
Пример #9
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        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));
            }
        }
Пример #12
0
        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));
        }