public async Task Handle_ThrowsDeletePromptUserUnauthorizedException_WhenTheUserIdDoesNotMatchPromptOwnerId( int userId) { //arrange var owner = new User { Username = "******" }; var prompt = new Prompt { Owner = owner }; DbContext.Add(prompt); await DbContext.SaveChangesAsync(); var user = new GetUserViewModel { Id = userId }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var command = new DeletePromptCommand(prompt.Id); //act + assert await Assert.ThrowsAsync <DeletePromptUserUnauthorizedException>(async() => await _handler.Handle(command)); }
public async Task Handle_RemovesPrompt_WhenUserIsOwner(int expectedPromptCount) { //arrange var owner = new User { Username = "******" }; var prompt = new Prompt { Owner = owner }; DbContext.Add(prompt); for (var i = 0; i < expectedPromptCount; i++) { var extraPrompt = new Prompt(); DbContext.Add(extraPrompt); } await DbContext.SaveChangesAsync(); var user = new GetUserViewModel { Id = owner.Id }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var command = new DeletePromptCommand(prompt.Id); //act await _handler.Handle(command); //assert Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync()); }
public async Task Handle_RemovesPrompt_WhenUserHasDeletePermission(int expectedPromptCount) { //arrange var prompt = new Prompt(); DbContext.Add(prompt); for (var i = 0; i < expectedPromptCount; i++) { DbContext.Add(new Prompt()); } await DbContext.SaveChangesAsync(); var user = new GetUserViewModel { Role = RoleEnum.Delete }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var command = new DeletePromptCommand(prompt.Id); //act await _handler.Handle(command); //assert Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync()); }
public async Task Handle_ThrowsDeletePromptUserUnauthorizedException_WhenThereIsNoUserLoggedIn(int id) { //arrange var command = new DeletePromptCommand(id); //act + assert await Assert.ThrowsAsync <DeletePromptUserUnauthorizedException>(async() => await _handler.Handle(command)); }
public async Task Handle_RemovesPrompt_AndAllItsChildren_AndAllSubChildren_WhenUserIsOwner( int expectedPromptCount, int childDepth) { //arrange var owner = new User { Username = "******" }; var child = new Prompt(); var prompt = new Prompt { Children = new List <Prompt> { child }, Owner = owner }; for (var i = 0; i < childDepth; i++) { var newChild = new Prompt(); child.Children.Add(newChild); child = newChild; } DbContext.Add(prompt); for (var i = 0; i < expectedPromptCount; i++) { DbContext.Add(new Prompt()); } await DbContext.SaveChangesAsync(); var user = new GetUserViewModel { Id = owner.Id }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var command = new DeletePromptCommand(prompt.Id); //act await _handler.Handle(command); //assert Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync()); }
public async Task Handle_ThrowsDeletePromptDoesNotExistException_WhenPromptIdDoesNotExist(int id) { //arrange var owner = new User { Username = "******" }; DbContext.Users.Add(owner); await DbContext.SaveChangesAsync(); var user = new GetUserViewModel { Id = owner.Id }; _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true); var command = new DeletePromptCommand(id); //act + assert await Assert.ThrowsAsync <DeletePromptDoesNotExistException>(async() => await _handler.Handle(command)); }