public void M_WhenExpenseMatchingWillResetRecordMatchingDelegate()
        {
            // Arrange
            var mock_bank_and_bank_in_loader  = new Mock <IBankAndBankInLoader>();
            var mock_reconciliator            = new Mock <IReconciliator <ActualBankRecord, BankRecord> >();
            var mock_reconciliation_interface = new Mock <IReconciliationInterface <ActualBankRecord, BankRecord> >();
            var matcher = new BankAndBankInMatcher(this, new FakeSpreadsheetRepoFactory(), mock_bank_and_bank_in_loader.Object);

            // Act
            matcher.Do_preliminary_stuff(mock_reconciliator.Object, mock_reconciliation_interface.Object);

            // Assert
            mock_reconciliator.Verify(x => x.Reset_record_matcher());
        }
        public void M_WhenExpenseMatchingWillFilterActualBankFileForExpenseTransactionsOnly()
        {
            // Arrange
            var mock_bank_and_bank_in_loader  = new Mock <IBankAndBankInLoader>();
            var mock_reconciliator            = new Mock <IReconciliator <ActualBankRecord, BankRecord> >();
            var mock_reconciliation_interface = new Mock <IReconciliationInterface <ActualBankRecord, BankRecord> >();
            var matcher = new BankAndBankInMatcher(this, new FakeSpreadsheetRepoFactory(), mock_bank_and_bank_in_loader.Object);

            // Act
            matcher.Do_preliminary_stuff(mock_reconciliator.Object, mock_reconciliation_interface.Object);

            // Assert
            mock_reconciliator.Verify(x => x.Filter_third_party_file(matcher.Is_not_expense_transaction));
        }