Esempio n. 1
0
    def test_add_product(self):
        p = Product(id_="P", name="X", price=0)
        c = Catalogue()
        c.add_product(p)
        p.name = "Y"

        self.assertEqual("X", c.inventory["P"].name)
Esempio n. 2
0
 def test_inventory_overflow_add_product(self):
     p1 = Product(id_="P1", name="", price=0)
     p2 = Product(id_="P2", name="", price=0)
     p3 = Product(id_="P3", name="", price=0)
     c = Catalogue()
     c.add_product(p1)
     c.add_product(p2)
     with self.assertRaises(InventoryOverflowException):
         c.add_product(p3)
Esempio n. 3
0
    def test_contains_key_is_present(self):
        p = Product(id_="P", name="", price=0)
        c = Catalogue()
        c.add_product(p)

        self.assertTrue(p.id in c)
class TestCatalogue(TestCase):
    def setUp(self):
        self.test_products = [
            Product('Baked Beans', 0.99),
            Product('Biscuits', 1.20),
            Product('Sardines', 1.89),
            Product('Shampoo (Small)', 2.00),
            Product('Shampoo (Medium)', 2.50),
            Product('Shampoo (Large)', 3.50),
        ]

    def test_construct_empty_catalogue(self):
        self.test_catalogue = Catalogue()
        self.assertEqual(len(self.test_catalogue.products), 0)
        self.test_catalogue = Catalogue([])
        self.assertEqual(len(self.test_catalogue.products), 0)

    def test_construct_catalogue_with_non_list(self):
        with self.assertRaises(TypeError):
            self.test_catalogue = Catalogue(self.test_products[0])
        with self.assertRaises(TypeError):
            self.test_catalogue = Catalogue('dummy')

    def test_construct_catalogue_with_list_of_non_products(self):
        with self.assertRaises(TypeError):
            self.test_catalogue = Catalogue(['dummy', 'dummy'])

    def test_construct_catalogue_with_product_lists(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.assertEqual(len(self.test_catalogue.products),
                         len(self.test_products))

    def test_adding_product_to_catalogue(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.test_catalogue.add_product(Product('Additional Product', 1.00))
        self.assertEqual(len(self.test_catalogue.products),
                         len(self.test_products) + 1)

    def test_adding_products_to_catalogue(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.test_catalogue.add_products([
            Product('Additional Product 1', 1.00),
            Product('Additional Product 2', 1.00)
        ])
        self.assertEqual(len(self.test_catalogue.products),
                         len(self.test_products) + 2)

    def test_removing_product_to_catalogue(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.test_catalogue.remove_product(self.test_products[0])
        self.assertEqual(len(self.test_catalogue.products),
                         len(self.test_products) - 1)

    def test_removing_products_to_catalogue(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.test_catalogue.remove_products(
            [self.test_products[0], self.test_products[1]])
        self.assertEqual(len(self.test_catalogue.products),
                         len(self.test_products) - 2)

    def test_empty_catalogue(self):
        self.test_catalogue = Catalogue(self.test_products)
        self.test_catalogue.empty()
        self.assertEqual(len(self.test_catalogue.products), 0)