[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()); }
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(); }
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(); }
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(); }