Example #1
0
        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));
        }
Example #2
0
        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());
        }
Example #3
0
        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());
        }
Example #4
0
        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));
        }
Example #5
0
        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());
        }
Example #6
0
        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));
        }