コード例 #1
0
        public void UsunZKoszyka_ShouldRemoveItem_WhenItemExists(
            [Frozen] Mock <IKoszykService> koszykServiceMock, int id, KoszykController sut)
        {
            // act
            var actual = sut.UsunZKoszyka(id);

            // assert
            koszykServiceMock.Verify(m => m.UsunProdukt(It.Is <int>(i => i == id)), Times.Once());
        }
コード例 #2
0
        public void UsunZKoszyka_ShouldReturnNoContent_WhenItemRemoved(
            [Frozen] Mock <IKoszykService> koszykServiceMock, int id, KoszykController sut)
        {
            // act
            var actual = sut.UsunZKoszyka(id);

            // assert
            actual.ShouldBeOfType <NoContentResult>();
        }
コード例 #3
0
        public void DodajProduktDoKoszyka_ShouldReturnCreated_WhenModelInvalid(DodajProduktModel model,
                                                                               KoszykController sut)
        {
            // act
            var actual = sut.DodajProduktDoKoszyka(model);

            // assert
            actual.ShouldBeOfType <StatusCodeResult>();
            (actual as StatusCodeResult).StatusCode.ShouldBe(201);
        }
コード例 #4
0
        public void Get_ShouldReturnNotFoundResult_WhenServiceReturnsNoData(
            [Frozen] Mock <IKoszykService> koszykServiceMock, KoszykController sut)
        {
            // arrange
            koszykServiceMock.Setup(m => m.PobierzKoszyk()).Returns(default(IEnumerable <ProduktModel>));

            // act
            var actual = sut.Get().Result;

            // assert
            actual.ShouldBeOfType <NotFoundResult>();
        }
コード例 #5
0
        public void UsunZKoszyka_ShouldReturnNotFound_WhenItemNotExist(
            [Frozen] Mock <IKoszykService> koszykServiceMock, int id, KoszykController sut)
        {
            // arrange
            koszykServiceMock.Setup(m => m.UsunProdukt(It.Is <int>(i => i == id))).Throws <ItemNotFoundException>();

            // act
            var actual = sut.UsunZKoszyka(id);

            // assert
            actual.ShouldBeOfType <NotFoundResult>();
        }
コード例 #6
0
        public void PobierzKoszykWartosc_ShouldReturnCorrectResult([Frozen] Mock <IKoszykService> koszykServiceMock, decimal koszykWartosc,
                                                                   KoszykController sut)
        {
            // arrange
            koszykServiceMock.Setup(m => m.PobierzKoszykWartosc()).Returns(koszykWartosc);

            // act
            var actual = sut.PobierzKoszykWartosc();

            // assert
            actual.ShouldBeOfType <OkObjectResult>();
            (actual as OkObjectResult).Value.ShouldBe(koszykWartosc);
        }
コード例 #7
0
        public void DodajProduktDoKoszyka_ShouldNotAddProductToCart_WhenModelIsNotValid(
            [Frozen] Mock <IKoszykService> koszykServiceMock, DodajProduktModel model, string key, string error,
            KoszykController sut)
        {
            // arrange
            sut.ModelState.AddModelError(key, error);

            // act
            var actual = sut.DodajProduktDoKoszyka(model);

            // assert
            koszykServiceMock.Verify(m => m.DodajProdukt(It.IsAny <int>(), It.IsAny <decimal>()), Times.Never());
        }
