示例#1
0
        [RequestSizeLimit(100_000_00)] // 10MB request size
        public async Task <IActionResult> Put([FromBody] DeckInputModel updateDeck)
        {
            if (ModelState.IsValid)
            {
                var user = await GetCurrentUserAsync();

                if (user != null)
                {
                    updateDeck.UserId = user.Id;

                    var command = new UpdateDeckCommand
                    {
                        Deck = updateDeck
                    };

                    var result = await _mediator.Send(command);

                    if (result.IsSuccessful)
                    {
                        return(Ok(result.Data));
                    }

                    return(BadRequest(result.Errors));
                }
            }
            else
            {
                return(BadRequest(ModelState.Errors()));
            }

            return(BadRequest());
        }
示例#2
0
        public async Task Given_An_Invalid_Deck_Update_Command_Should_Return_A_List_Of_Errors()
        {
            // Arrange
            var deck = new DeckInputModel
            {
                MainDeck = new List <CardInputModel>()
            };

            var command = new UpdateDeckCommand {
                Deck = deck
            };


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

            // Assert
            result.Errors.Should().NotBeEmpty();
        }
示例#3
0
        public async Task Given_An_Invalid_Deck_Update_Command_Should_Not_Be_Successful()
        {
            // Arrange
            var deck = new DeckInputModel
            {
                MainDeck = new List <CardInputModel>()
            };

            var command = new UpdateDeckCommand {
                Deck = deck
            };


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

            // Assert
            result.IsSuccessful.Should().BeFalse();
        }
示例#4
0
        public async Task Given_An_Valid_Deck_If_User_Is_Not_Owner_Update_Command_Should_Fail()
        {
            // Arrange
            var deck = new DeckInputModel
            {
                Id       = 3242,
                Name     = "deck tester",
                UserId   = Guid.NewGuid().ToString(),
                MainDeck = new List <CardInputModel>()
            };

            _fixture.RepeatCount = 40;

            deck.MainDeck =
                _fixture
                .Build <CardInputModel>()
                .With(c => c.BaseType, "monster")
                .Without(c => c.Types)
                .CreateMany()
                .ToList();


            var command = new UpdateDeckCommand {
                Deck = deck
            };

            _userService.IsUserDeckOwner(Arg.Any <string>(), Arg.Any <long>()).Returns(false);
            _deckService.Update(Arg.Any <DeckModel>()).Returns(new Deck {
                Id = 23424                                                         /*new deck id*/
            });

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

            // Assert
            result.IsSuccessful.Should().BeFalse();
        }