Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- class TestRestaurant(unittest.TestCase):
- def setUp(self):
- # Initialize a restaurant with a capacity of 3
- self.restaurant = Restaurant("Test Restaurant", 3)
- def test_init(self):
- # Test if the restaurant is initialized correctly
- self.assertEqual(self.restaurant.name, "Test Restaurant")
- self.assertEqual(self.restaurant.capacity, 3)
- self.assertEqual(self.restaurant.waiters, [])
- def test_name_setter(self):
- # Test setting the name property with a valid name
- self.restaurant.name = "New Restaurant Name"
- self.assertEqual(self.restaurant.name, "New Restaurant Name")
- # Test setting the name property with an invalid name
- with self.assertRaises(ValueError):
- self.restaurant.name = ""
- def test_capacity_setter(self):
- # Test setting the capacity property with a valid capacity
- self.restaurant.capacity = 5
- self.assertEqual(self.restaurant.capacity, 5)
- # Test setting the capacity property with an invalid capacity
- with self.assertRaises(ValueError):
- self.restaurant.capacity = -1
- def test_add_waiter(self):
- # Test adding a waiter to the restaurant
- result = self.restaurant.add_waiter("John")
- self.assertEqual(result, "The waiter John has been added.")
- # Test adding a waiter with the same name
- result = self.restaurant.add_waiter("John")
- self.assertEqual(result, "The waiter John already exists!")
- # Test adding a waiter when the restaurant is at full capacity
- self.restaurant.add_waiter("Alice")
- self.restaurant.add_waiter("Bob")
- result = self.restaurant.add_waiter("Eve")
- self.assertEqual(result, "No more places!")
- def test_remove_waiter(self):
- # Test removing a waiter from the restaurant
- self.restaurant.add_waiter("John")
- result = self.restaurant.remove_waiter("John")
- self.assertEqual(result, "The waiter John has been removed.")
- # Test removing a waiter that does not exist
- result = self.restaurant.remove_waiter("Alice")
- self.assertEqual(result, "No waiter found with the name Alice.")
- def test_get_total_earnings(self):
- # Test getting total earnings when there are no waiters
- result = self.restaurant.get_total_earnings()
- self.assertEqual(result, 0)
- # Test getting total earnings when there are waiters
- self.restaurant.add_waiter("John")
- self.restaurant.add_waiter("Alice")
- self.restaurant.waiters[0]['total_earnings'] = 100
- self.restaurant.waiters[1]['total_earnings'] = 200
- result = self.restaurant.get_total_earnings()
- self.assertEqual(result, 300)
- def test_get_waiters(self):
- # Test getting waiters with no filters
- self.restaurant.add_waiter("John")
- self.restaurant.add_waiter("Alice")
- self.restaurant.add_waiter("Bob")
- result = self.restaurant.get_waiters()
- self.assertEqual(len(result), 3)
- # Test getting waiters with min_earnings filter
- self.restaurant.waiters[0]['total_earnings'] = 100
- self.restaurant.waiters[1]['total_earnings'] = 200
- self.restaurant.waiters[2]['total_earnings'] = 300
- result = self.restaurant.get_waiters(min_earnings=150)
- self.assertEqual(len(result), 2)
- # Test getting waiters with max_earnings filter
- result = self.restaurant.get_waiters(max_earnings=250)
- self.assertEqual(len(result), 2)
- # Test getting waiters with both min_earnings and max_earnings filters
- result = self.restaurant.get_waiters(min_earnings=100, max_earnings=250)
- self.assertEqual(len(result), 2)
- if __name__ == '__main__':
- unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement