public void Build_TwoRows_NumericValuesNonRounded() { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); var dataSet = new DataSet(); var dataTable = new DataTable() { TableName = "MyTable" }; dataTable.Columns.Add(new DataColumn("Id")); var numericDataColumn = new DataColumn("Numeric value"); numericDataColumn.ExtendedProperties.Add("NBi::Type", ColumnType.Numeric); dataTable.Columns.Add(numericDataColumn); dataTable.Columns.Add(new DataColumn("Boolean value")); dataTable.LoadDataRow(new object[] { "Alpha", 10.752, true }, false); dataTable.LoadDataRow(new object[] { "Beta", 20.8445585, false }, false); var msg = new TableHelperMarkdown(EngineStyle.ByIndex); var value = msg.Build(dataTable.Rows.Cast <DataRow>()).ToMarkdown(); var lines = value.Replace("\n", string.Empty).Split('\r'); Assert.That(value, Does.Contain("10.752 ")); Assert.That(value, Does.Contain("20.8445585")); }
public void Build_TwoRowsByName_FirstRow() { var dataSet = new DataSet(); var dataTable = new DataTable() { TableName = "MyTable" }; dataTable.Columns.Add(new DataColumn("Id")); dataTable.Columns["Id"].ExtendedProperties["NBi::Role"] = ColumnRole.Key; dataTable.Columns.Add(new DataColumn("Numeric value")); dataTable.Columns.Add(new DataColumn("Boolean value")); dataTable.LoadDataRow(new object[] { "Alpha", 10, true }, false); dataTable.LoadDataRow(new object[] { "Beta", 20, false }, false); var msg = new TableHelperMarkdown(EngineStyle.ByIndex); var value = msg.Build(dataTable.Rows.Cast <DataRow>()).ToMarkdown(); Assert.That(value.Count <char>(c => c == '\n'), Is.EqualTo(5)); var secondLineIndex = value.IndexOf('\n'); var firstLine = value.Substring(0, secondLineIndex - 1); Assert.That(firstLine.Replace(" ", ""), Is.EqualTo("#0(Id)|#1(Numericvalue)|#2(Booleanvalue)")); }
public void Build_TwoRows_5Lines() { var dataSet = new DataSet(); var dataTable = new DataTable() { TableName = "MyTable" }; dataTable.Columns.Add(new DataColumn("Id")); dataTable.Columns["Id"].ExtendedProperties["NBi::Role"] = ColumnRole.Key; dataTable.Columns.Add(new DataColumn("Numeric value")); dataTable.Columns.Add(new DataColumn("Boolean value")); dataTable.LoadDataRow(new object[] { "Alpha", 10, true }, false); dataTable.LoadDataRow(new object[] { "Beta", 20, false }, false); var msg = new TableHelperMarkdown(EngineStyle.ByIndex); var value = msg.Build(dataTable.Rows.Cast <DataRow>()).ToMarkdown(); Assert.That(value.Count <char>(c => c == '\n'), Is.EqualTo(5)); var secondLineIndex = value.IndexOf('\n'); var thirdLineIndex = value.IndexOf('\n', secondLineIndex + 1); var fourthLineIndex = value.IndexOf('\n', thirdLineIndex + 1); var thirdLine = value.Substring(thirdLineIndex + 1, fourthLineIndex - thirdLineIndex - 2); Assert.That(thirdLine.Distinct <char>().Count(), Is.EqualTo(3)); Assert.That(thirdLine.Distinct <char>(), Has.Member(' ')); Assert.That(thirdLine.Distinct <char>(), Has.Member('-')); Assert.That(thirdLine.Distinct <char>(), Has.Member('|')); }
public void Build_TwoRows_ColumnDelimitersAlligned() { var dataSet = new DataSet(); var dataTable = new DataTable() { TableName = "MyTable" }; dataTable.Columns.Add(new DataColumn("Id")); dataTable.Columns.Add(new DataColumn("Numeric value")); dataTable.Columns.Add(new DataColumn("Boolean value")); dataTable.LoadDataRow(new object[] { "Alpha", 10, true }, false); dataTable.LoadDataRow(new object[] { "Beta", 20, false }, false); var msg = new TableHelperMarkdown(EngineStyle.ByIndex); var value = msg.Build(dataTable.Rows.Cast <DataRow>()).ToMarkdown(); var lines = value.Replace("\n", string.Empty).Split('\r'); int pos = 0; while ((pos = lines[0].IndexOf('|', pos + 1)) > 0) { foreach (var line in lines.TakeWhile(l => l.Length > 0)) { Assert.That(line[pos], Is.EqualTo('|'), "The line '{0}' was expecting to have a '|' at position {1} but it was a '{2}'", new object[] { line, pos, line[pos] }); } } }
private MarkdownContainer BuildTable(TableHelperMarkdown tableBuilder, IEnumerable <DataRow> rows, string title, ISampler <DataRow> sampler) { rows = rows ?? new List <DataRow>(); sampler.Build(rows); var table = tableBuilder.Build(sampler.GetResult()); var container = new MarkdownContainer(); if (!String.IsNullOrEmpty(title)) { var titleText = string.Format($"{title} rows:"); container.Append(titleText.ToMarkdownSubHeader()); } container.Append(BuildRowCount(rows.Count())); container.Append(table); if (sampler.GetIsSampled()) { var rowsSkipped = string.Format($"{sampler.GetExcludedRowCount()} (of {rows.Count()}) rows have been skipped for display purpose."); container.Append(rowsSkipped.ToMarkdownParagraph()); } return(container); }
private MarkdownContainer BuildNonEmptyTable(EngineStyle style, IEnumerable <DataRow> rows, string title, ISampler <DataRow> sampler) { var tableBuilder = new TableHelperMarkdown(style); if (rows != null && rows.Count() > 0) { return(BuildTable(tableBuilder, rows, title, sampler)); } else { return(new MarkdownContainer()); } }
private MarkdownContainer BuildTable(EngineStyle style, IEnumerable <DataRow> rows, ISampler <DataRow> sampler) { var tableBuilder = new TableHelperMarkdown(style); return(BuildTable(tableBuilder, rows, string.Empty, sampler)); }