Esempio n. 1
0
    def test_evaluate_query_returns_correct_result(self):
        # Given
        expression1 = 'False or (False or True)'
        expression2 = 'False and (False or False)'

        # When
        result1 = StreamController.evaluate_query(expression1)
        result2 = StreamController.evaluate_query(expression2)

        # Then
        self.assertTrue(result1)
        self.assertFalse(result2)
Esempio n. 2
0
    def test_decide_alert_returns_true_and_two_action_messages(self):
        # Given
        controller = StreamController()
        controller.query = '@STREAM1@ and @STREAM2@'
        messages = [
            StreamControllerMessage(_alert=True, _msg='MSG', _sender='STREAM1'),
            StreamControllerMessage(_alert=True, _msg='MSG', _sender='STREAM2')
        ]

        # When
        result, action_msgs = controller.decide_alert(messages)

        # Then
        self.assertTrue(result)
        self.assertEqual(2, len(action_msgs))
Esempio n. 3
0
    def test_evaluate_query_return_false_when_exception(self):
        # Given
        expression = 'hmmmm'

        # When
        result = StreamController.evaluate_query(expression)

        # Then
        self.assertFalse(result)
Esempio n. 4
0
    def test_validate_returns_false(self):
        # Given
        pca = PCASystem()
        pca.stream_controller = StreamController()

        # When
        result = pca.validate()

        # Then
        self.assertFalse(result)
Esempio n. 5
0
    def test_validate_returns_true(self):
        # Given
        pca = PCASystem()
        pca.stream_controller = StreamController()
        pca.streams = [Stream('STREAM1')]

        # When
        result = pca.validate()

        # Then
        self.assertTrue(result)
Esempio n. 6
0
    def streamcontroller_from_dict(self, obj_dict: dict):
        """
		:param obj_dict: JSON structure
		:return: StreamController object
		"""
        try:
            stream_controller = StreamController()
            stream_controller.query = obj_dict['query']
            stream_controller.msg_limit = int(obj_dict['msg_limit'])
            stream_controller.polling_interval = int(
                obj_dict['polling_interval'])

            action_class_name = obj_dict['action'][PCASystemJSONEncoder.TYPE]
            parameters_dict = obj_dict['action'][
                PCASystemJSONEncoder.PARAMETERS]

            stream_controller.action = self.loaded_actions[action_class_name](
                parameters_dict)
            return stream_controller
        except KeyError:
            PCASystemJSONDecoder.LOGGER.error(
                'Cannot load StreamController from JSON')
            raise