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);
        }
Example #5
0
        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);
        }
Example #6
0
        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());
        }
Example #7
0
        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));
        }