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(); }
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); }
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); }
public void ExposedWriteBlock(HtmlRenderer htmlRenderer, FlexiTableBlock flexiTableBlock) { WriteBlock(htmlRenderer, flexiTableBlock); }