Exemplo n.º 1
0
        public async Task PostEditShouldReturnBadRequestWhenIdIsInvalid()
        {
            // Arrange
            var adService = this.AdServiceMockForEdit();

            var controller = new AdsController(adService.Object);

            // Act
            var result = await controller.Edit(2, new EditAdViewModel());

            // Assert

            result.Should().BeOfType <BadRequestResult>();
        }
Exemplo n.º 2
0
        public async Task EditShouldReturnViewWithCorrectModelWithValidId()
        {
            // Arrange
            var adService = this.AdServiceMockForEdit();

            var controller = new AdsController(adService.Object);

            // Act
            var result = await controller.Edit(1);

            // Assert
            result.Should().BeOfType <ViewResult>();

            var adModel = result.As <ViewResult>().Model.As <EditAdViewModel>();

            adModel.Should().Match(c => c.As <EditAdViewModel>().Name == "ad");
        }
Exemplo n.º 3
0
        public async Task EditShouldReturnNotFoundWithInvalidId()
        {
            // Arrange
            var adService = this.AdServiceMockForEdit();

            var controller = new AdsController(adService.Object);

            // Act
            var result = await controller.Edit(4);

            // Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            result
            .Should()
            .BeOfType <RedirectToActionResult>();
            Assert.Equal("NotFoundPage", redirectToActionResult.ActionName);
        }
Exemplo n.º 4
0
        public async Task PostEditShouldReturnViewWithCorrectModelWhenModelStateIsInvalid()
        {
            // Arrange
            var adService = this.AdServiceMockForEdit();

            var controller = new AdsController(adService.Object);

            controller.ModelState.AddModelError(string.Empty, "Error");

            // Act
            var result = await controller.Edit(1, new EditAdViewModel());

            // Assert
            result.Should().BeOfType <ViewResult>();

            var model = result.As <ViewResult>().Model;

            model.Should().BeOfType <EditAdViewModel>();
        }
Exemplo n.º 5
0
        public async Task PostEditShouldReturnRedirectWithValidModel()
        {
            // Arrange
            const string nameValue          = "Name";
            const string descriptionValue   = "Description";
            const string profilePicUrlValue = "ImageUrl";
            const string websiteValue       = "www.website.com";
            const int    idValue            = 1;

            string modelName          = null;
            string modelDescription   = null;
            string modelProfilePicUrl = null;
            string modelWebsite       = null;
            int    modelId            = 0;
            string successMessage     = null;

            var adService = new Mock <IAdminAdService>();

            adService
            .Setup(u => u.Edit(
                       It.IsAny <string>(),
                       It.IsAny <string>(),
                       It.IsAny <string>(),
                       It.IsAny <string>(),
                       It.IsAny <int>()))
            .Callback((string name, string description, string adProfilePicUrl, string website, int id) =>
            {
                modelName          = name;
                modelDescription   = description;
                modelProfilePicUrl = adProfilePicUrl;
                modelWebsite       = website;
                modelId            = id;
            }).Returns(Task.FromResult(true));

            var tempData = new Mock <ITempDataDictionary>();

            tempData
            .SetupSet(t => t[WebConstants.TempDataSuccessMessage]    = It.IsAny <string>())
            .Callback((string key, object message) => successMessage = message as string);

            var controller = new AdsController(adService.Object);

            controller.TempData = tempData.Object;

            // Act
            var result = await controller.Edit(idValue, new EditAdViewModel
            {
                Name            = nameValue,
                Description     = descriptionValue,
                AdProfilePicUrl = profilePicUrlValue,
                Website         = websiteValue
            });

            // Assert
            modelName.Should().Be(nameValue);
            modelDescription.Should().Be(descriptionValue);
            modelProfilePicUrl.Should().Be(profilePicUrlValue);
            modelWebsite.Should().Be(websiteValue);
            modelId.Should().Be(idValue);

            successMessage.Should().Be($"Ad {nameValue} details have been successfully changed.");

            result.Should().BeOfType <RedirectToActionResult>();

            result.As <RedirectToActionResult>().ActionName.Should().Be("Ad");
            result.As <RedirectToActionResult>().ControllerName.Should().Be("Users");
            result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("area");
            result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(idValue);
        }