コード例 #1
0
class TestLoadBalancer(TestCase):
    def setUp(self) -> None:
        self.load_balancer = LoadBalancer(4, 2)

    def test_create_a_server_should_return_a_server_instance(self):
        server = self.load_balancer.create_a_server()
        self.assertIsInstance(server, Server)

    def test_calculate_user_should_return_one_when_exist_only_one_server_with_one_running_task(self):
        self.load_balancer.assign_task_to_server(1)
        expected = 1
        result = self.load_balancer.calculate_user()
        self.assertEqual(expected, result)

    def test_run_tasks_should_reduce_ttask_user_attribute_by_one(self):
        self.load_balancer.assign_task_to_server(1)
        self.load_balancer.run_tasks()
        expected = 3
        result = self.load_balancer.servers[0].users[0].ttask
        self.assertEqual(expected, result)

    def test_output_should_return_two_comma_two_when_exist_four_active_users(self):
        self.load_balancer.assign_task_to_server(4)
        expected = "2, 2"
        result = self.load_balancer.output()
        self.assertEqual(expected, result)

    def test_assign_task_to_server_should_create_a_server_for_a_task_when_there_is_no_server_running(self):
        self.load_balancer.assign_task_to_server(1)
        expected = 1
        result = len(self.load_balancer.servers)
        self.assertEqual(expected, result)

    def test_assign_task_to_server_should_not_create_a_server_for_a_task_when_there_is_an_available_server_running(self):
        self.load_balancer.assign_task_to_server(1)
        self.load_balancer.assign_task_to_server(1)
        expected = 1
        result = len(self.load_balancer.servers)
        self.assertEqual(expected, result)

    def test_assign_task_to_server_should_create_a_new_instance_when_there_is_a_server_running_but_not_available(self):
        self.load_balancer.assign_task_to_server(2)
        self.load_balancer.assign_task_to_server(1)
        expected = 2
        result = len(self.load_balancer.servers)
        self.assertEqual(expected, result)