void divider_should_renderHeaderAndBlankFooterWhenDefinedInline() { var tab = new PlainTextTable() .AddRow("Name", "Value") .Divide('-') .AddRow("Data a1", "Data b1") .AddRow("Data a2", "Data b2") .AddRow("Data a3", "Data b3") .Divide('-') .ToString(); var result = tab.ToString(); output.WriteLine(result + "EOM"); string expected = @"Name Value --------------- Data a1 Data b1 Data a2 Data b2 Data a3 Data b3 --------------- "; Assert.Equal(expected, result); }
void fluid_should_setAlignmentByIndexer() { var tab = new PlainTextTable(); tab.Align(2, 'r'); Assert.Equal(Alignment.Right, tab.Alignments[2]); }
void fluid_should_setTrimTrailingSpace() { var tab = new PlainTextTable(); tab.TrimTrailingSpace(true); Assert.True(tab.TrimTrailingWhitespace); }
void fluid_should_setSeparateByDelimiter() { var tab = new PlainTextTable(); tab.SeparateBy("TEST"); Assert.Equal("TEST", tab.ColumnSeparator); }
void expectedColumns_should_inferMaxFromFirstRow() { var tab = new PlainTextTable(); tab.ImportRows(create_test_data()); Assert.Equal(3, tab.ColumnsExpected); }
void emptyEnumerable_should_renderAnEmptyString() { var tab = new PlainTextTable(Enumerable.Empty <string[]>()); var actual = tab.ToString(); Assert.Equal(string.Empty, actual); }
void columnState_should_returnAnEmptyArrayWhenNoColumnsHaveBeenImported() { var tab = new PlainTextTable(); var columns = tab.GetColumnState(); Assert.NotNull(columns); Assert.Empty(columns); }
void columnState_should_inferColumnWidthsFromTestData() { var tab = new PlainTextTable(create_test_data()); var columns = tab.GetColumnState(); Assert.Equal(3, columns.Length); Assert.Equal(5, columns[0].Width); Assert.Equal(5, columns[1].Width); Assert.Equal(9, columns[2].Width); }
void render_should_writeSpaceDelimitedTable() { var tab = new PlainTextTable(create_test_data()); var result = tab.ToString(); output.WriteLine(result + "EOM"); string expected = @"Col A Col B Col C R1-A R1-B R1-C R2-A R2-B R2-C long R3-A R3-B R3-C "; Assert.Equal(expected, result); }
void fluid_should_setAlignmentsByString() { var tab = new PlainTextTable(create_test_data()); tab.Align("lmr"); Assert.Equal(3, tab.Alignments.Count); var columns = tab.GetColumnState(); Assert.Equal(3, columns.Length); Assert.Equal(Alignment.Left, columns[0].Align); Assert.Equal(Alignment.Center, columns[1].Align); Assert.Equal(Alignment.Right, columns[2].Align); }
void render_should_writeTrimmedRightColumn() { var tab = new PlainTextTable(create_test_data()); tab.TrimTrailingSpace(true); var result = tab.ToString(); output.WriteLine(result + "EOM"); string expected = @"Col A Col B Col C R1-A R1-B R1-C R2-A R2-B R2-C long R3-A R3-B R3-C "; Assert.Equal(expected, result); }
void render_should_writeAlignedColumns() { var tab = new PlainTextTable(create_test_data()); tab.SeparateBy("|"); tab.Align('l', 'r', 'm'); var result = tab.ToString(); output.WriteLine(result + "EOM"); string expected = @"Col A|Col B| Col C R1-A | R1-B| R1-C R2-A | R2-B|R2-C long R3-A | R3-B| R3-C "; Assert.Equal(expected, result); }
void divider_should_renderHeaderAndSummaryFooter() { var tab = new PlainTextTable(create_test_data()); tab.DivideAt(1, '-'); tab.DivideAt(-2, '-'); var result = tab.ToString(); output.WriteLine(result + "EOM"); string expected = @"Col A Col B Col C --------------------- R1-A R1-B R1-C R2-A R2-B R2-C long --------------------- R3-A R3-B R3-C "; Assert.Equal(expected, result); }
void expectedColumns_should_throwExceptionIfRowElementLengthIsInvalid() { var tab = new PlainTextTable(4); Assert.Throws <UnexpectedColumnCountException>(() => tab.ImportRows(create_test_data())); }
void stringPadding_should_preferLeftOffsetWhenAligningCentre(string input, int length, string expected, Alignment align, bool padRight) { var actual = PlainTextTable.Pad(input, length, align, padRight); Assert.Equal(expected, actual); }
void stringPadding_should_padWith(string input, int length, string expected, Alignment align, bool padRight) { var actual = PlainTextTable.Pad(input, length, align, padRight); Assert.Equal(expected, actual); }