public void TestTextFileSerializer_LineNo_IncrementsCorrectly_WithHeaderRow()
        {
            using (var data = MockData.GetDataWithHeaderRow())
            {
                TextFileSerializer <MockData> tfs = new TextFileSerializer <MockData>(data)
                {
                    Delimiter      = ";",
                    FirstRowHeader = true
                };

                string[] lines      = data.ReadLines();
                var      enumerator = tfs.GetEnumerator();
                int      lastLineNo = 0;

                for (int i = 0; i < (lines.Length - 1); i++)
                {
                    enumerator.MoveNext();
                    var currentMock = enumerator.Current;
                    lastLineNo = tfs.LineNo;
                    Assert.IsTrue(lastLineNo == i + 2);
                }

                Assert.IsTrue(lastLineNo == lines.Length);
            };
        }
Exemple #2
0
        public void JsonPrePostSerialization_AreEqual(string relativeFilePath, string toSerialize)
        {
            //setup
            var debugger       = new ConsoleDebugger();
            var jsonSerializer = new NewtonsoftJsonSerializer();
            var fileSerializer = new TextFileSerializer(jsonSerializer, debugger);
            var finalPath      = Path.Combine(Environment.CurrentDirectory, relativeFilePath);

            if (File.Exists(finalPath))
            {
                File.Delete(finalPath);
            }

            //write / read
            fileSerializer.Write(finalPath, toSerialize);
            Assert.True(File.Exists(finalPath));

            var deserialized = fileSerializer.Read <string>(finalPath);

            //compare results
            Assert.Equal(toSerialize, deserialized);

            //cleanup
            File.Delete(finalPath);
        }
        public void TestTextFileSerializer_WillSkipFooterRow_WithHeaderRow()
        {
            using (var data = MockData.GetDataWithHeaderRowAndFooter())
            {
                TextFileSerializer <MockData> tfs = new TextFileSerializer <MockData>(data)
                {
                    Delimiter      = ";",
                    FirstRowHeader = true,
                    SkipFooterRows = 1
                };

                string[] lines    = data.ReadLines();
                var      rowCount = tfs.Count();
                Assert.AreEqual(rowCount, lines.Count() - 2);
                Assert.AreEqual(tfs.LineNo, lines.Count() - tfs.SkipFooterRows);
            }
        }
        public void TestSkipPredicate_WillSkipRowIfMatched()
        {
            using (var data = MockData.GetDataNoHeaderRow())
            {
                TextFileSerializer <MockData> tfs = new TextFileSerializer <MockData>(data)
                {
                    Delimiter      = ";",
                    FirstRowHeader = false,
                    SkipFooterRows = 0,
                    SkipPredicate  = new TextFileSerializer <MockData> .SkipRow((a) => a.Name.Equals("Fred"))
                };

                string[] lines    = data.ReadLines();
                var      rowCount = tfs.Count();
                Assert.AreEqual(rowCount, lines.Count() - 1);
                Assert.AreEqual(tfs.LineNo, lines.Count() - tfs.SkipFooterRows);
            }
        }
        public void TestTextFileSerializer_WillHandle_FieldInQuotes()
        {
            using (var data = MockData.GetDataNoHeaderRow())
            {
                TextFileSerializer <MockData> tfs = new TextFileSerializer <MockData>(data)
                {
                    Delimiter      = ";",
                    FirstRowHeader = false,
                    FieldsInQuotes = true
                };

                string[] lines      = data.ReadLines();
                var      enumerator = tfs.GetEnumerator();

                var firstRow = tfs.First();
                Assert.AreEqual(firstRow.Comment, "Hello;World");
            };
        }
Exemple #6
0
        public void DirectoryCreation_NoExceptions(string completeFilePath, string toSerialize)
        {
            //setup to ensure the directory is created on this run
            string directoryName = Path.GetDirectoryName(completeFilePath);

            if (Directory.Exists(directoryName))
            {
                Directory.Delete(directoryName);
            }

            var debugger       = new ConsoleDebugger();
            var jsonSerializer = new NewtonsoftJsonSerializer();
            var fileSerializer = new TextFileSerializer(jsonSerializer, debugger);

            try
            {
                fileSerializer.Write(completeFilePath, toSerialize);
            }
            catch (Exception e)
            {
                Assert.False(true);
            }
        }