def test_check_queue_conditions_not_sends_notification_when_no_conditions_met(self):
        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_queue = mock.MagicMock(return_value=self.construct_response_queue())

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_queue_conditions(self.construct_arguments())

        notifier.send_notification.assert_not_called()
    def test_check_consumer_conditions_exits_when_no_response_from_client(self):
        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_consumers = mock.MagicMock(return_value=None)

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_consumer_conditions(self.construct_arguments())

        notifier.send_notification.assert_not_called()
    def test_check_consumer_conditions_not_sends_notification_when_exceeding_consumers_connected(self):
        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_consumers = mock.MagicMock(return_value=self.construct_response_consumers())

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_consumer_conditions(self.construct_arguments())

        notifier.send_notification.assert_not_called()
    def test_check_node_conditions_sends_notification_when_beneath_nodes_running(self):
        response = {}

        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_nodes = mock.MagicMock(return_value=response)

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_node_conditions(self.construct_arguments())

        notifier.send_notification.assert_called_once()
    def test_check_queue_conditions_sends_notification_when_exceeding_messages(self):
        response = self.construct_response_queue()
        response["messages"] = 2

        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_queue = mock.MagicMock(return_value=response)

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_queue_conditions(self.construct_arguments())

        notifier.send_notification.assert_called_once()
    def test_check_node_conditions_sends_notification_when_exceeding_mem_used(self):
        response = self.construct_response_nodes()
        response[0]["mem_used"] = 2 * pow(1024, 2)

        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_nodes = mock.MagicMock(return_value=response)

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_node_conditions(self.construct_arguments())

        notifier.send_notification.assert_called_once()
    def test_check_queue_conditions_sends_notification_when_beneath_consumers(self):
        response = self.construct_response_queue()
        response["consumers"] = 0
        arguments = self.construct_arguments()
        arguments["generic_conditions"]["conditions_queue_consumers_connected"] = 1
        arguments["conditions"]["foo"]["conditions_queue_consumers_connected"] = 1

        logger = mock.MagicMock()
        client = mock.MagicMock()
        notifier = mock.MagicMock()
        client.get_queue = mock.MagicMock(return_value=response)

        rmqa = conditionchecker.ConditionChecker(logger, client, notifier)
        rmqa.check_queue_conditions(arguments)

        notifier.send_notification.assert_called_once()