Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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());
        }