Ejemplo n.º 1
0
 def test_list_get_entries(self):
     products = [
         Product('SD12', 1),
         Product('PQ34', 4),
         Product('PP235', 2)
     ]
     server = ListServer(products)
     entries = server.get_entries(2)
     self.assertEqual([products[0], products[2], products[1]], entries)
Ejemplo n.º 2
0
 def test_get_entries_returned_list_sorted(self):
     products = [
         Product('Pa12', 1),
         Product('Ps23', 2),
         Product('Pd235', 1)
     ]
     server = ListServer(products)
     entries = server.get_entries(2)
     self.assertEqual(entries, [products[0], products[2], products[1]])
Ejemplo n.º 3
0
 def test_get_entries_returns_proper_entries(self):
     products = [
         Product('P12', 1),
         Product('PP234', 2),
         Product('PP235', 1)
     ]
     for server_type in server_types:
         server = server_type(products)
         entries = server.get_entries(2)
         self.assertListEqual([products[2], products[1]], entries)
Ejemplo n.º 4
0
 def test_get_entries_returns_empty_list(self):
     products = [
         Product('P12', 1),
         Product('PP234', 2),
         Product('PP235', 1)
     ]
     for server_type in server_types:
         server = server_type(products)
         entries = server.get_entries(3)
         self.assertEqual(Counter([]), Counter(entries))
Ejemplo n.º 5
0
 def test_error_throw(self):
     products = [
         Product('QWE211', 1),
         Product('qWE213', 2),
         Product('AQS21', 3),
         Product('VCS21', 4)
     ]
     server = ListServer(products)
     with self.assertRaises(TooManyProductsFoundError):
         entries = server.get_entries(3)
Ejemplo n.º 6
0
 def test_exception_throw(self):
     products = [
         Product('PP235', 2),
         Product('PP234', 1),
         Product('PP233', 3),
         Product('PP232', 7)
     ]
     for server_type in server_types:
         server = server_type(products)
         self.assertRaises(TooManyProductsFoundError, server.get_entries, 2)
 def test_None_for_MAP(self):
     products = [
         Product('PPP234', 2),
         Product('PPP235', 3),
         Product('PPP236', 4)
     ]
     server = MapServer(products)
     client = Client(server)
     prod = client.get_total_price(2)
     self.assertEqual(prod, None)
 def test_IfSorted(self):
     products = [
         Product('PP234', 500),
         Product('PP235', 520),
         Product('PP236', 30)
     ]
     for server_type in server_types:
         server = server_type(products)
         prods = server.get_entries(2)
         self.assertEqual([products[2], products[0], products[1]], prods)
Ejemplo n.º 9
0
 def test_check_if_error(self):
     products = [
         Product('PN12', 3),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('AC10', 5)
     ]
     for server_type in server_types:
         server = server_type(products)
         with self.assertRaises(TooManyProductsFoundError):
             entries = server.get_entries(2)
Ejemplo n.º 10
0
 def test_total_price_for_price_list_is_empty(self):
     products = [
         Product('PP246', 4),
         Product('PP235', 2),
         Product('PP543', 6),
         Product('PP278', 4)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(3))
Ejemplo n.º 11
0
 def test_check_if_empty_list(self):
     products = [
         Product('PN12', 1),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('AC10', 5)
     ]
     for server_type in server_types:
         server = server_type(products)
         entries = server.get_entries(1)
         self.assertEqual([], entries)
Ejemplo n.º 12
0
 def test_total_price_for_exceptions_execution(self):
     products = [
         Product('PP246', 4),
         Product('PP235', 2),
         Product('PP543', 6),
         Product('PP278', 4)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(2))
Ejemplo n.º 13
0
 def test_sorted(self):
     products_sort = [
         Product('aa11', 1),
         Product('aa13', 3),
         Product('aa12', 2)
     ]
     for server_type in server_types:
         server = server_type(products_sort)
         entries = server.get_entries(2)
         self.assertEqual(products_sort[0].price, entries[0].price)
         self.assertEqual(products_sort[2].price, entries[1].price)
         self.assertEqual(products_sort[1].price, entries[2].price)
Ejemplo n.º 14
0
 def test_get_entries_exception_occurs(self):
     products = [
         Product('P12', 1),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('PP24', 2),
         Product('PP34', 2)
     ]
     for server_type in server_types:
         server = server_type(products)
         with self.assertRaises(TooManyProductsFoundError):
             entries = server.get_entries(2)
Ejemplo n.º 15
0
 def test_price_error(self):
     products = [
         Product('aa11', 1),
         Product('aa13', 3),
         Product('aa12', 2),
         Product('aa15', 5),
         Product('aa14', 4)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(2))
Ejemplo n.º 16
0
 def test_total_price_for_exeptional_execution(self):
     products = [
         Product('PP234', 2),
         Product('PP235', 3),
         Product('PP236', 1),
         Product('PP237', 5),
         Product('PPP238', 1)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(2))
