"""Unit testcases for LedgerProcessor.""" from correction_apply.ledger_processor import LedgerProcessor def test_format_ledger_account_contract_entry( mock_event, mock_ledger_params, mock_ledger_account_contract ): """Test creating ledger_account_contract params.""" mock_ledger_correction_entry_queue = list() mock_ledger_entry_queue = list() processor = LedgerProcessor( mock_ledger_correction_entry_queue, mock_ledger_entry_queue, mock_event ) res = processor._format_ledger_account_contract_entry(mock_ledger_params) assert res == mock_ledger_account_contract def test_format_ledger_deposit_entry( mock_event, mock_ledger_params, mock_ledger_deposit ): """Test creating ledger_deposit params.""" mock_ledger_correction_entry_queue = list() mock_ledger_entry_queue = list() processor = LedgerProcessor( mock_ledger_correction_entry_queue, mock_ledger_entry_queue, mock_event ) res = processor._format_ledger_deposit_entry(mock_ledger_params) assert res == mock_ledger_deposit def test_format_ledger_correction_entry( mock_event, mock_ledger_correction, mock_ledger_params ): """Test creating ledger_correction params.""" mock_ledger_correction_entry_queue = list() mock_ledger_entry_queue = list() processor = LedgerProcessor( mock_ledger_correction_entry_queue, mock_ledger_entry_queue, mock_event ) res = processor._format_ledger_correction_entry(mock_ledger_params) assert res == mock_ledger_correction def test_format_ledger_correction_entry_with_null_mech_deductions( mock_event, mock_ledger_correction, mock_ledger_params ): """Test creating ledger_correction params.""" mock_ledger_correction_entries = mock_ledger_correction mock_ledger_correction_entries.update({ 'mechanical_deduction_total': None, 'mechanical_deduction_admin_fee_total': None }) mock_ledger_params_with_null_values = mock_ledger_params mock_ledger_params_with_null_values.update({ 'mechanical_deduction_total': None, 'mechanical_deduction_admin_fee_total': None }) mock_ledger_correction_entry_queue = list() mock_ledger_entry_queue = list() processor = LedgerProcessor( mock_ledger_correction_entry_queue, mock_ledger_entry_queue, mock_event ) res = processor._format_ledger_correction_entry( mock_ledger_params_with_null_values ) assert res == mock_ledger_correction_entries assert res['mechanical_deduction_total'] is None assert res['mechanical_deduction_admin_fee_total'] is None def test_process( mock_event, mock_ledger_account_contract, mock_ledger_deposit, mock_ledger_correction, mock_worksheet_correction ): """Test main process method that queues ledger entries.""" ledger_correction_entry_queue = list() ledger_entry_queue = list() processor = LedgerProcessor( ledger_correction_entry_queue, ledger_entry_queue, mock_event ) processor.process(mock_worksheet_correction) assert len(processor._ledger_entries) == 2 assert len(processor._ledger_correction_entries) == 1 assert processor._ledger_entries == \ [mock_ledger_account_contract, mock_ledger_deposit] assert processor._ledger_correction_entries == [mock_ledger_correction]