public void Will_populate_actual_bank_record_cells()
        {
            // Arrange
            var actual_bank_record = new ActualBankRecord
            {
                Date                  = new DateTime(year: 2018, month: 7, day: 1),
                Type                  = "Chq",
                Description           = "New description which will overwrite what's normally there.",
                Amount                = 6666.66,
                LastTransactionMarker = ReconConsts.LastOnlineTransaction + "x"
            };
            var cells           = _spreadsheet.Current_cells(TestSheetNames.Bank);
            var last_row_number = _spreadsheet.Last_row_number(TestSheetNames.Bank);
            var previous_record = new ActualBankRecord();

            previous_record.Read_from_spreadsheet_row(_spreadsheet.Read_last_row(TestSheetNames.Bank));

            // Act
            actual_bank_record.Populate_spreadsheet_row(cells, last_row_number);
            var new_row = _spreadsheet.Read_last_row(TestSheetNames.Bank);

            // Assert
            Assert.AreEqual(actual_bank_record.LastTransactionMarker, (String)new_row.Read_cell(ActualBankRecord.LastTransactionMarkerSpreadsheetIndex));
            Assert.AreEqual(actual_bank_record.Date, DateTime.FromOADate((double)new_row.Read_cell(ActualBankRecord.DateSpreadsheetIndex)));
            Assert.AreEqual(actual_bank_record.Type, (String)new_row.Read_cell(ActualBankRecord.TypeSpreadsheetIndex));
            Assert.AreEqual(actual_bank_record.Description, (String)new_row.Read_cell(ActualBankRecord.DescriptionSpreadsheetIndex));
            Assert.AreEqual(actual_bank_record.Amount, (Double)new_row.Read_cell(ActualBankRecord.AmountSpreadsheetIndex));

            // Clean up
            previous_record.Populate_spreadsheet_row(cells, last_row_number);
        }
        public void M_WillPopulateActualBankRecordCells()
        {
            // Arrange
            var actual_bank_record = new ActualBankRecord
            {
                Date        = new DateTime(year: 2017, month: 4, day: 19),
                Type        = "Chq",
                Description = "Acme: Esmerelda's birthday",
                Amount      = 1234.56
            };
            var row        = 10;
            var mock_cells = new Mock <ICellSet>();

            // Act
            actual_bank_record.Populate_spreadsheet_row(mock_cells.Object, row);

            // Assert
            mock_cells.Verify(x => x.Populate_cell(row, ActualBankRecord.DateSpreadsheetIndex + 1, actual_bank_record.Date), "Date");
            mock_cells.Verify(x => x.Populate_cell(row, ActualBankRecord.AmountSpreadsheetIndex + 1, actual_bank_record.Main_amount()), "Amount");
            mock_cells.Verify(x => x.Populate_cell(row, ActualBankRecord.TypeSpreadsheetIndex + 1, actual_bank_record.Type), "Type");
            mock_cells.Verify(x => x.Populate_cell(row, ActualBankRecord.DescriptionSpreadsheetIndex + 1, actual_bank_record.Description), "Desc");
        }