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); }; }
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"); }; }
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); } }