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 }
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); }
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 }
public void ResolveBlockName_ResolvesBlockName(string dummyBlockName, string expectedResult) { // Arrange FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory(); // Act string result = testSubject.ResolveBlockName(dummyBlockName); // Assert Assert.Equal(expectedResult, result); }
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); }
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); }
public void IsLinkLabelContentSpecified_ChecksIfLinkLabelContentIsSpecified(string dummyLinkLabelContent, bool expectedResult) { // Arrange FlexiFigureBlockFactory testSubject = CreateFlexiFigureBlockFactory(); // Act bool result = testSubject.IsLinkLabelContentSpecified(dummyLinkLabelContent); // Assert Assert.Equal(expectedResult, result); }
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); }
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); }
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)); }
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); }
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); }
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()); }
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 }