class TestServerDataEventProcessor(unittest.TestCase):
    def setUp(self):
        self.r = fakeredis.FakeStrictRedis()
        self.test_config = json.load(open(TEST_CONFIG_FILE))
        self.server_data_ep = ServerDataEventProcessor(self.r, self.test_config)

    def tearDown(self):
        self.r.flushall()

    def test_process_single_item(self):
        input_item_1 = {"data": 100, "serverId": "server1", "timeStamp": 1, "type": "AnswersPerSecond"}

        _, result = self.server_data_ep.process(input_item_1)

        expected_output = [{"servers_data": [
            {"answers_per_second": 100, "queries_per_second": 0, "server_id": "total"},
            {"answers_per_second": 100, "queries_per_second": 0, "server_id": "server1"}],
            "time_span": 1}]

        self.assertDictEqual(result[0]["servers_data"][0], expected_output[0]["servers_data"][0])

    def test_process_two_items(self):
        input_item_1 = {"data": 100, "serverId": "server1", "timeStamp": 1, "type": "AnswersPerSecond"}
        input_item_2 = {"data": 100, "serverId": "server2", "timeStamp": 2, "type": "QueriesPerSecond"}

        self.server_data_ep.process(input_item_1)
        _, result = self.server_data_ep.process(input_item_2)

        expected_output = [{"servers_data": [
            {"answers_per_second": 100, "queries_per_second": 100, "server_id": "total"},
            {"answers_per_second": 100, "queries_per_second": 0, "server_id": "server1"},
            {"answers_per_second": 0, "queries_per_second": 100, "server_id": "server2"}],
            "time_span": 1}]

        self.assertDictEqual(result[0]["servers_data"][0], expected_output[0]["servers_data"][0])
 def setUp(self):
     self.r = fakeredis.FakeStrictRedis()
     self.test_config = json.load(open(TEST_CONFIG_FILE))
     self.server_data_ep = ServerDataEventProcessor(self.r, self.test_config)