Exemplo n.º 1
0
        public void DocumentOnProcessInlinesBegin_DoesNotReplaceExistingLinkReferenceDefinitions()
        {
            // Arrange
            const string     dummyLinkLabelContent = "dummyLinkLabelContent";
            InlineProcessor  dummyInlineProcessor  = MarkdigTypesFactory.CreateInlineProcessor();
            FlexiFigureBlock dummyFlexiFigureBlock = CreateFlexiFigureBlock(linkLabelContent: dummyLinkLabelContent);

            dummyInlineProcessor.Document.SetData(FlexiFigureBlockFactory.REFERENCE_LINKABLE_FLEXI_FIGURE_BLOCKS_KEY,
                                                  new List <FlexiFigureBlock> {
                dummyFlexiFigureBlock
            });
            var dummyLinkReferenceDefinition = new LinkReferenceDefinition();

            dummyInlineProcessor.Document.SetLinkReferenceDefinition(dummyLinkLabelContent, dummyLinkReferenceDefinition);
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            testSubject.DocumentOnProcessInlinesBegin(dummyInlineProcessor, null);

            // Assert
            Dictionary <string, LinkReferenceDefinition> linkReferenceDefinitions =
                (dummyInlineProcessor.Document.GetData(typeof(LinkReferenceDefinitionGroup)) as LinkReferenceDefinitionGroup)?.Links;

            Assert.Single(linkReferenceDefinitions);
            Assert.Same(dummyLinkReferenceDefinition, linkReferenceDefinitions.Values.First()); // Doesn't get replaced
        }
Exemplo n.º 2
0
        public void DocumentOnProcessInlinesBegin_CreatesAndAddsALinkReferenceDefinitionForEachReferenceLinkableFlexiFigureBlock()
        {
            // Arrange
            const string     dummyLinkLabelContent = "dummyLinkLabelContent";
            const string     dummyID               = "dummyID";
            const string     dummyName             = "dummyName";
            FlexiFigureBlock dummyFlexiFigureBlock = CreateFlexiFigureBlock(name: dummyName, linkLabelContent: dummyLinkLabelContent, id: dummyID);
            InlineProcessor  dummyInlineProcessor  = MarkdigTypesFactory.CreateInlineProcessor();

            dummyInlineProcessor.Document.SetData(FlexiFigureBlockFactory.REFERENCE_LINKABLE_FLEXI_FIGURE_BLOCKS_KEY, new List <FlexiFigureBlock> {
                dummyFlexiFigureBlock
            });
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            testSubject.DocumentOnProcessInlinesBegin(dummyInlineProcessor, null);

            // Assert
            Dictionary <string, LinkReferenceDefinition> linkReferenceDefinitions = (dummyInlineProcessor.Document.GetData(typeof(LinkReferenceDefinitionGroup)) as LinkReferenceDefinitionGroup)?.Links;

            Assert.Single(linkReferenceDefinitions);
            LinkReferenceDefinition resultLinkReferenceDefinition = linkReferenceDefinitions.Values.First();

            Assert.Equal(dummyLinkLabelContent, resultLinkReferenceDefinition.Label);
            Assert.Equal($"#{dummyID}", resultLinkReferenceDefinition.Url);
            Assert.Equal(dummyName, resultLinkReferenceDefinition.Title);
        }
Exemplo n.º 3
0
        public void SetupReferenceLinking_DoesNothingIfReferenceLinkableIsFalse()
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act and assert
            testSubject.SetupReferenceLinking(null, false, null); // If this doesn't throw, method isn't trying to do anything
        }
