Ejemplo n.º 1
0
        public async Task <CommandResult> Handle(DeleteDeckCommand request, CancellationToken cancellationToken)
        {
            var commandResult = new CommandResult();

            var isOwnerOfDeck = await _userService.IsUserDeckOwner(request.Deck.UserId, request.Deck.Id.GetValueOrDefault());

            if (isOwnerOfDeck)
            {
                await _deckService.DeleteDeckByIdAndUserId(request.Deck.UserId, request.Deck.Id.GetValueOrDefault());

                commandResult.Data         = request.Deck.Id.GetValueOrDefault();
                commandResult.IsSuccessful = true;
            }
            else
            {
                commandResult.Errors = new List <string> {
                    "Insufficient permissions to delete this deck."
                };
            }

            return(commandResult);
        }
Ejemplo n.º 2
0
        public async Task Given_A_Deck_If_User_Is_Owner_Should_Delete_Deck()
        {
            // Arrange
            var deck = new DeckInputModel
            {
                Id       = 3242,
                MainDeck = new List <CardInputModel>()
            };

            var command = new DeleteDeckCommand {
                Deck = deck
            };

            _deckService.DeleteDeckByIdAndUserId(Arg.Any <string>(), Arg.Any <long>()).Returns(3242);
            _userService.IsUserDeckOwner(Arg.Any <string>(), Arg.Any <long>()).Returns(true);

            // Act
            await _sut.Handle(command, CancellationToken.None);

            // Assert
            await _deckService.Received(1).DeleteDeckByIdAndUserId(Arg.Any <string>(), Arg.Any <long>());
        }