"""Unit tests for Processor.""" from unittest.mock import call, patch from reserves_release.processor import ReservesReleaseProcessor @patch('reserves_release.processor.ReservesReleaseProcessor.' '_get_ledger_release_reserve_schedules') @patch('reserves_release.processor.LedgerReserveReleaseProcessor') @patch('reserves_release.processor.LedgerAccountProcessor') def test_processor_process( mock_ledger_account_processor, mock_ledger_reserve_release_processor, mock_get_ledger_release_reserve_schedules_req, mock_ledger_reserve_release_schedule, mock_event ): """Test Processor.process.""" mock_get_ledger_release_reserve_schedules_req.return_value = \ mock_ledger_reserve_release_schedule processor = ReservesReleaseProcessor(mock_event) processor.process() assert mock_ledger_reserve_release_processor.return_value.process.call_count == 2 assert mock_ledger_account_processor.return_value.process.call_count == 1 def test_group_release_schedules_by_contract_id( mock_event, mock_ledger_reserve_release_schedule ): """Test _group_release_schedules_by_contract_id method.""" mock_reserve_schedule = mock_ledger_reserve_release_schedule processor = ReservesReleaseProcessor(mock_event) result = processor._group_release_schedules_by_contract_id(mock_reserve_schedule) assert result == { 1: mock_reserve_schedule } @patch('reserves_release.processor.get_ledger_release_reserve_schedules') def test_get_ledger_release_reserve_schedules( mock_get_request, mock_event, mock_ledger_reserve_release_schedule ): """Test _get_ledger_release_reserve_schedules method.""" mock_get_request.return_value = mock_ledger_reserve_release_schedule processor = ReservesReleaseProcessor(mock_event) result = processor._get_ledger_release_reserve_schedules() assert result == mock_ledger_reserve_release_schedule @patch('reserves_release.processor.LedgerReserveReleaseProcessor') @patch('reserves_release.processor.LedgerEntryQueue') def test_post_ledger_reserve_release( mock_ledger_queue, mock_ledger_reserve_release_processor, mock_event, mock_ledger_reserve_release_schedule ): """Test _post_ledger_reserve_release method.""" mock_ledger_queue.return_value.length = 2 mock_ledger_queue.return_value.flush_entries.return_value = None processor = ReservesReleaseProcessor(mock_event) processor._post_ledger_reserve_release(mock_ledger_reserve_release_schedule) assert mock_ledger_reserve_release_processor.return_value.process.call_count == 2 mock_ledger_queue.assert_called_once() mock_ledger_reserve_release_processor.return_value.process.assert_has_calls( [ call(mock_ledger_reserve_release_schedule[0]), call(mock_ledger_reserve_release_schedule[1]) ] ) @patch('reserves_release.processor.LedgerAccountProcessor') @patch('reserves_release.processor.LedgerEntryQueue') def test_post_ledger_accounts( mock_ledger_queue, mock_ledger_account_processor, mock_event, mock_ledger_reserve_release_schedule ): """Test _post_ledger_accounts method.""" mock_ledger_queue.return_value.length = 2 mock_ledger_queue.return_value.flush_entries.return_value = None processor = ReservesReleaseProcessor(mock_event) processor._post_ledger_accounts(mock_ledger_reserve_release_schedule) assert mock_ledger_account_processor.return_value.process.call_count == 1 mock_ledger_queue.assert_called_once() mock_ledger_account_processor.return_value.process.assert_has_calls( [call(mock_ledger_reserve_release_schedule)] )