예제 #1
0
        public void DoesNotDieOnEmptyArray()
        {
            var table = new ObjectTableExtractor(new object[0]).GetTable();

            Assert.That(table.Rows.Count, Is.EqualTo(0));
            Assert.That(table.Columns.Count, Is.EqualTo(0));
        }
예제 #2
0
        public void DoesNotDieOnArrayWithEmptyObject()
        {
            var table = new ObjectTableExtractor(new[]
            {
                new {},
                new {}
            }).GetTable();

            Assert.That(table.Rows.Count, Is.EqualTo(2));
            Assert.That(table.Columns.Count, Is.EqualTo(0));
        }
예제 #3
0
        public void CanExtractListOfPrimitiveObjects()
        {
            var objects = new List <string> {
                "line1", "line2", "line3"
            };

            var table = new ObjectTableExtractor(objects).GetTable();

            Assert.That(table.Rows.Count, Is.EqualTo(3));
            Assert.That(table.Rows[0].GetAllCells().Single().Lines, Is.EqualTo(new[] { "line1" }));
            Assert.That(table.Rows[1].GetAllCells().Single().Lines, Is.EqualTo(new[] { "line2" }));
            Assert.That(table.Rows[2].GetAllCells().Single().Lines, Is.EqualTo(new[] { "line3" }));
        }
예제 #4
0
        public void CanExtractValues_Multiple()
        {
            var objects = new[]
            {
                new { col1 = new[] { "line1", "line2", "line3" } }
            };

            var table = new ObjectTableExtractor(objects).GetTable();

            var row = table.Rows.Single();

            var cellLines = row.GetAllCells().Single().Lines;

            Assert.That(cellLines, Is.EqualTo(new[] { "line1", "line2", "line3" }));
        }
예제 #5
0
        public void ExtractsColumnsOrderedByHowCodeIsWritten()
        {
            var objects = new List <SampleRow>
            {
                new SampleRow("1", "2", "3", "4"),
                new SampleRow("10", "20", "30", "40"),
                new SampleRow("100", "200", "300", "400"),
            };

            var table = new ObjectTableExtractor(objects).GetTable();

            string[] GetCells(Row row) => row.GetAllCells().Select(cell => cell.TextValue).ToArray();

            Assert.That(table.Rows.Count, Is.EqualTo(3));
            Assert.That(GetCells(table.Rows[0]), Is.EqualTo(new[] { "1", "2", "3", "4" }));
            Assert.That(GetCells(table.Rows[1]), Is.EqualTo(new[] { "10", "20", "30", "40" }));
            Assert.That(GetCells(table.Rows[2]), Is.EqualTo(new[] { "100", "200", "300", "400" }));
        }
예제 #6
0
        public void CanExtractValues_Strings()
        {
            var objects = new[]
            {
                new
                {
                    col1 = "v1",
                    col2 = "v2",
                    col3 = "v3",
                }
            };

            var table = new ObjectTableExtractor(objects).GetTable();

            var row = table.Rows.Single();

            var cellTexts = row.GetAllCells().OrderBy(c => c.TextValue).Select(c => c.TextValue);

            Assert.That(cellTexts, Is.EqualTo(new[] { "v1", "v2", "v3" }));
        }
예제 #7
0
        public void GetsColumnsAsExpected()
        {
            var objects = new[]
            {
                new
                {
                    FirstColumn  = "Value 1",
                    SecondColumn = "Value 1"
                },
                new
                {
                    FirstColumn  = "Value 1",
                    SecondColumn = "Value 1"
                }
            };

            var table = new ObjectTableExtractor(objects).GetTable();

            Assert.That(table.Columns.Select(c => c.Label), Is.EqualTo(new[] { "FirstColumn", "SecondColumn" }));
        }
예제 #8
0
        /// <summary>
        /// Formats a sequence of objects as rows of a table, using the property names as column names
        /// </summary>
        public string FormatObjects(IEnumerable rows)
        {
            var extractor = new ObjectTableExtractor(rows);

            return(UseExtractor(extractor));
        }