コード例 #1
0
        public void TestTotalPrice_NoProductsInCart_ShouldReturnZero()
        {
            var     cart  = new MockedShoppingCart();
            decimal price = 0;

            Assert.AreEqual(cart.TotalPrice(), price);
        }
コード例 #2
0
        public void TestCointainsProduct_ShouldReturnTrue()
        {
            var mockedProduct = new Mock <IProduct>();
            var cart          = new MockedShoppingCart();

            cart.AddProduct(mockedProduct.Object);

            Assert.IsTrue(cart.ContainsProduct(mockedProduct.Object));
        }
コード例 #3
0
        public void TestRemoveProduct_ShouldRemoveCorrectly()
        {
            var mockedProduct = new Mock <IProduct>();
            var cart          = new MockedShoppingCart();

            cart.AddProduct(mockedProduct.Object);
            cart.RemoveProduct(mockedProduct.Object);

            Assert.IsFalse(cart.ContainsProduct(mockedProduct.Object));
        }
コード例 #4
0
        public void TotalPrice_WhenThereAreNoProductsInList_ShouldReturnZero()
        {
            // Arrange
            var shoppingCart = new MockedShoppingCart();

            // Act
            var executionResult = shoppingCart.TotalPrice();

            // Assert
            Assert.AreEqual(0M, executionResult);
        }
コード例 #5
0
        public void AddProduct_WhenAddingValidProduct_ShouldAddResepctiveProductCorrectly()
        {
            // arrange
            var productStub = new Mock <IProduct>();
            var mockedCart  = new MockedShoppingCart();

            mockedCart.AddProduct(productStub.Object);
            var expected = mockedCart.Products.First();

            Assert.AreSame(expected, productStub.Object);
        }
コード例 #6
0
        public void ContainsProduct_WhenProductParamIsValid_ShouldReturnFalseIfProductIsNotInList()
        {
            // Arrange
            var mockedProduct = new Mock <IProduct>();
            var shoppingCart  = new MockedShoppingCart();

            // Act
            var executionResult = shoppingCart.ContainsProduct(mockedProduct.Object);

            // Assert
            Assert.AreEqual(false, executionResult);
        }
コード例 #7
0
        public void AddProduct_WhenProductParamIsValid_ShouldAddProductToList()
        {
            // Arrange
            var mockedProduct = new Mock <IProduct>();
            var shoppingCart  = new MockedShoppingCart();

            // Act
            shoppingCart.AddProduct(mockedProduct.Object);

            // Assert
            Assert.AreEqual(true, shoppingCart.Products.Contains(mockedProduct.Object));
        }
コード例 #8
0
        public void ContainsProduct_WhenParameterProductIsValidAndIsCOntainedInList_ShoulReturnTrue()
        {
            var productStub = new Mock <IProduct>();

            var mockedCart = new MockedShoppingCart();

            mockedCart.Products.Add(productStub.Object);

            bool isContained = mockedCart.ContainsProduct(productStub.Object);

            Assert.IsTrue(isContained);
        }
コード例 #9
0
        public void RemoveProduct_WhenRemovingValidProduct_ShouldRemoveResepctiveProductFromProducts()
        {
            var productStub = new Mock <IProduct>();
            var mockedCart  = new MockedShoppingCart();

            mockedCart.Products.Add(productStub.Object);

            mockedCart.RemoveProduct(productStub.Object);

            bool returned = mockedCart.Products.Contains(productStub.Object);

            Assert.IsFalse(returned);
        }
コード例 #10
0
        public void RemoveProduct_WhenProductParamIsValid_ShouldRemoveProductFromList()
        {
            // Arrange
            var mockedProduct = new Mock <IProduct>();
            var shoppingCart  = new MockedShoppingCart();

            shoppingCart.Products.Add(mockedProduct.Object);

            // Act
            shoppingCart.RemoveProduct(mockedProduct.Object);

            // Assert
            Assert.AreEqual(false, shoppingCart.Products.Contains(mockedProduct.Object));
        }
コード例 #11
0
        public void TestTotalPrice_WithProductsInCart_ShouldCalculateCorrectly(decimal firstPrice, decimal secondPrice)
        {
            var cart             = new MockedShoppingCart();
            var mockedProductOne = new Mock <IProduct>();
            var mockedProductTwo = new Mock <IProduct>();

            mockedProductOne.SetupGet(x => x.Price).Returns(firstPrice);
            mockedProductTwo.SetupGet(x => x.Price).Returns(secondPrice);

            cart.AddProduct(mockedProductOne.Object);
            cart.AddProduct(mockedProductTwo.Object);

            var result = firstPrice + secondPrice;

            Assert.AreEqual(cart.TotalPrice(), result);
        }
コード例 #12
0
        public void TotalPrice_WhenProductsPresentInCart_ShouldREturnCorrectSumOfAllProductPrices()
        {
            var firstProductStub  = new Mock <IProduct>();
            var secondProductStub = new Mock <IProduct>();
            var mockedCart        = new MockedShoppingCart();

            firstProductStub.SetupGet(x => x.Price).Returns(5.25M);
            secondProductStub.SetupGet(x => x.Price).Returns(10.25M);

            mockedCart.Products.Add(firstProductStub.Object);
            mockedCart.Products.Add(secondProductStub.Object);

            decimal totalPriceReturned = mockedCart.TotalPrice();
            decimal expected           = 15.5M;

            Assert.AreEqual(expected, totalPriceReturned);
        }
コード例 #13
0
        public void TotalPrice_WhenThereAreProductsInList_ShouldReturnTheTotalSumOfTheirPrices()
        {
            // Arrange
            var mockedProductOne = new Mock <IProduct>();
            var mockedProductTwo = new Mock <IProduct>();
            var shoppingCart     = new MockedShoppingCart();

            mockedProductOne.SetupGet(x => x.Price).Returns(10M);
            mockedProductTwo.SetupGet(x => x.Price).Returns(20M);

            shoppingCart.Products.Add(mockedProductOne.Object);
            shoppingCart.Products.Add(mockedProductTwo.Object);

            // Act
            var executionResult = shoppingCart.TotalPrice();

            // Assert
            Assert.AreEqual(30M, executionResult);
        }