コード例 #8
0
        public void TestMethod1()
        {
            //Arrange
            var mockSetProducts = new Mock <DbSet <Products> >();

            mockSetProducts.As <IQueryable <Products> >().Setup(m => m.Provider).Returns(_products.Provider);
            mockSetProducts.As <IQueryable <Products> >().Setup(m => m.Expression).Returns(_products.Expression);
            mockSetProducts.As <IQueryable <Products> >().Setup(m => m.ElementType).Returns(_products.ElementType);
            mockSetProducts.As <IQueryable <Products> >().Setup(m => m.GetEnumerator()).Returns(_products.GetEnumerator());

            var mockSetCategories = new Mock <DbSet <Categories> >();

            mockSetCategories.As <IQueryable <Categories> >().Setup(m => m.Provider).Returns(_categories.Provider);
            mockSetCategories.As <IQueryable <Categories> >().Setup(m => m.Expression).Returns(_categories.Expression);
            mockSetCategories.As <IQueryable <Categories> >().Setup(m => m.ElementType).Returns(_categories.ElementType);
            mockSetCategories.As <IQueryable <Categories> >().Setup(m => m.GetEnumerator()).Returns(_categories.GetEnumerator());

            var mockContext = new Mock <ApplicationDbContext>();

            mockContext.Setup(c => c.Products).Returns(mockSetProducts.Object);
            mockContext.Setup(c => c.Categories).Returns(mockSetCategories.Object);

            var cart       = new Cart();
            var controller = new KoszykController(mockContext.Object);

            //act
            controller.AddToCart(3, cart, 10);

            //assert
            var firstOrDefault = cart.Lines.FirstOrDefault(x => x.Id == 3);

            if (firstOrDefault != null)
            {
                Assert.AreEqual(firstOrDefault.Quantity, 10);
            }
            Assert.AreEqual(cart.Lines.Count(), 0);

            //act
            controller.AddToCart(1, cart, 10);

            //assert
            firstOrDefault = cart.Lines.FirstOrDefault(x => x.Id == 1);
            if (firstOrDefault != null)
            {
                Assert.AreEqual(firstOrDefault.Quantity, 10);
                Assert.AreEqual(cart.Lines.Count(), 1);
            }

            controller.RemoveFromCart(1, cart);
            Assert.AreEqual(cart.Lines.Count(), 0);

            controller.AddToCart(1, cart, 10);
            controller.IncreaseQuantity(1, cart);
            var orDefault = cart.Lines.FirstOrDefault(x => x.Id == 1);

            if (orDefault != null)
            {
                Assert.AreEqual(orDefault.Quantity, 11);
            }
            controller.DecreaseQuantity(1, cart);
            orDefault = cart.Lines.FirstOrDefault(x => x.Id == 1);
            if (orDefault != null)
            {
                Assert.AreEqual(orDefault.Quantity, 10);
            }

            controller.AddToCart(2, cart, 10);

            controller.Index(cart);

            var result = (ViewResult)controller.Index(cart);
            var model  = (CartViewModels)result.Model;

            Assert.AreEqual(model.CartProductsList.Count(), 2);
            Assert.AreEqual(model.TotalValue, ((CalcPrice((decimal?)10.20, 0)) * 10 + (CalcPrice(20, 10)) * 10).ToString("c").Replace(",", "."));
        }
コード例 #9
0
        public void DodajProduktDoKoszyka_ShouldReturnBadRequest_WhenModelIsInvalid(string key, string error,
                                                                                    DodajProduktModel model, KoszykController sut)
        {
            // arrange
            sut.ModelState.AddModelError(key, error);

            // act
            var actual = sut.DodajProduktDoKoszyka(model);

            // assert
            actual.ShouldBeOfType <BadRequestObjectResult>();
        }
コード例 #10
0
        public void DodajProduktDoKoszyka_ShouldAddProductToCart_WhenModelIsValid(
            [Frozen] Mock <IKoszykService> koszykServiceMock, DodajProduktModel model, KoszykController sut)
        {
            // act
            var actual = sut.DodajProduktDoKoszyka(model);

            // assert
            koszykServiceMock.Verify(
                m => m.DodajProdukt(It.Is <int>(i => i == model.Id), It.Is <decimal>(d => d == model.Ilosc)),
                Times.Once());
        }
コード例 #11
0
        public void Get_ShouldReturnOkResult_WhenServiceReturnsData([Frozen] Mock <IKoszykService> koszykServiceMock,
                                                                    IEnumerable <ProduktModel> produkty, KoszykController sut)
        {
            // arrange
            koszykServiceMock.Setup(m => m.PobierzKoszyk()).Returns(produkty);

            // act
            var actual = sut.Get().Result;

            // assert
            actual.ShouldBeOfType <OkObjectResult>();
            (actual as OkObjectResult).Value.ShouldBe(produkty);
        }