示例#1
0
        public void Convert_FileIsOK_ReturnsValidItems()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test
            var result = CsvDynamic.Convert(_fileName);

            //
            // Assert
            //
            Assert.IsTrue(result.Count == 4);
            Assert.IsTrue(result[0].Date == @"2/27/2013");
            Assert.IsTrue(result[0].Description == @"Jimmy John's");
            Assert.IsTrue(result[0].OriginalDescription == @"JIMMY JOHNS");
            Assert.IsTrue(result[0].TransactionType == @"debit");
            Assert.IsTrue(result[0].Category == @"Restaurants");
            Assert.IsTrue(result[0].AccountName == @"CREDIT CARD");
            Assert.IsTrue(result[0].Labels == string.Empty);
            Assert.IsTrue(result[0].Notes == string.Empty);
        }
示例#2
0
        public void ConvertMapped_ContentsIsOK_ReturnsValidItems()
        {
            //
            // Arrange
            //

            //
            // Act
            //

            // Call function being test
            var result = CsvDynamic.Convert(_fileContents, i => new SampleItem(i));

            //
            // Assert
            //
            Assert.IsTrue(result.Count == 4);
            Assert.IsTrue(result[0].Date == new DateTime(2013, 2, 27));
            Assert.IsTrue(result[0].Description == @"Jimmy John's");
            Assert.IsTrue(result[0].OriginalDescription == @"JIMMY JOHNS");
            Assert.IsTrue(result[0].Amount == 6.58m);
            Assert.IsTrue(result[0].TransactionType == @"debit");
            Assert.IsTrue(result[0].Category == @"Restaurants");
            Assert.IsTrue(result[0].AccountName == @"CREDIT CARD");
            Assert.IsTrue(result[0].Labels == string.Empty);
            Assert.IsTrue(result[0].Notes == string.Empty);
        }
示例#3
0
        public void Convert_StreamIsOK_ReturnsValidItems()
        {
            //
            // Arrange
            //
            var memStream = new MemoryStream();

            using (FileStream fileStream = File.OpenRead(_fileName))
            {
                memStream.SetLength(fileStream.Length);
                fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);
            }

            //
            // Act
            //

            // Call function being test
            var result = CsvDynamic.Convert(memStream);

            //
            // Assert
            //
            Assert.IsTrue(result.Count == 4);
            Assert.IsTrue(result[0].Date == @"2/27/2013");
            Assert.IsTrue(result[0].Description == @"Jimmy John's");
            Assert.IsTrue(result[0].OriginalDescription == @"JIMMY JOHNS");
            Assert.IsTrue(result[0].TransactionType == @"debit");
            Assert.IsTrue(result[0].Category == @"Restaurants");
            Assert.IsTrue(result[0].AccountName == @"CREDIT CARD");
            Assert.IsTrue(result[0].Labels == string.Empty);
            Assert.IsTrue(result[0].Notes == string.Empty);
        }
示例#4
0
        public void Convert_FileDoesNotExist_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <FileNotFoundException>(() => CsvDynamic.Convert("FileNotFound.csv"));
        }
示例#5
0
        public void Convert_FileIsEmpty_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <CsvDynamicException>(() => CsvDynamic.Convert(_fileEmpty),
                                                "No rows were found.");
        }
示例#6
0
        public void Convert_FilePathIsEmpty_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <ArgumentException>(() => CsvDynamic.Convert(string.Empty),
                                              "Empty path name is not legal.");
        }
示例#7
0
        public void Convert_FileIsMalformed_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <Microsoft.VisualBasic.FileIO.MalformedLineException>(
                () => CsvDynamic.Convert(_fileMalformed));
        }
示例#8
0
        public void Convert_FileIsMismatched_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <CsvDynamicException>(() => CsvDynamic.Convert(_fileMismatched),
                                                "Not all rows had equal cell count.");
        }
示例#9
0
        public void Convert_FileIsBroken_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <CsvDynamicException>(() => CsvDynamic.Convert(_fileBroken),
                                                "Only one row was found.");
        }
示例#10
0
        public void Convert_FileHeaderDuplicates_ReturnsException()
        {
            //
            // Arrange
            //


            //
            // Act
            //

            // Call function being test

            //
            // Assert
            //
            Assert.Throws <CsvDynamicException>(() => CsvDynamic.Convert(_fileDuplicates),
                                                "Some columns have duplicate names.");
        }