public void Csv_is_constructed_correctly()
        {
            // Arrange
            var    actual_bank_record = new ActualBankRecord();
            string csv_line           = String.Format("06/03/2017,BAC,\"'Some , description\",127.69,261.40,\"'Envelope\",\"'228822-99933422\",");

            actual_bank_record.Load(csv_line);
            actual_bank_record.Matched = false;

            // Act
            string constructed_csv_line = actual_bank_record.To_csv();

            // Assert
            Assert.AreEqual("06/03/2017,£127.69,BAC,\"'Some ; description\"", constructed_csv_line);
        }
        public void Amounts_should_be_written_using_pound_signs()
        {
            // Arrange
            var    actual_bank_record     = new ActualBankRecord();
            var    amount                 = "123.55";
            var    amount_with_pound_sign = "£" + amount;
            string csv_line               = String.Format("06/03/2017,BAC,\"description\",{0},261.40,\"'Envelope\",\"'228822-99933422\",", amount);

            actual_bank_record.Load(csv_line);

            // Act
            string constructed_csv_line = actual_bank_record.To_csv();

            // Assert
            string expected_csv_line = String.Format("06/03/2017,{0},BAC,\"description\"", amount_with_pound_sign);

            Assert.AreEqual(expected_csv_line, constructed_csv_line);
        }
        public void Amounts_containing_commas_should_be_encased_in_quotes()
        {
            // Arrange
            var    actual_bank_record      = new ActualBankRecord();
            var    amount                  = 1234.55;
            var    amount_containing_comma = "£1,234.55";
            string csv_line                = String.Format("06/03/2017,BAC,\"description\",{0},261.40,\"'Envelope\",\"'228822-99933422\",", amount);

            actual_bank_record.Load(csv_line);

            // Act
            string constructed_csv_line = actual_bank_record.To_csv();

            // Assert
            string expected_csv_line = String.Format("06/03/2017,\"{0}\",BAC,\"description\"", amount_containing_comma);

            Assert.AreEqual(expected_csv_line, constructed_csv_line);
        }
        public void If_input_is_encased_in_quotes_then_output_only_has_one_encasing_set_of_quotes()
        {
            // Arrange
            var    actual_bank_record = new ActualBankRecord();
            var    description_encased_in_one_set_of_quotes = "\"'Some description\"";
            string csv_line = String.Format("06/03/2017,BAC,{0},127.69,261.40,\"'Envelope\",\"'228822-99933422\",", description_encased_in_one_set_of_quotes);

            actual_bank_record.Load(csv_line);
            actual_bank_record.Matched = false;

            // Act
            string constructed_csv_line = actual_bank_record.To_csv();

            // Assert
            var expected_csv_line = String.Format("06/03/2017,£127.69,BAC,{0}", description_encased_in_one_set_of_quotes);

            Assert.AreEqual(expected_csv_line, constructed_csv_line);
        }