コード例 #1
0
        public async void Create_ExistedID_ReturnViewResultSupermarket(int id)
        {
            var product = new Supermarket {
                Name = "Rozetka2", Address = "Petrovka district2", Id = id
            };
            var option = new DbContextOptionsBuilder <ShoppingContext>().
                         UseInMemoryDatabase(databaseName: "testsCreate3").Options;
            var context = new ShoppingContext(option);

            SampleData.Initialize(context);
            var mock       = new Mock <SupermarketsService>(context);
            var controller = new SupermarketsController(mock.Object);
            var resultView = await controller.Create(product);

            var viewResult = Assert.IsType <RedirectToActionResult>(resultView);
            var actionName = Assert.IsAssignableFrom <string>(viewResult.ActionName);

            var resultViewDetails = await controller.Details(id);

            var viewResultDetails = Assert.IsType <ViewResult>(resultViewDetails);
            var model             = Assert.IsAssignableFrom <Supermarket>(viewResultDetails.Model);

            Assert.Equal("Index", actionName);
            Assert.Equal(model, product);
        }
コード例 #2
0
        public async Task Create_ProductReturns_ViewResult()
        {
            Supermarket newProduct = new Supermarket();

            mock = new Mock <ISupermarkets>();
            mock.Setup(repo => repo.AddAsync(newProduct)).Throws(new Exception());
            controller = new SupermarketsController(mock.Object);
            controller.ModelState.AddModelError("Name", "Required");

            var result = await controller.Create(newProduct);

            var viewResult = Assert.IsType <ViewResult>(result);
        }
コード例 #3
0
        public async Task Details_Returns_BadRequestResult()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock.Setup(repo => repo.GetByIdAsync(id)).Throws(new Exception());
            controller = new SupermarketsController(mock.Object);

            //Act
            var result = await controller.Details(id);

            //Assert
            var badRequestResult = Assert.IsType <BadRequestResult>(result);
        }
コード例 #4
0
        public async Task Delete_Returns_ProductInfoForDeleting()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock.Setup(repo => repo.DeleteAsync(market.Id)).Throws(new Exception());
            controller = new SupermarketsController(mock.Object);

            //Act
            var result = await controller.Delete(market.Id);

            //Assert
            var viewResult = Assert.IsType <ViewResult>(result);
        }
コード例 #5
0
        public async Task Index_Returns_AListOfProducts()
        {
            // Arrange
            mock.Setup(repo => repo.GetAllAsync()).ReturnsAsync(GetSupermarkets());
            controller = new SupermarketsController(mock.Object);

            // Act
            var result = await controller.Index();

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <Supermarket> >(viewResult.ViewData.Model);

            GetSupermarkets().Should().BeEquivalentTo(model);
        }
コード例 #6
0
        public async Task Delete_Returns_RedirectToActionResult()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock.Setup(repo => repo.DeleteAsync(market.Id));
            controller = new SupermarketsController(mock.Object);

            //Act
            var result = await controller.Delete(market.Id);

            //Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);
        }
コード例 #7
0
        public async void Details_ExistedId_ReturnViewResultProduct(int a)
        {
            var option  = new DbContextOptionsBuilder <ShoppingContext>().UseInMemoryDatabase(databaseName: "testDB").Options;
            var context = new ShoppingContext(option);

            SampleData.Initialize(context);

            var mock       = new Mock <SupermarketsService>(context);
            var controller = new SupermarketsController(mock.Object);
            var resultView = await controller.Details(a);

            var viewResult = Assert.IsType <ViewResult>(resultView);
            var model      = Assert.IsAssignableFrom <Supermarket>(viewResult.Model);

            Assert.Equal(a, model.Id);
        }
コード例 #8
0
        public async Task Edit_Returns_ProductInfoForEditing()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock
            .Setup(repo => repo.GetByIdAsync(market.Id)).ReturnsAsync(market);
            controller = new SupermarketsController(mock.Object);

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

            //Assert
            var viewResult = Assert.IsType <ViewResult>(result);
        }
コード例 #9
0
        public async void TestSupermarketsIndex()
        {
            var option  = new DbContextOptionsBuilder <ShoppingContext>().UseInMemoryDatabase(databaseName: "testDB").Options;
            var context = new ShoppingContext(option);

            SampleData.Initialize(context);

            Supermarket[] supermarkets = new Supermarket[]
            {
                new Supermarket {
                    Name = "Rozetka", Address = "Petrovka district", Id = 1
                },
                new Supermarket {
                    Name = "Comfy", Address = "Obolonsky district", Id = 2
                },
                new Supermarket {
                    Name = "Foxtrot", Address = "Pechercka district", Id = 3
                },
                new Supermarket {
                    Name = "Allo", Address = "Shevchenka district", Id = 4
                },
                new Supermarket {
                    Name = "Citrus", Address = "Obolon, Drea Town", Id = 5
                },
                new Supermarket {
                    Name = "Moyo", Address = "Skymall Troeshina", Id = 6
                },
                new Supermarket {
                    Name = "Stilus", Address = "Svyatosino", Id = 7
                },
            };
            var supermarketsList = supermarkets.ToList();
            var mock             = new Mock <SupermarketsService>(context);
            var controller       = new SupermarketsController(mock.Object);
            var resultView       = await controller.Index();

            var viewResult = Assert.IsType <ViewResult>(resultView);


            var model = Assert.IsAssignableFrom <IEnumerable <Supermarket> >(viewResult.Model).OrderBy(p => p.Id).ToList();

            for (int i = 0; i < supermarketsList.Count; i++)
            {
                Assert.Equal(supermarkets[i].Id, model[i].Id);
            }
        }
コード例 #10
0
        public async Task Details_Returns_ViewResult_ProductByID()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock.Setup(repo => repo.GetByIdAsync(id)).ReturnsAsync(market);
            controller = new SupermarketsController(mock.Object);

            //Act
            var result = await controller.Details(id);

            //Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <Supermarket>(viewResult.ViewData.Model);

            market.Should().BeEquivalentTo(model);
        }
コード例 #11
0
        public async Task Create_ProductReturns_RedirectToActionResult()
        {
            mock       = new Mock <ISupermarkets>();
            controller = new SupermarketsController(mock.Object);
            Supermarket newProduct = new Supermarket
            {
                Name    = "Bread",
                Address = "lol"
            };

            var result = await controller.Create(newProduct);

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

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("Index", redirectToActionResult.ActionName);
            mock.Verify(r => r.AddAsync(newProduct));
        }
コード例 #12
0
        public async Task DeletePOST_Returns_RedirectToActionResult()
        {
            int id     = 4;
            var market = GetSupermarkets().FirstOrDefault(p => p.Id == id);

            //Arrange
            mock.Setup(repo => repo.DeleteAsync(market.Id));
            controller = new SupermarketsController(mock.Object);

            //Act
            var result = await controller.DeleteConfirmed(market.Id);

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

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("Index", redirectToActionResult.ActionName);
            mock.Verify(r => r.DeleteAsync(market.Id));
        }