public void EditCentreDetailsPostSave_without_previewing_logo_image_fails_validation()
        {
            // Given
            var model = new EditCentreDetailsViewModel
            {
                NotifyEmail    = "*****@*****.**",
                BannerText     = "Banner text",
                CentreLogoFile = A.Fake <FormFile>(),
            };

            // When
            var result = controller.EditCentreDetails(model, "save");

            // Then
            A.CallTo(
                () => centresDataService.UpdateCentreDetails(
                    A <int> ._,
                    A <string> ._,
                    A <string> ._,
                    A <byte[]?> ._,
                    A <byte[]?> ._
                    )
                )
            .MustNotHaveHappened();
            result.As <ViewResult>().Model.Should().BeEquivalentTo(model);
            controller.ModelState[nameof(EditCentreDetailsViewModel.CentreLogoFile)].ValidationState.Should()
            .Be(ModelValidationState.Invalid);
        }
Exemplo n.º 2
0
        public IActionResult EditCentreDetails()
        {
            var centreId = User.GetCentreId();

            var centreDetails = centresDataService.GetCentreDetailsById(centreId) !;

            var model = new EditCentreDetailsViewModel(centreDetails);

            return(View(model));
        }
Exemplo n.º 3
0
 public IActionResult EditCentreDetails(EditCentreDetailsViewModel model, string action)
 {
     return(action switch
     {
         "save" => EditCentreDetailsPostSave(model),
         "previewSignature" => EditCentreDetailsPostPreviewSignature(model),
         "removeSignature" => EditCentreDetailsPostRemoveSignature(model),
         "previewLogo" => EditCentreDetailsPostPreviewLogo(model),
         "removeLogo" => EditCentreDetailsPostRemoveLogo(model),
         _ => new StatusCodeResult(500)
     });
        public void EditCentreDetailsPost_returns_error_with_unexpected_action()
        {
            // Given
            const string action = "unexpectedString";
            var          model  = new EditCentreDetailsViewModel();

            // When
            var result = controller.EditCentreDetails(model, action);

            // Then
            result.Should().BeStatusCodeResult().WithStatusCode(500);
        }
        public void EditCentreDetailsPost_updates_centre_and_redirects_with_successful_save()
        {
            // Given
            const string action = "save";
            var          model  = new EditCentreDetailsViewModel
            {
                BannerText = "Test banner text",
            };

            // When
            var result = controller.EditCentreDetails(model, action);

            // Then
            result.Should().BeRedirectToActionResult().WithActionName("Index");
            A.CallTo(() => centresDataService.UpdateCentreDetails(2, null, model.BannerText, null, null))
            .MustHaveHappenedOnceExactly();
        }
        public void EditCentreDetailsPost_removeLogo_removes_logo()
        {
            // Given
            const string action = "removeLogo";
            var          model  = new EditCentreDetailsViewModel
            {
                BannerText = "Test banner text",
                CentreLogo = new byte[100],
            };

            // When
            var result = controller.EditCentreDetails(model, action);

            // Then
            result.Should().BeViewResult();
            var returnModel = (result as ViewResult) !.Model as EditCentreDetailsViewModel;

            returnModel !.CentreLogo.Should().BeNull();
        }
        public void EditCentreDetailsPost_previewLogo_calls_imageResizeService()
        {
            // Given
            const string action = "previewLogo";
            var          model  = new EditCentreDetailsViewModel
            {
                BannerText     = "Test banner text",
                CentreLogo     = new byte[100],
                CentreLogoFile = A.Fake <IFormFile>(),
            };
            var newImage = new byte [200];

            A.CallTo(() => imageResizeService.ResizeCentreImage(A <IFormFile> ._)).Returns(newImage);

            // When
            var result = controller.EditCentreDetails(model, action);

            // Then
            result.Should().BeViewResult();
            A.CallTo(() => imageResizeService.ResizeCentreImage(A <IFormFile> ._)).MustHaveHappenedOnceExactly();
            var returnModel = (result as ViewResult) !.Model as EditCentreDetailsViewModel;

            returnModel !.CentreLogo.Should().BeEquivalentTo(newImage);
        }