public void TableWriterWritesSomething() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new ICellContent[] { new BasicCellContent { Value = "TestCell" }, new BreakingRuleContentArea(), new BasicCellContent { Value = "Line2" } } } } }, ColumnDetails = new [] { new ColumnDetails { columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String } } }; target.Draw(table); string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations); Assert.Contains("Line2", s); }
public void TableWriterMultipleRows() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new ICellContent[] { new BasicCellContent { Value = "TestCell" }, new BreakingRuleContentArea(), new BasicCellContent { Value = "Line2" } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String } } }; target.Draw(table); string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations); string[] effectiveLines = s.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries); Assert.Equal(4, effectiveLines.Length); }
public void TableWriterColumnConstraintsRespectedOverallWidth() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); int columnWidth = new Random().Next(95); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "TestCell" } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = columnWidth, isNullable = false, type = Data.DataType.String } }, Rows = new[] { new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "This is a test value." } } } } } } }; target.Draw(table); string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations); string[] effectiveLines = s.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries); Assert.True(effectiveLines.All(l => l.Length == columnWidth + ("|".Length * 2)), GetLengths(effectiveLines)); }
public void TableWriterColumnConstraintsPadsWithTooLargeColumn() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); int columnWidth = 25; var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "TestCell" } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = columnWidth, isNullable = false, type = Data.DataType.String } }, Rows = new[] { new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "This is a test value." } } } } } } }; target.Draw(table); string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations); Assert.Contains(" This is a test value.", s); }
public void TableWriterWritesExpected() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); Guid expectedValue = Guid.NewGuid(); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "TestCell" } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = expectedValue.ToString().Length + 2, isNullable = false, type = Data.DataType.String } }, Rows = new[] { new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = expectedValue.ToString() } } } } } } }; target.Draw(table); string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations); Assert.Contains(expectedValue.ToString(), s); }
public void TableWriterWritesHeaderResetsColorChoice() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "TestCell", ForegroundColor = ConsoleColor.Green } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String } } }; target.Draw(table); mockOutputter.Verify(m => m.ResetColor(), Times.Once()); }
public void TableWriter_SimpleTable_WritesHeaderLines3LineBreaks() { var mockOutputter = new Mock <IConsoleOutputter>(); var target = new TableWriter(mockOutputter.Object, new ViewPort(100, 100)); var table = new DisplayTable() { Header = new TableRow { Cells = new[] { new BasicTableCell { ContentAreas = new[] { new BasicCellContent { Value = "TestCell" } } } } }, ColumnDetails = new[] { new ColumnDetails { columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String } } }; target.Draw(table); mockOutputter.Verify(m => m.Write(It.Is <string>(s => s == Environment.NewLine)), Times.Exactly(3)); }