public void PutEntityBadRepositoryGetId() { var controller = new UserController(GetMockRepo(false)); var entity = new UserFormPut { Email = "test", Password = "******", Name = "test", Surname = "test", IsActive = true, IsAdmin = true }; controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); // Act var result = controller.Put(1, entity); // Assert Assert.IsType <UnprocessableEntityObjectResult>(result); }
public void PutEntityNoExist() { // Arrange var controller = new UserController(GetMockRepo()); var entity = new UserFormPut { Email = "test", Password = "******" }; controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); // Act var result = controller.Put(0, entity); // Assert Assert.IsType <NotFoundObjectResult>(result); }
public void PutEntityExist() { // Arrange var controller = new UserController(GetMockRepo()); var entity = new UserFormPut { Email = "test", Password = "******", Name = "test", Surname = "test", IsActive = true, IsAdmin = true }; controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); // Act var result = controller.Put(1, entity); // Assert Assert.IsType <OkObjectResult>(result); }
public void PutEntityCannotDemoteLastAdminBadRepo() { // Arrange var controller = new UserController(GetMockRepo(false)); var entity = new UserFormPut { IsAdmin = false }; controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); // Act var result = controller.Put(1, entity); // Assert Assert.IsType <UnprocessableEntityObjectResult>(result); }
public IActionResult Put(uint id, [FromBody] UserFormPut form) { if (this.IsAdmin() && form.IsAdmin == false) { var result = Repository.ListEntities(ImmutableList.Create(new[] { new Filter <User>("IsAdmin", true) }), 2); if (!result.IsValid) { return(UnprocessableEntity(result.Exception.Message)); } if (result.Value.Count == 1 && result.Value[0].Id == id) { return(UnprocessableEntity("Cannot demote the last admin to user")); } } return(Put <UserFormPut>(id, form)); }
public void PutEntityCanDemoteOtherAdmin() { // Arrange var controller = new UserController(GetMockRepo()); var entity = new UserFormPut { IsAdmin = false }; controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); // Act var result = controller.Put(2, entity) as OkObjectResult; var isAdmin = (bool)result.Value.GetType().GetProperty("IsAdmin")?.GetValue(result.Value); // Assert Assert.IsType <OkObjectResult>(result); Assert.False(isAdmin); }
public void PutEntityAsUserCannotChangeIsAdmin() { // Arrange uint id = 3; var controller = new UserController(GetMockRepo()); var entity = new UserFormPut { Email = "test", Password = "******", Name = "test", Surname = "test", IsAdmin = true }; controller.SetClaimsPrincipal(id, "*****@*****.**", Role.User); // Act _ = controller.Put(id, entity); controller.SetClaimsPrincipal(1, "*****@*****.**", Role.Admin); var result = controller.Get(id) as OkObjectResult; var isAdmin = (bool)result.Value.GetType().GetProperty("IsAdmin")?.GetValue(result.Value); // Assert Assert.False(isAdmin); }
public IActionResult Put(uint id, [FromBody] UserFormPut user) { return(StatusCode(StatusCodes.Status500InternalServerError)); }