"""Tests for the Kafka Connector.""" from unittest import mock from unittest.mock import MagicMock from abacus_account.connectors.kafka import ( _create_account_payee_payload, emit_account_change_payee_program_event ) from abacus_account.constants.constants import ACCOUNT_KAFKA_EVENT_NAMES @mock.patch('abacus_account.connectors.kafka.Config') @mock.patch('abacus_account.connectors.kafka._create_account_payee_payload') def test_emit_account_change_payee_program_event_success( mock_create_event_payload, mock_config ): """Test emit_account_change_payee_program_event success.""" account_payee_id = 123 new_payee_id = 4 old_payee_id = 5 producer = MagicMock(produce_event=MagicMock()) mock_kafka_producers = { ACCOUNT_KAFKA_EVENT_NAMES.CHANGE_PAYEE_PROGRAM: producer, } mock_config.KAFKA_PRODUCERS_BY_ACTION_NAME = mock_kafka_producers mock_payload = { 'accountPayee': { 'accountPayeeId': account_payee_id, 'payoneerProgramId': new_payee_id, 'prevPayoneerProgramId': old_payee_id } } mock_create_event_payload.return_value = mock_payload emit_account_change_payee_program_event( account_payee_id, new_payee_id, old_payee_id ) mock_create_event_payload.assert_called_once_with( account_payee_id, new_payee_id, old_payee_id ) producer.__enter__.return_value.produce_event.assert_called_once_with( str(account_payee_id), mock_payload ) def test_create_event_payload(): """Test _create_account_payee_payload.""" account_payee_id = 123 new_payee_id = 4 old_payee_id = 5 payload = _create_account_payee_payload( account_payee_id, new_payee_id, old_payee_id ) assert payload == { 'accountPayee': { 'accountPayeeId': account_payee_id, 'payoneerProgramId': new_payee_id, 'prevPayoneerProgramId': old_payee_id } }