Ejemplo n.º 17
0
 def test_total_price_for_sum_eq_0_execution2(self):
     products = [
         Product('PP234', 0),
         Product('PP235', 0),
         Product('PP236', 0),
         Product('PP237', 0),
         Product('PPP238', 1)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(4))
Ejemplo n.º 18
0
 def test_check_for_too_big_list(self):
     products = [
         Product('PN12', 1),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('AC10', 5),
         Product('AMN32', 2)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(2))
Ejemplo n.º 19
0
 def test_sorted2(self):
     products_sort = [
         Product('aa11', 1),
         Product('aa13', 3),
         Product('aa12', 2)
     ]
     for server_type in server_types:
         server = server_type(products_sort)
         entries = server.get_entries(2)
         self.assertListEqual(
             [products_sort[0], products_sort[2], products_sort[1]],
             entries)
Ejemplo n.º 20
0
 def test_error(self):
     products = [
         Product('aa11', 1),
         Product('aa13', 3),
         Product('aa12', 2),
         Product('aa15', 5),
         Product('aa14', 4)
     ]
     for server_type in server_types:
         server = server_type(products)
         with self.assertRaises(TooManyProductsFoundError):
             server.get_entries(2)
Ejemplo n.º 21
0
 def test_raising_an_exception(self):
     products = [
         Product('PP234', 2),
         Product('PP235', 3),
         Product('PP236', 4),
         Product('PP237', 1),
         Product('PP238', 3)
     ]
     with self.assertRaises(TooManyProductsFoundError):
         for server_type in server_types:
             server = server_type(products)
             entries = server.get_entries(2)
Ejemplo n.º 22
0
 def test_total_price_for_no_entries_found(self):
     products = [
         Product('QWE21', 1),
         Product('qWE21', 2),
         Product('AQS22', 3),
         Product('VCS21', 4),
         Product('QWS45', 5)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertEqual(None, client.get_total_price(2))
Ejemplo n.º 23
0
 def test_total_price_for_None(self):
     products = [
         Product('P12', 1),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('PP24', 2),
         Product('PP34', 2)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         self.assertIsNone(client.get_total_price(2))
Ejemplo n.º 24
0
 def test_total_price_for_exception_thrown(self):
     products = [
         Product('QWE21', 1),
         Product('qWE21', 2),
         Product('AQS22', 3),
         Product('VCS21', 4),
         Product('QWS45', 5)
     ]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         with self.assertRaises(TooManyProductsFoundError):
             entries = server.get_entries(3)
             self.assertEqual(None, client.get_total_price(3))
Ejemplo n.º 25
0
 def test_too_many_products_search_error(self):
     products = [Product(f'PP{x}{x}', 3) for x in range(Server.n_max_returned_entries + 1)]
     for server_type in server_types:
         server = server_type(products)
         client = Client(server)
         entries = client.get_total_price(2)
         self.assertIsNone(entries)
Ejemplo n.º 26
0
 def test_check_list_order(self):
     products = [
         Product('P12', 1),
         Product('PP234', 2),
         Product('PP235', 1),
         Product('AC10', 5)
     ]
     for server_type in server_types:
         server = server_type(products)
         entries = server.get_entries(2)
         self.assertEqual(
             [Product('PP235', 1),
              Product('PP234', 2),
              Product('AC10', 5)], entries)
 def test_None(self):
     products = [
         Product('PP234', 2),
         Product('PP235', 3),
         Product('PP236', 4),
         Product('PP237', 5),
         Product('PP238', 6),
         Product('PP239', 7)
     ]
     server = MapServer(products)
     client = Client(server)
     prod = client.get_total_price(2)
     self.assertEqual(prod, None)
 def test_raise_error(self):
     products = [
         Product('PP234', 2),
         Product('PP235', 3),
         Product('PP236', 4),
         Product('PP237', 5),
         Product('PP238', 6),
         Product('PP239', 7)
     ]
     for server_type in server_types:
         server = server_type(products)
         with self.assertRaises(TooManyProductsFoundError):
             prods = server.get_entries(2)
Ejemplo n.º 29
0
 def test_get_total_price(self):
     products = [
         Product('PP234', 2),
         Product('PP235', 3),
         Product('PP236', 4),
         Product('PP237', 5)
     ]
     client = Client(ListServer(products))
     self.assertEqual(client.get_total_price(2), None)
     client1 = Client(ListServer(products[:3]))
     self.assertEqual(client1.get_total_price(2), 9)
     client3 = Client(
         ListServer(
             [Product('A12', 2),
              Product('ab1', 3),
              Product('Ab1234', 4)]))
     self.assertEqual(client3.get_total_price(2), None)
Ejemplo n.º 30
0
 def test_None_If_tooMany(self):
     products = [Product('PP234', 2), Product('PP235', 3), Product('PP236', 4), Product('PP237', 5)]
     server = ListServer(products)
     client = Client(server)
     prod = client.get_total_price(2)
     self.assertEqual(prod,None)