Exemplo n.º 4
0
        public void ResolveBlockName_ResolvesBlockName(string dummyBlockName, string expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            string result = testSubject.ResolveBlockName(dummyBlockName);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 5
0
        public void ResolveName_ResolvesName(bool dummyReferenceLinkable, bool dummyLinkLabelContentSpecified, bool dummyRenderName, int dummyFigureNumber, string expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            string result = testSubject.ResolveName(dummyReferenceLinkable, dummyLinkLabelContentSpecified, dummyRenderName, dummyFigureNumber);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 6
0
        public void ResolveLinkLabelContent_ResolvesLinkLabelContent(bool dummyReferenceLinkable, bool dummyLinkLabelContentSpecified, string dummyName, string dummyLinkLabelContent, string expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            string result = testSubject.ResolveLinkLabelContent(dummyReferenceLinkable, dummyLinkLabelContentSpecified, dummyName, dummyLinkLabelContent);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 7
0
        public void IsLinkLabelContentSpecified_ChecksIfLinkLabelContentIsSpecified(string dummyLinkLabelContent, bool expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            bool result = testSubject.IsLinkLabelContentSpecified(dummyLinkLabelContent);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 8
0
        public void ResolveReferenceLinkable_ResolvesReferenceLinkable(bool dummyReferenceLinkable, string dummyID, bool expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            bool result = testSubject.ResolveReferenceLinkable(dummyReferenceLinkable, dummyID);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 9
0
        public void ResolveID_ResolvesID(bool dummyGenerateID, int dummyFigureNumber, ReadOnlyDictionary <string, string> dummyAttributes, string expectedResult)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            string result = testSubject.ResolveID(dummyGenerateID, dummyFigureNumber, dummyAttributes);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 10
0
        public void GetOrCreateReferenceLinkableFlexiFigureBlocks_CreatesReferenceLinkableFlexiFigureBlocksIfItDoesNotAlreadyExist()
        {
            // Arrange
            var dummyMarkdownDocument           = new MarkdownDocument();
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            List <FlexiFigureBlock> result = testSubject.GetOrCreateReferenceLinkableFlexiFigureBlocks(dummyMarkdownDocument);

            // Assert
            Assert.NotNull(result);
            Assert.Same(result, dummyMarkdownDocument.GetData(FlexiFigureBlockFactory.REFERENCE_LINKABLE_FLEXI_FIGURE_BLOCKS_KEY));
        }
Exemplo n.º 11
0
        public void GetFlexiFigureBlockNumber_IfThereIsNoStoredNumberReturnsOneAndStoresTwo(BlockProcessor dummyBlockProcessor)
        {
            // Arrange
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            int result = testSubject.GetFlexiFigureBlockNumber(dummyBlockProcessor);

            // Assert
            Assert.Equal(1, result);
            object newStoredNumber = dummyBlockProcessor.Document.GetData(FlexiFigureBlockFactory.NEXT_FLEXI_FIGURE_BLOCK_NUMBER_KEY);

            Assert.Equal(2, newStoredNumber);
        }
Exemplo n.º 12
0
        public void GetOrCreateReferenceLinkableFlexiFigureBlocks_GetsReferenceLinkableFlexiFigureBlocksIfItAlreadyExists()
        {
            // Arrange
            var dummyReferenceLinkableFlexiFigureBlocks = new List <FlexiFigureBlock>();
            var dummyMarkdownDocument = new MarkdownDocument();

            dummyMarkdownDocument.SetData(FlexiFigureBlockFactory.REFERENCE_LINKABLE_FLEXI_FIGURE_BLOCKS_KEY, dummyReferenceLinkableFlexiFigureBlocks);
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            List <FlexiFigureBlock> result = testSubject.GetOrCreateReferenceLinkableFlexiFigureBlocks(dummyMarkdownDocument);

            // Assert
            Assert.Same(dummyReferenceLinkableFlexiFigureBlocks, result);
        }
Exemplo n.º 13
0
        public void CreateLinkInline_CreatesLinkInline(string dummyLabel, string dummyName, string expectedContent)
        {
            // Arrange
            const string            dummyUrl                = "dummyUrl";
            var                     dummyLiteralInline      = new LiteralInline(dummyLabel);
            var                     linkReferenceDefinition = new LinkReferenceDefinition(dummyLabel, dummyUrl, dummyName); // We use the title property to hold the block's name
            FlexiFigureBlockFactory testSubject             = CreateFlexiFigureBlockFactory();

            // Act
            Inline result = testSubject.CreateLinkInline(null, linkReferenceDefinition, dummyLiteralInline);

            // Assert
            Assert.IsType <LinkInline>(result);
            Assert.Equal(dummyUrl, ((LinkInline)result).Url);
            Assert.Equal(expectedContent, dummyLiteralInline.ToString());
        }
Exemplo n.º 14
0
        public void GetFlexiFigureBlockNumber_IfThereIsAStoredNumberReturnsItAndIncrementsStoredNumberByOne()
        {
            // Arrange
            const int      dummyStoredNumber   = 6;
            BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();

            dummyBlockProcessor.Document.SetData(FlexiFigureBlockFactory.NEXT_FLEXI_FIGURE_BLOCK_NUMBER_KEY, dummyStoredNumber);
            FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory();

            // Act
            int result = testSubject.GetFlexiFigureBlockNumber(dummyBlockProcessor);

            // Assert
            Assert.Equal(dummyStoredNumber, result);
            object newStoredNumber = dummyBlockProcessor.Document.GetData(FlexiFigureBlockFactory.NEXT_FLEXI_FIGURE_BLOCK_NUMBER_KEY);

            Assert.Equal(dummyStoredNumber + 1, newStoredNumber); // Incremented by 1
        }