Exemple #1
0
        public void CreateValidUserTest()
        {
            //Arrange
            var modelIn = new UserModelIn()
            {
                Username = "******", Password = "******", Age = 2
            };
            var fakeUser = GetFakeUser();

            // Inicializar el mock a partir de IUserService
            var userServiceMock = new Mock <IUserService>();

            // Esperamos que se llame el motodo SignUp del servicio
            userServiceMock.Setup(userService => userService.SignUp(fakeUser));
            var controller = new UsersController(userServiceMock.Object);

            //Act
            var result        = controller.Post(modelIn);
            var createdResult = result as CreatedAtRouteResult;
            var modelOut      = createdResult.Value as UserModelOut;

            //Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("GetById", createdResult.RouteName);
            Assert.AreEqual(201, createdResult.StatusCode);
            Assert.AreEqual(modelIn.Username, modelOut.Username);
            Assert.AreEqual(modelIn.Age, modelOut.Age);
        }
Exemple #2
0
        public IActionResult Post([FromBody] UserModelIn userIn)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    User user = userIn.TransformToEntity();
                    user = userService.CreateUser(user);
                    UserModelOut userModel = new UserModelOut(user);

                    return(CreatedAtRoute("Get", new { id = user.UserId }, userModel));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (NotUniqueException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (EmailFormatException ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemple #3
0
        public void CreateUserWithoutPermissionUsersController()
        {
            var modelIn = new UserModelIn()
            {
                UserName = "******", Name = "Alberto", Surname = "Lacaze", Mail = "*****@*****.**", Password = "******", IsAdmin = false
            };

            var userServicesMock = new Mock <IUserServices>();

            userServicesMock.Setup(userService => userService.CreateUser(It.IsAny <UserDTO>())).Throws(new InsufficientPermissionException());
            ILoginServices loginServices = new LoginServicesMock(roberto);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";

            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userServicesMock.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            var result        = controller.CreateUser(modelIn);
            var createdResult = result as UnauthorizedResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(401, createdResult.StatusCode);
        }
Exemple #4
0
        public void CreateUserAllreadyExistsUsersController()
        {
            var modelIn = new UserModelIn()
            {
                UserName = "******", Name = "Alberto", Surname = "Lacaze", Mail = "*****@*****.**", Password = "******", IsAdmin = true
            };
            var fakeUser = new UserDTO()
            {
                UserName = "******", Surname = "Avila", Name = "Pepe", Password = "******", Mail = "*****@*****.**", IsAdmin = true
            };

            var userServicesMock = new Mock <IUserServices>();

            userServicesMock.Setup(userService => userService.CreateUser(It.IsAny <UserDTO>())).Throws(new ServicesException());
            ILoginServices loginServices = new LoginServicesMock(pablo);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userServicesMock.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            userServicesMock.Verify(m => m.CreateUser(It.IsAny <UserDTO>()), Times.AtMostOnce());
            var result        = controller.CreateUser(modelIn);
            var createdResult = result as BadRequestObjectResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
Exemple #5
0
        public void CreateValidUserTest()
        {
            var modelIn = new UserModelIn()
            {
                Name = "Juan", LastName = " Perez", Email = "*****@*****.**", UserName = "******", Password = "******", IsAdministrator = true
            };

            var fakeUser = new User("Juan", "Perez", "Alberto", "pass", "*****@*****.**", true);

            fakeUser.UserId = 1;

            var modelOut = new UserModelOut(fakeUser);

            var userServiceMock = new Mock <IUserService>();


            userServiceMock.Setup(userService => userService.CreateUser(fakeUser));

            var controller = new UsersController(userServiceMock.Object);

            var result = controller.Post(modelIn);

            var createdResult = result as CreatedAtRouteResult;
            var modelOut2     = createdResult.Value as UserModelOut;

            userServiceMock.VerifyAll();
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("Get", createdResult.RouteName);
            Assert.AreEqual(201, createdResult.StatusCode);
        }
Exemple #6
0
        public void CreateBadModelInUsersController()
        {
            var modelIn = new UserModelIn();

            var            userService   = new Mock <IUserServices>();
            ILoginServices loginServices = new LoginServicesMock(pablo);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userService.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            controller.ModelState.AddModelError("", "Error");
            var result = controller.CreateUser(modelIn);

            var createdResult = result as BadRequestResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
Exemple #7
0
 public IActionResult Post([FromBody] UserModelIn userIn)
 {
     if (ModelState.IsValid)
     {
         try
         {
             var user         = mapper.Map <UserModelIn, UserEntity>(userIn);
             var id           = userLogic.Add(user);
             var addedUser    = userLogic.GetById(id);
             var addedUserOut = mapper.Map <UserEntity, UserModelOut>(addedUser);
             return(Created("Posted succesfully", addedUserOut));
         }
         catch (ArgumentException ex)
         {
             return(BadRequest(ex.Message));
         }
         catch (Exception ex)
         {
             return(BadRequest(ex.Message));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
Exemple #8
0
 public IActionResult Put(int id, [FromBody] UserModelIn userIn)
 {
     if (ModelState.IsValid)
     {
         try
         {
             userIn.Id = id;
             var user = mapper.Map <UserModelIn, UserEntity>(userIn);
             userLogic.Update(user);
             var updatedUser         = userLogic.GetById(id);
             var updatedUserModelOut = mapper.Map <UserEntity, UserModelOut>(updatedUser);
             return(Created("Put succesfully", updatedUserModelOut));
         }
         catch (ArgumentException e)
         {
             return(BadRequest(e.Message));
         }
         catch (Exception ex)
         {
             return(BadRequest(ex.Message));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
Exemple #9
0
        public void DeleteUserWithoutPermissionUsersController()
        {
            var modelIn = new UserModelIn();

            var userServicesMock = new Mock <IUserServices>();

            string id = "pepe";

            userServicesMock.Setup(us => us.DeleteUser(id)).Throws(new InsufficientPermissionException());
            ILoginServices loginServices = new LoginServicesMock(pablo);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userServicesMock.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            userServicesMock.Verify(m => m.DeleteUser(id), Times.AtMostOnce());
            var result        = controller.DeleteUser(id);
            var createdResult = result as UnauthorizedResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(401, createdResult.StatusCode);
        }
Exemple #10
0
        private IActionResult TryAddUser(UserModelIn user)
        {
            UserDto      toAdd    = BuildUser(user);
            UserDto      added    = userService.AddUser(toAdd);
            UserModelOut modelOut = CreateModelOut(added);

            return(CreatedAtRoute("GetUserById", new { username = toAdd.username }, modelOut));
        }
        private IActionResult TryToAddUser(UserModelIn userModel)
        {
            UserDTO user = userModel.ToServicesDTO();

            userServices.CreateUser(user);

            var addedUser = new UserModelOut(user);

            return(CreatedAtRoute("GetUser", new { userId = addedUser.UserName }, addedUser));
        }
Exemple #12
0
 public void SetUp()
 {
     service    = new Mock <IUserService>();
     auth       = new Mock <IAuthenticationService>();
     controller = new UsersController(service.Object, auth.Object, new ImageService("aPath"));
     input      = new UserModelIn()
     {
         Name = "name", Surname = "surname", Username = "******", Password = "******", Email = "*****@*****.**", IsAdmin = false
     };
     controller.ControllerContext = GetFakeControllerContext();
 }
Exemple #13
0
        public void Put_Expects_BadRequest()
        {
            var modelIn = new UserModelIn();

            userController.ModelState.AddModelError("", "Error");
            var result = userController.Put(0, modelIn);

            var createdResult = result as BadRequestObjectResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
Exemple #14
0
        private UserDto BuildUser(UserModelIn modelIn)
        {
            UserDto built = new UserDto()
            {
                name     = modelIn.Name,
                surname  = modelIn.Surname,
                username = modelIn.Username,
                password = modelIn.Password,
                email    = modelIn.Email,
                isAdmin  = modelIn.IsAdmin
            };

            return(built);
        }
Exemple #15
0
        public IActionResult Post([FromBody] UserModelIn user)
        {
            IActionResult toReturn;

            if (ModelState.IsValid)
            {
                toReturn = AddValidUser(user);
            }
            else
            {
                toReturn = BadRequest(ModelState);
            }
            return(toReturn);
        }
Exemple #16
0
        private IActionResult AddValidUser(UserModelIn user)
        {
            IActionResult result;

            try
            {
                SetSession();
                result = TryAddUser(user);
            }
            catch (ServiceException e)
            {
                result = errors.GenerateError(e);
            }

            return(result);
        }
Exemple #17
0
 public IActionResult Post([FromBody] UserModelIn userIn)
 {
     if (ModelState.IsValid)
     {
         var user = new User(userIn.Username, userIn.Password, userIn.Age);
         userService.SignUp(user);
         var addedUser = new UserModelOut()
         {
             Id = user.Id, Username = userIn.Username, Age = userIn.Age
         };
         return(CreatedAtRoute("GetById", new { id = addedUser.Id }, addedUser));
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
        public void CreateFailedUserTest()
        {
            //Arrange
            var          modelIn     = new UserModelIn();
            IUserService userService = new UserService();
            var          controller  = new UsersController(userService);

            //We need to force the error in de ModelState
            controller.ModelState.AddModelError("", "Error");
            var result = controller.Post(modelIn);

            //Act
            var createdResult = result as BadRequestObjectResult;

            //Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
Exemple #19
0
        public void CreateFailedUserTest()

        {
            var modelIn = new UserModelIn();

            var userService = new Mock <IUserService>();

            var controller = new UsersController(userService.Object);

            controller.ModelState.AddModelError("", "Error");

            var result = controller.Post(modelIn);

            var createdResult = result as BadRequestObjectResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
 public IActionResult CreateUser(UserModelIn userModel)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest());
     }
     try
     {
         CreateSession();
         return(TryToAddUser(userModel));
     }
     catch (InsufficientPermissionException)
     {
         return(Unauthorized());
     }
     catch (ServicesException e)
     {
         return(BadRequest(e.Message));
     }
 }
Exemple #21
0
 public void TestInitialize()
 {
     webApiMapper = new WebApiMapper();
     user         = new UserEntity
     {
         Id           = 1,
         CompleteName = "Nahuel Kleiman",
         Mail         = "*****@*****.**",
         Password     = "******",
         Requests     = new List <RequestEntity>(),
         IsAdmin      = false
     };
     request = new RequestEntity
     {
         Id                  = 1,
         Detail              = "Un contenedor roto en la esquina de Av. Italia y Bolivia",
         ApplicantName       = "Nahuel Kleiman",
         Mail                = "*****@*****.**",
         Phone               = "098555666",
         RequestTypeEntityId = 1
     };
     userModelOut = new UserModelOut()
     {
         Id           = 1,
         CompleteName = "Nahuel Kleiman",
         Mail         = "*****@*****.**",
         Password     = "******",
         IsAdmin      = false
     };
     userModelIn = new UserModelIn()
     {
         Id           = 1,
         CompleteName = "Nahuel Kleiman",
         Mail         = "*****@*****.**",
         Password     = "******",
         IsAdmin      = false
     };
     userLogicMock  = new Mock <IUserLogic>();
     userController = new UserController(userLogicMock.Object, webApiMapper);
 }
        public void CreateValidUserTest()
        {
            //Arrange
            var modelIn = new UserModelIn()
            {
                Username = "******", Password = "******", Age = 2
            };
            IUserService userService = new UserService();
            var          controller  = new UsersController(userService);
            var          result      = controller.Post(modelIn);

            //Act
            var createdResult = result as CreatedAtRouteResult;
            var modelOut      = createdResult.Value as UserModelOut;

            //Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("GetById", createdResult.RouteName);
            Assert.AreEqual(201, createdResult.StatusCode);
            Assert.AreEqual(modelIn.Username, modelOut.Username);
            Assert.AreEqual(modelIn.Age, modelOut.Age);
        }
Exemple #23
0
        public void UpdateUserDataInvalidModelInUsersController()
        {
            var modelIn          = new UserModelIn();
            var userServicesMock = new Mock <IUserServices>();

            string id = "Pablo";

            userServicesMock.Setup(us => us.ModifyUser(It.IsAny <UserDTO>())).Throws(new ServicesException());

            ILoginServices loginServices = new LoginServicesMock(pablo);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userServicesMock.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            controller.ModelState.AddModelError("", "");

            var result = controller.ModifyUser(id, new UserUpdateModelIn()
            {
                Name     = "",
                Surname  = "UserTest",
                Password = "",
                Mail     = "*****@*****.**"
            });

            userServicesMock.Verify(m => m.ModifyUser(It.IsAny <UserDTO>()), Times.AtMostOnce());
            var createdResult = result as BadRequestResult;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual(400, createdResult.StatusCode);
        }
Exemple #24
0
        public void CreateUserOkUsersController()
        {
            var modelIn = new UserModelIn()
            {
                UserName = "******", Name = "Alberto", Surname = "Lacaze", Mail = "*****@*****.**", Password = "******", IsAdmin = true
            };
            var fakeUser = new UserDTO()
            {
                UserName = "******", Surname = "Avila", Name = "Pepe", Password = "******", Mail = "*****@*****.**", IsAdmin = true
            };

            var userServicesMock = new Mock <IUserServices>();

            userServicesMock.Setup(userService => userService.CreateUser(fakeUser));
            ILoginServices loginServices = new LoginServicesMock(pablo);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["Authorization"] = "";
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            var controller = new UsersController(loginServices, userServicesMock.Object, encounterServices.Object, encounterQueryServices.Object)
            {
                ControllerContext = controllerContext,
            };

            userServicesMock.Verify(m => m.CreateUser(fakeUser), Times.AtMostOnce());
            var result        = controller.CreateUser(modelIn);
            var createdResult = result as CreatedAtRouteResult;
            var modelOut      = createdResult.Value as UserModelOut;

            Assert.IsNotNull(createdResult);
            Assert.AreEqual("GetUser", createdResult.RouteName);
            Assert.AreEqual(201, createdResult.StatusCode);
            Assert.AreEqual(modelIn.UserName, modelOut.UserName);
        }
Exemple #25
0
 public IActionResult Put(int id, [FromBody] UserModelIn userToUpdate)
 {
     try
     {
         if (ModelState.IsValid)
         {
             User user        = userToUpdate.TransformToEntity();
             User userUpdated = userService.UpdateUser(id, user);
             return(Ok("El usuario ha sido modificado "));
         }
         else
         {
             return(BadRequest(ModelState));
         }
     }
     catch (ArgumentException ex)
     {
         return(BadRequest(ex.Message));
     } catch (EmailFormatException ex) {
         return(BadRequest(ex.Message));
     } catch (NotUniqueException ex) {
         return(BadRequest(ex.Message));
     }
 }
Exemple #26
0
        public void CreateFailedUserTest()
        {
            //Arrange.
            var modelIn = new UserModelIn()
            {
                Name     = "name",
                Surname  = "surname",
                Password = "******",
                IsAdmin  = true
            };

            //We need to force the error in de ModelState.
            controller.ModelState.AddModelError("", "Error");

            //Act.
            IActionResult          result     = controller.Post(modelIn);
            BadRequestObjectResult badRequest = result as BadRequestObjectResult;

            //Assert.
            service.Verify(us => us.AddUser(It.IsAny <UserDto>()), Times.Never);
            Assert.IsNotNull(result);
            Assert.IsNotNull(badRequest);
            Assert.AreEqual(400, badRequest.StatusCode);
        }