public async Task ShouldUpdateValidationValid()
        {
            var viewModel = new UpdateSolutionMemoryAndStorageRequest();

            var validationModel = new RequiredMaxLengthResult();

            _mockMediator
            .Setup(m => m.Send(
                       It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                        q.Id == SolutionId && q.MinimumMemoryRequirement == viewModel.MinimumMemoryRequirement &&
                                                                        q.Description == viewModel.Description), It.IsAny <CancellationToken>()))
            .ReturnsAsync(validationModel);

            var result =
                (await _memoryAndStorageController.UpdateMemoryAndStorageAsync(SolutionId, viewModel)
                 .ConfigureAwait(false)) as NoContentResult;

            result?.StatusCode.Should().Be((int)HttpStatusCode.NoContent);

            _mockMediator.Verify(
                m => m.Send(
                    It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                     q.Id == SolutionId && q.MinimumMemoryRequirement == viewModel.MinimumMemoryRequirement &&
                                                                     q.Description == viewModel.Description), It.IsAny <CancellationToken>()), Times.Once);
        }
        public async Task ShouldUpdateValidationInvalid()
        {
            var viewModel = new UpdateSolutionMemoryAndStorageRequest();

            var validationModel = new RequiredMaxLengthResult()
            {
                Required  = { "minimum-memory-requirement", "storage-requirements-description" },
                MaxLength = { "storage-requirements-description" }
            };

            _mockMediator.Setup(m =>
                                m.Send(
                                    It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                                     q.Id == SolutionId && q.MinimumMemoryRequirement == viewModel.MinimumMemoryRequirement &&
                                                                                     q.Description == viewModel.Description),
                                    It.IsAny <CancellationToken>())).ReturnsAsync(validationModel);

            var result = (await _memoryAndStorageController.UpdateMemoryAndStorageAsync(SolutionId, viewModel).ConfigureAwait(false)) as BadRequestObjectResult;

            result.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
            (result.Value as UpdateFormRequiredMaxLengthResult).Required.Should().BeEquivalentTo(new[] { "minimum-memory-requirement", "storage-requirements-description" });
            (result.Value as UpdateFormRequiredMaxLengthResult).MaxLength.Should().BeEquivalentTo(new[] { "storage-requirements-description" });

            _mockMediator.Verify(
                m => m.Send(
                    It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                     q.Id == SolutionId && q.MinimumMemoryRequirement ==
                                                                     viewModel.MinimumMemoryRequirement && q.Description == viewModel.Description),
                    It.IsAny <CancellationToken>()), Times.Once);
        }
Beispiel #3
0
 public async Task <ActionResult> UpdateMemoryAndStorageAsync(
     [Required] string id,
     UpdateSolutionMemoryAndStorageRequest model) =>
 (await mediator.Send(new UpdateSolutionMobileMemoryStorageCommand(
                          id,
                          model?.MinimumMemoryRequirement,
                          model?.Description))).ToActionResult();
Beispiel #4
0
        public async Task ShouldUpdateValidationInvalid()
        {
            var viewModel = new UpdateSolutionMemoryAndStorageRequest();

            var validationModel = new Mock <ISimpleResult>();

            validationModel.Setup(s => s.ToDictionary()).Returns(new Dictionary <string, string> {
                { "minimum-memory-requirement", "required" }, { "storage-requirements-description", "maxLength" }
            });
            validationModel.Setup(s => s.IsValid).Returns(false);

            _mockMediator.Setup(m =>
                                m.Send(
                                    It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                                     q.Id == SolutionId && q.MinimumMemoryRequirement == viewModel.MinimumMemoryRequirement &&
                                                                                     q.Description == viewModel.Description),
                                    It.IsAny <CancellationToken>())).ReturnsAsync(validationModel.Object);

            var result = (await _memoryAndStorageController.UpdateMemoryAndStorageAsync(SolutionId, viewModel).ConfigureAwait(false)) as BadRequestObjectResult;

            result.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
            var validationResult = result.Value as Dictionary <string, string>;

            validationResult.Count.Should().Be(2);
            validationResult["minimum-memory-requirement"].Should().Be("required");
            validationResult["storage-requirements-description"].Should().Be("maxLength");

            _mockMediator.Verify(
                m => m.Send(
                    It.Is <UpdateSolutionMobileMemoryStorageCommand>(q =>
                                                                     q.Id == SolutionId && q.MinimumMemoryRequirement ==
                                                                     viewModel.MinimumMemoryRequirement && q.Description == viewModel.Description),
                    It.IsAny <CancellationToken>()), Times.Once);
        }
        public async Task ShouldUpdateValidationValid()
        {
            var model = new UpdateSolutionMemoryAndStorageRequest();

            var validationModel = new Mock <ISimpleResult>();

            validationModel.Setup(s => s.IsValid).Returns(true);

            Expression <Func <UpdateSolutionMobileMemoryStorageCommand, bool> > match = c =>
                                                                                        c.Id == SolutionId &&
                                                                                        c.MinimumMemoryRequirement == model.MinimumMemoryRequirement &&
                                                                                        c.Description == model.Description;

            mockMediator
            .Setup(m => m.Send(It.Is(match), It.IsAny <CancellationToken>()))
            .ReturnsAsync(validationModel.Object);

            var result = await memoryAndStorageController.UpdateMemoryAndStorageAsync(
                SolutionId,
                model) as NoContentResult;

            Assert.NotNull(result);
            result.StatusCode.Should().Be(StatusCodes.Status204NoContent);

            mockMediator.Verify(m => m.Send(It.Is(match), It.IsAny <CancellationToken>()));
        }
        public async Task ShouldUpdateValidationInvalid()
        {
            var model = new UpdateSolutionMemoryAndStorageRequest();

            var validationModel = new Mock <ISimpleResult>();

            validationModel
            .Setup(s => s.ToDictionary())
            .Returns(new Dictionary <string, string>
            {
                { "minimum-memory-requirement", "required" },
                { "storage-requirements-description", "maxLength" },
            });

            validationModel.Setup(s => s.IsValid).Returns(false);

            Expression <Func <UpdateSolutionMobileMemoryStorageCommand, bool> > match = c =>
                                                                                        c.Id == SolutionId &&
                                                                                        c.MinimumMemoryRequirement == model.MinimumMemoryRequirement &&
                                                                                        c.Description == model.Description;

            mockMediator
            .Setup(m => m.Send(It.Is(match), It.IsAny <CancellationToken>()))
            .ReturnsAsync(validationModel.Object);

            var result = await memoryAndStorageController.UpdateMemoryAndStorageAsync(
                SolutionId,
                model) as BadRequestObjectResult;

            Assert.NotNull(result);
            result.StatusCode.Should().Be(StatusCodes.Status400BadRequest);

            var validationResult = result.Value as Dictionary <string, string>;

            Assert.NotNull(validationResult);
            validationResult.Count.Should().Be(2);
            validationResult["minimum-memory-requirement"].Should().Be("required");
            validationResult["storage-requirements-description"].Should().Be("maxLength");

            mockMediator.Verify(m => m.Send(It.Is(match), It.IsAny <CancellationToken>()));
        }
 public async Task <ActionResult> UpdateMemoryAndStorageAsync([FromRoute][Required] string id, [FromBody][Required] UpdateSolutionMemoryAndStorageRequest viewModel) =>
 (await _mediator.Send(new UpdateSolutionMobileMemoryStorageCommand(id, viewModel?.MinimumMemoryRequirement,
                                                                    viewModel?.Description)).ConfigureAwait(false)).ToActionResult();