public void CreateFlexiTableBlock_CreatesFlexiTableBlock(FlexiTableType dummyType,
                                                                 Row[] dummyRows)
        {
            // Arrange
            const int      dummyNumColumns        = 6;
            const int      dummyColumn            = 4;
            const int      dummyLine              = 5;
            const int      dummyLineStart         = 3;
            const int      dummyLineEnd           = 10;
            const string   dummyBlockName         = "dummyBlockName";
            BlockParser    dummyBlockParser       = _mockRepository.Create <BlockParser>().Object;
            var            dummyColumnDefinitions = new List <ColumnDefinition>();
            var            dummyAttributes        = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>());
            BlockProcessor dummyBlockProcessor    = MarkdigTypesFactory.CreateBlockProcessor();
            var            dummyProxyTableBlock   = new ProxyTableBlock(dummyBlockParser);

            dummyProxyTableBlock.Column = dummyColumn;
            dummyProxyTableBlock.Line   = dummyLine;
            dummyProxyTableBlock.Span   = new SourceSpan(dummyLineStart, dummyLineEnd);
            foreach (Row row in dummyRows)
            {
                dummyProxyTableBlock.Rows.Add(row);
            }
            dummyProxyTableBlock.ColumnDefinitions = dummyColumnDefinitions;
            dummyProxyTableBlock.NumColumns        = dummyNumColumns;
            var dummyFlexiTableRowBlock1 = new FlexiTableRowBlock(false);
            var dummyFlexiTableRowBlock2 = new FlexiTableRowBlock(false);
            var dummyFlexiTableRowBlock3 = new FlexiTableRowBlock(false);
            Mock <FlexiTableBlockFactory> mockTestSubject = CreateMockFlexiTableBlockFactory();

            mockTestSubject.CallBase = true;
            mockTestSubject.
            Setup(t => t.CreateFlexiTableRowBlock(dummyType, It.IsAny <BlockProcessor>(), dummyColumnDefinitions, dummyNumColumns, 0, dummyRows[0], dummyRows[0].IsHeaderRow)).
            Returns(dummyFlexiTableRowBlock1);
            mockTestSubject.
            Setup(t => t.CreateFlexiTableRowBlock(dummyType, It.IsAny <BlockProcessor>(), dummyColumnDefinitions, dummyNumColumns, 1, dummyRows[1], dummyRows[1].IsHeaderRow)).
            Returns(dummyFlexiTableRowBlock2);
            mockTestSubject.
            Setup(t => t.CreateFlexiTableRowBlock(dummyType, It.IsAny <BlockProcessor>(), dummyColumnDefinitions, dummyNumColumns, 2, dummyRows[2], dummyRows[2].IsHeaderRow)).
            Returns(dummyFlexiTableRowBlock3);

            // Act
            FlexiTableBlock result = mockTestSubject.Object.CreateFlexiTableBlock(dummyBlockName, dummyType, dummyAttributes, dummyProxyTableBlock, dummyBlockProcessor);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Equal(dummyBlockName, result.BlockName);
            Assert.Equal(dummyType, result.Type);
            Assert.Same(dummyAttributes, result.Attributes);
            Assert.Same(dummyBlockParser, result.Parser);
            Assert.Equal(dummyColumn, result.Column);
            Assert.Equal(dummyLine, result.Line);
            Assert.Equal(dummyLineStart, result.Span.Start);
            Assert.Equal(dummyLineEnd, result.Span.End);
            Assert.Equal(3, result.Count);
            Assert.Same(dummyFlexiTableRowBlock1, result[0]);
            Assert.Same(dummyFlexiTableRowBlock2, result[1]);
            Assert.Same(dummyFlexiTableRowBlock3, result[2]);
        }
Esempio n. 2
0
        private static FlexiTableRowBlock CreateFlexiTableRowBlock(int numCells     = 2,
                                                                   int startNum     = 1,
                                                                   bool isHeaderRow = false,
                                                                   int[] colspans   = null,
                                                                   int[] rowspans   = null,
                                                                   ContentAlignment[] contentAlignments = null)
        {
            string cellType = isHeaderRow ? "Header" : "Data";
            var    result   = new FlexiTableRowBlock(isHeaderRow);

            for (int i = 0; i < numCells; i++)
            {
                var cell = new FlexiTableCellBlock(colspans?[i] ?? 0, rowspans?[i] ?? 0, contentAlignments?[i] ?? ContentAlignment.None)
                {
                    CreateParagraphBlock($"dummy{cellType}Cell{startNum++}")
                };
                result.Add(cell);
            }

            return(result);
        }