Exemple #1
0
        public async Task TestGetEditIdValid()
        {
            // Arrange
            var inputModel = new ListingInputModel
            {
                Id          = 666,
                Description = "test"
            };

            var mockService = new Mock <IListingService>();

            mockService
            .Setup(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()))
            .ReturnsAsync(inputModel)
            .Verifiable();

            var controller = new ListingController(mockService.Object);

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

            // Assert
            var viewResult  = Assert.IsAssignableFrom <ViewResult>(result);
            var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model);

            Assert.Equal("test", modelResult.Description);
            mockService.Verify(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()), Times.Once);
        }
Exemple #2
0
        public async Task TestPostEditEditSuccessTrue()
        {
            // Arrange
            var mockService = new Mock <IListingService>();

            mockService
            .Setup(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()))
            .ReturnsAsync(true)
            .Verifiable();

            var controller = new ListingController(mockService.Object);

            controller.TempData =
                new TempDataDictionary(
                    new DefaultHttpContext(),
                    Mock.Of <ITempDataProvider>());

            // Act
            var result =
                await controller.Edit(
                    1,
                    new ListingInputModel { Id = 1, Description = "test" });

            // Assert
            var redirectResult =
                Assert.IsAssignableFrom <RedirectToActionResult>(result);

            Assert.Equal("Home", redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);

            mockService.Verify(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()),
                               Times.Once);
        }
Exemple #3
0
        public async Task TestPostEditEditSuccessFalse()
        {
            // Arrange
            var mockService = new Mock <IListingService>();

            mockService
            .Setup(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()))
            .ReturnsAsync(false)
            .Verifiable();

            var controller = new ListingController(mockService.Object);

            controller.TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>());

            // Act
            var result = await controller.Edit(1, new ListingInputModel { Id = 1, Description = "test" });

            // Assert
            var viewResult  = Assert.IsAssignableFrom <ViewResult>(result);
            var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model);

            Assert.Equal("test", modelResult.Description);
            Assert.NotNull(controller.TempData["EditError"]);
            Assert.Equal("There was a problem updating the information. Please ensure the data entered is valid, and try again.",
                         controller.TempData["EditError"]);

            mockService.Verify(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()),
                               Times.Once);
        }
Exemple #4
0
        public async Task TestGetEditIdNull()
        {
            // Arrange
            var controller = new ListingController(null);

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

            // Assert
            Assert.IsAssignableFrom <NotFoundResult>(result);
        }
Exemple #5
0
        public async Task TestPostEditIdUnequalToInputModelId()
        {
            // Arrange
            var controller = new ListingController(null);

            // Act
            var result = await controller.Edit(1, new ListingInputModel { Id = 2 });

            // Assert
            Assert.IsAssignableFrom <NotFoundResult>(result);
        }
Exemple #6
0
        public async Task TestPostEditInputModelNull()
        {
            // Arrange
            var controller = new ListingController(null);

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

            // Assert
            Assert.IsAssignableFrom <BadRequestResult>(result);
        }
Exemple #7
0
        public async void ReturnValidModelForCorrectId(int?id)
        {
            var result = await sut.Edit(id);

            var vr = Assert.IsType <ViewResult>(result);

            fixture.repositoryWrapper.Verify(y => y.Listing.GetListingByIdAsync(It.IsAny <int>()), Times.Once);
            Assert.Equal("Edit", vr.ViewName);
            Assert.IsAssignableFrom <ListingManagementDTO>(vr.Model);
        }
Exemple #8
0
        public async Task TestPostEditModelStateInvalid()
        {
            // Arrange
            var controller = new ListingController(null);

            controller.ModelState.AddModelError("test", "test");

            // Act
            var result = await controller.Edit(1, new ListingInputModel { Id = 1, Description = "test" });

            // Assert
            var viewResult  = Assert.IsAssignableFrom <ViewResult>(result);
            var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model);

            Assert.Equal("test", modelResult.Description);
        }
Exemple #9
0
        public async Task TestGetEditInputModelNull()
        {
            // Arrange
            ListingInputModel inputModel = null;

            var mockService = new Mock <IListingService>();

            mockService
            .Setup(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()))
            .ReturnsAsync(inputModel)
            .Verifiable();

            var controller = new ListingController(mockService.Object);

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

            // Assert
            Assert.IsAssignableFrom <NotFoundResult>(result);

            mockService.Verify(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()), Times.Once);
        }