public void Create_CreatesFlexiTableBlock()
        {
            // Arrange
            const string         dummyBlockName         = "dummyBlockName";
            const string         dummyResolvedBlockName = "dummyResolvedBlockName";
            const FlexiTableType dummyType           = FlexiTableType.FixedTitles;
            BlockProcessor       dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();
            var dummyAttributes = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>());
            Mock <IFlexiTableBlockOptions> mockFlexiTableBlockOptions = _mockRepository.Create <IFlexiTableBlockOptions>();

            mockFlexiTableBlockOptions.Setup(f => f.BlockName).Returns(dummyBlockName);
            mockFlexiTableBlockOptions.Setup(f => f.Type).Returns(dummyType);
            mockFlexiTableBlockOptions.Setup(f => f.Attributes).Returns(dummyAttributes);
            Mock <IOptionsService <IFlexiTableBlockOptions, IFlexiTableBlocksExtensionOptions> > mockOptionsService = _mockRepository.
                                                                                                                      Create <IOptionsService <IFlexiTableBlockOptions, IFlexiTableBlocksExtensionOptions> >();

            mockOptionsService.Setup(f => f.CreateOptions(dummyBlockProcessor)).
            Returns((mockFlexiTableBlockOptions.Object, null));
            var             dummyProxyTableBlock          = new ProxyTableBlock(null);
            FlexiTableBlock dummyFlexiTableBlock          = CreateFlexiTableBlock();
            Mock <FlexiTableBlockFactory> mockTestSubject = CreateMockFlexiTableBlockFactory(mockOptionsService.Object);

            mockTestSubject.CallBase = true;
            mockTestSubject.Setup(t => t.ResolveBlockName(dummyBlockName)).Returns(dummyResolvedBlockName);
            mockTestSubject.Setup(t => t.ValidateType(dummyType));
            mockTestSubject.Setup(t => t.CreateFlexiTableBlock(dummyResolvedBlockName, dummyType, dummyAttributes, dummyProxyTableBlock, dummyBlockProcessor)).Returns(dummyFlexiTableBlock);

            // Act
            FlexiTableBlock result = mockTestSubject.Object.Create(dummyProxyTableBlock, dummyBlockProcessor);

            // Assert
            _mockRepository.VerifyAll();
        }
Exemplo n.º 2
0
        public void WriteBlock_OnlyWritesChildrenIfEnableHtmlForBlockIsFalse()
        {
            // Arrange
            const string dummyChildText       = "dummyChildText";
            var          dummyContainerInline = new ContainerInline();

            dummyContainerInline.AppendChild(new LiteralInline(dummyChildText));
            var dummyParagraphBlock = new ParagraphBlock()
            {
                Inline = dummyContainerInline
            };
            FlexiTableBlock dummyFlexiTableBlock = CreateFlexiTableBlock();

            dummyFlexiTableBlock.Add(dummyParagraphBlock);
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter)
            {
                EnableHtmlForBlock = false
            };
            ExposedFlexiTableBlockRenderer testSubject = CreateExposedFlexiTableBlockRenderer();

            // Act
            testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiTableBlock);
            string result = dummyStringWriter.ToString();

            // Assert
            Assert.Equal(dummyChildText + "\n", result, ignoreLineEndingDifferences: true);
        }
        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]);
        }
        private static FlexiTableBlock CreateFlexiTableBlock(string blockName    = default,
                                                             FlexiTableType type = default,
                                                             ReadOnlyDictionary <string, string> attributes = default,
                                                             BlockParser blockParser = default,
                                                             params FlexiTableRowBlock[] flexiTableRowBlocks)
        {
            var result = new FlexiTableBlock(blockName, type, attributes, blockParser);

            foreach (FlexiTableRowBlock flexiTableRowBlock in flexiTableRowBlocks)
            {
                result.Add(flexiTableRowBlock);
            }

            return(result);
        }
Exemplo n.º 5
0
        public void WriteBlock_WritesBlock(FlexiTableBlock dummyFlexiTableBlock,
                                           string expectedResult)
        {
            // Arrange
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter);
            ExposedFlexiTableBlockRenderer testSubject = CreateExposedFlexiTableBlockRenderer();

            // Act
            testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiTableBlock);
            string result = dummyStringWriter.ToString();

            // Assert
            Assert.Equal(expectedResult, result, ignoreLineEndingDifferences: true);
        }
Exemplo n.º 6
0
 public void ExposedWriteBlock(HtmlRenderer htmlRenderer, FlexiTableBlock flexiTableBlock)
 {
     WriteBlock(htmlRenderer, flexiTableBlock);
 }