Example #1
0
        public void TestRenderSchema(CsvFileLog.ColumnKind column, int columnIndex, int columnCount)
        {
            string logFile = Path.Combine(Path.GetTempPath(), GetRandomFileName());

            // schema:
            //   <empty>,...,<empty>,<column>,<empty>,...,<empty>
            // where
            //   - <column> is at position 'columnIndex'
            //   - total number of columns is 'columnCount'
            var schema =
                Repeat(CsvFileLog.ColumnKind.Empty, columnIndex - 1)
                .Concat(new[] { column })
                .Concat(Repeat(CsvFileLog.ColumnKind.Empty, columnCount - columnIndex - 1));

            using (var log = new CsvFileLog(logFile, schema, serviceName: "CsvFileLogTests"))
            {
                var actual   = RenderMessage(log, TestMessage);
                var expected = string.Join(",", schema
                                           .Select(col => RenderColumn(log, col, TestMessage))
                                           .Select(str => '"' + str + '"'));
                actual.Should().BeEquivalentTo(expected);
            }

            IEnumerable <CsvFileLog.ColumnKind> Repeat(CsvFileLog.ColumnKind col, int count)
            {
                return(Enumerable.Range(0, Math.Max(0, count)).Select(_ => col));
            }
        }
Example #2
0
 private string RenderColumn(CsvFileLog log, CsvFileLog.ColumnKind col, string message)
 {
     return(log.RenderColumn(col, TestTimestamp, TestThreadId, TestSeverity, message));
 }