public void GenerateCsvEmailAttachment_WhenPassedEmptyColumns_ExecutesWithoutError()
        {
            var columns = new List <KeyValuePair <string, string> >();

            var sut = new EmailAttachmentGenerator();

            sut.GenerateCsvEmailAttachment(columns, "filename.txt");
        }
        public void GenerateCsvEmailAttachment_WhenPassedNullColumns_ThrowsArgumentNullException()
        {
            var sut = new EmailAttachmentGenerator();

            var exception = Assert.Throws <ArgumentNullException>(() => sut.GenerateCsvEmailAttachment(null, "filename.txt"));

            Assert.Equal("columns", exception.ParamName);
        }
        public void GenerateCsvEmailAttachment_WhenPassedInvalidFileName_ThrowsArgumentException(string filename)
        {
            var columns = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("Column", "Value")
            };
            var sut = new EmailAttachmentGenerator();

            var exception = Assert.Throws <ArgumentException>(() => sut.GenerateCsvEmailAttachment(columns, filename));

            Assert.Equal("filename", exception.ParamName);
        }
        public void GenerateCsvEmailAttachment_WhenPassedValidFileName_ReturnsAttachmentWithSpecifiedName()
        {
            var columns = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("Column", "Value")
            };
            const string fileName = "fileName.txt";

            var sut = new EmailAttachmentGenerator();

            var result = sut.GenerateCsvEmailAttachment(columns, fileName);

            Assert.Equal(fileName, result.Filename);
        }
        public void GenerateCsvEmailAttachment_WhenPassedColumnWithNullValue_ReturnsAttachmentWithExpectedData()
        {
            var columns = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("Column1", null),
                new KeyValuePair <string, string>("Column2", "Value2")
            };
            const string fileName = "fileName.txt";

            var sut = new EmailAttachmentGenerator();

            var result             = sut.GenerateCsvEmailAttachment(columns, fileName);
            var reader             = new StreamReader(result.Data);
            var actualFileContents = reader.ReadToEnd();

            const string expectedFileContents = "\"Column1\",\"Column2\"\n\"\",\"Value2\"\n";

            Assert.Equal(expectedFileContents, actualFileContents);
        }
 public void CanCreateGenerateCsvEmailAttachment()
 {
     // ReSharper disable once UnusedVariable
     var sut = new EmailAttachmentGenerator();
 }