def test_add_two_of_a_product(self): cart = ShoppingCart() product = Product('shoes', 'S', 'blue') cart.add_product(product, quantity=2) self.assertDictEqual({'SHOES-S-BLUE': {'quantity': 2}}, cart.products)
def test_add_and_remove_product(self): cart = ShoppingCart() product = Product('shoes', 'S', 'blue') cart.add_product(product) cart.remove_product(product) self.assertDictEqual({}, cart.products)
def test_remove_too_many_products(self): cart = ShoppingCart() product = Product('shoes', 'S', 'blue') cart.add_product(product) cart.remove_product(product, quantity=2) self.assertDictEqual({}, cart.products)
def test_add_and_remove_product(self): cart = ShoppingCart() # <2> product = Product('shoes', 'S', 'blue') # <3> cart.add_product(product) # <4> cart.remove_product(product) # <5> self.assertDictEqual({}, cart.products) # <6>
def test_add_two_products(self): cart = ShoppingCart() product1 = Product('shoes', 'S', 'blue') product2 = Product('tshirt', 'M', 'black') cart.add_product(product1) cart.add_product(product2) expected_cart_value = {'SHOES-S-BLUE':{'quantity': 1}, 'TSHIRT-M-BLACK':{'quantity':1}} self.assertDictEqual(expected_cart_value, cart.products)
def test_add_and_remove_product(self): """ We can consider this an integration test as it tests a chain of functional units """ cart = ShoppingCart() product = Product('Cap', 'M', 'Orange') # these are two distinct actions cart.add_product(product) cart.remove_product(product) self.assertDictEqual({}, cart.products)
def test_add_two_different_products(self): cart = ShoppingCart() product_one = Product('shoes', 'S', 'blue') product_two = Product('shirt', 'M', 'gray') cart.add_product(product_one) cart.add_product(product_two) self.assertDictEqual( { 'SHOES-S-BLUE': { 'quantity': 1 }, 'SHIRT-M-GRAY': { 'quantity': 1 } }, cart.products)