Given_An_Valid_DeckThumbnail_If_User_Is_Not_OwnerUpdateDeckThumbnail_Command_Should_Be_Successful() { // Arrange var deckThumbnailInputModel = new DeckThumbnailInputModel { DeckId = 3242, Thumbnail = new byte[] { 1, 2, 3 }, UserId = Guid.NewGuid().ToString() }; var command = new UpdateDeckThumbnailCommand { DeckThumbnail = deckThumbnailInputModel }; _validator.Validate(Arg.Any <DeckThumbnailInputModel>()).Returns(new ValidationResult()); _userService.IsUserDeckOwner(Arg.Any <string>(), Arg.Any <long>()).Returns(true); _settings.Value.Returns(new ApplicationSettings { DeckThumbnailImageFolderPath = "c:/deck/thumbnail" }); _deckService.SaveDeckThumbnail(Arg.Any <DeckThumbnail>()).Returns(3242); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert result.IsSuccessful.Should().BeTrue(); }
public async Task Given_An_Invalid_DeckThumbnail_UpdateDeckThumbnail_Command_Should_Not_Be_Successful() { // Arrange var deckThumbnailInputModel = new DeckThumbnailInputModel(); var command = new UpdateDeckThumbnailCommand { DeckThumbnail = deckThumbnailInputModel }; _validator.Validate(Arg.Any <DeckThumbnailInputModel>()).Returns(new ValidationResult()); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert result.IsSuccessful.Should().BeFalse(); }
public async Task Given_An_Invalid_DeckThumbnail_UpdateDeckThumbnail_Command_Should_Return_A_List_Of_Errors() { // Arrange var deckThumbnailInputModel = new DeckThumbnailInputModel(); var command = new UpdateDeckThumbnailCommand { DeckThumbnail = deckThumbnailInputModel }; _validator.Validate(Arg.Any <DeckThumbnailInputModel>()).Returns(new ValidationResult { Errors = { new ValidationFailure("Validation property.", "Validation failed.") } }); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert result.Errors.Should().NotBeEmpty(); }
public async Task <IActionResult> Patch([FromForm] UpdateDeckThumbnailInputModel inputModel) { if (ModelState.IsValid) { var user = await GetCurrentUserAsync(); if (user != null) { var command = new UpdateDeckThumbnailCommand { DeckThumbnail = new DeckThumbnailInputModel { DeckId = inputModel.DeckId, UserId = user.Id } }; using (var memoryStream = new MemoryStream()) { await inputModel.File.CopyToAsync(memoryStream); command.DeckThumbnail.Thumbnail = memoryStream.ToArray(); } var result = await _mediator.Send(command); if (result.IsSuccessful) { return(Ok(new { deckId = result.Data })); } return(BadRequest(result.Errors)); } } else { return(BadRequest(ModelState.Errors())); } return(BadRequest()); }