예제 #1
0
        public void WriteBlock_WritesBlock(FlexiCardsBlock dummyFlexiCardsBlock, string expectedResult)
        {
            // Arrange
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter);
            ExposedFlexiCardsBlockRenderer testSubject = CreateExposedFlexiCardsBlockRenderer();

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

            // Assert
            Assert.Equal(expectedResult, result, ignoreLineEndingDifferences: true);
        }
예제 #2
0
        public void WriteBlock_OnlyWritesChildrenIfEnableHtmlForBlockIsFalse()
        {
            // Arrange
            // Dummy title part
            const string dummyTitle = "dummyTitle";
            var          dummyTitleContainerInline = new ContainerInline();

            dummyTitleContainerInline.AppendChild(new LiteralInline(dummyTitle));
            var dummyTitlePartBlock = new PlainLeafBlock(null);

            dummyTitlePartBlock.Inline = dummyTitleContainerInline;
            // Dummy content part
            const string dummyContent = "dummyContent";
            var          dummyContentContainerInline = new ContainerInline();

            dummyContentContainerInline.AppendChild(new LiteralInline(dummyContent));
            var dummyContentParagraphBlock = new ParagraphBlock()
            {
                Inline = dummyContentContainerInline
            };
            var dummyContentPartBlock = new PlainContainerBlock(null);

            dummyContentPartBlock.Add(dummyContentParagraphBlock);
            // Dummy footnote part
            const string dummyFootnote = "dummyFootnote";
            var          dummyFootnoteContainerInline = new ContainerInline();

            dummyFootnoteContainerInline.AppendChild(new LiteralInline(dummyFootnote));
            var dummyFootnotePartBlock = new PlainLeafBlock(null);

            dummyFootnotePartBlock.Inline = dummyFootnoteContainerInline;
            FlexiCardsBlock dummyFlexiCardsBlock = CreateFlexiCardsBlock(children: new List <FlexiCardBlock> {
                CreateFlexiCardBlock(titlePart: dummyTitlePartBlock, contentPart: dummyContentPartBlock, footnotePart: dummyFootnotePartBlock)
            });
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter)
            {
                EnableHtmlForBlock = false
            };
            ExposedFlexiCardsBlockRenderer testSubject = CreateExposedFlexiCardsBlockRenderer();

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

            // Assert
            Assert.Equal($"{dummyTitle}\n{dummyContent}\n{dummyFootnote}\n", result, ignoreLineEndingDifferences: true);
        }
예제 #3
0
        private static FlexiCardsBlock CreateFlexiCardsBlock(string blockName            = default,
                                                             FlexiCardBlockSize cardSize = default,
                                                             ReadOnlyDictionary <string, string> attributes = default,
                                                             BlockParser blockParser        = default,
                                                             List <FlexiCardBlock> children = default)
        {
            var result = new FlexiCardsBlock(blockName, cardSize, attributes, blockParser);

            if (children != null)
            {
                foreach (FlexiCardBlock child in children)
                {
                    result.Add(child);
                }
            }
            return(result);
        }
        public void Create_CreatesFlexiCardsBlock()
        {
            // Arrange
            var                            dummySpan                  = new SourceSpan(6, 19);
            const int                      dummyLine                  = 5;
            const int                      dummyColumn                = 2;
            BlockParser                    dummyBlockParser           = _mockRepository.Create <BlockParser>().Object;
            const string                   dummyBlockName             = "dummyBlockName";
            const string                   dummyResolvedBlockName     = "dummyResolvedBlockName";
            const FlexiCardBlockSize       dummyCardSize              = FlexiCardBlockSize.Medium;
            var                            dummyAttributes            = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>());
            Mock <IFlexiCardsBlockOptions> mockFlexiCardsBlockOptions = _mockRepository.Create <IFlexiCardsBlockOptions>();

            mockFlexiCardsBlockOptions.Setup(f => f.BlockName).Returns(dummyBlockName);
            mockFlexiCardsBlockOptions.Setup(f => f.CardSize).Returns(dummyCardSize);
            mockFlexiCardsBlockOptions.Setup(f => f.Attributes).Returns(dummyAttributes);
            ProxyFlexiCardsBlock dummyProxyFlexiCardsBlock = CreateProxyFlexiCardsBlock(mockFlexiCardsBlockOptions.Object, blockParser: dummyBlockParser);

            dummyProxyFlexiCardsBlock.Line   = dummyLine;
            dummyProxyFlexiCardsBlock.Column = dummyColumn;
            dummyProxyFlexiCardsBlock.Span   = dummySpan;
            Mock <FlexiCardsBlockFactory> mockTestSubject = CreateMockFlexiCardsBlockFactory();

            mockTestSubject.CallBase = true;
            mockTestSubject.Setup(t => t.ResolveBlockName(dummyBlockName)).Returns(dummyResolvedBlockName);
            mockTestSubject.Setup(t => t.ValidateCardSize(dummyCardSize));
            mockTestSubject.Protected().Setup("MoveChildren", dummyProxyFlexiCardsBlock, ItExpr.IsAny <FlexiCardsBlock>());

            // Act
            FlexiCardsBlock result = mockTestSubject.Object.Create(dummyProxyFlexiCardsBlock, null);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Equal(dummyResolvedBlockName, result.BlockName);
            Assert.Equal(dummyCardSize, result.CardSize);
            Assert.Same(dummyAttributes, result.Attributes);
            Assert.Same(dummyBlockParser, result.Parser);
            Assert.Equal(dummyColumn, result.Column);
            Assert.Equal(dummyLine, result.Line);
            Assert.Equal(dummySpan, result.Span);
        }
예제 #5
0
 public void ExposedWriteBlock(HtmlRenderer htmlRenderer, FlexiCardsBlock flexiCardsBlock)
 {
     WriteBlock(htmlRenderer, flexiCardsBlock);
 }