private static ProxyFlexiCardsBlock CreateProxyFlexiCardsBlock(IFlexiCardsBlockOptions flexiCardsBlockOptions = default, int openingFenceIndex = default, int openingFenceCharCount = default, BlockParser blockParser = default) { return(new ProxyFlexiCardsBlock(flexiCardsBlockOptions, openingFenceIndex, openingFenceCharCount, blockParser)); }
internal virtual void ValidateDefaultCardOptions(IFlexiCardsBlockOptions flexiCardsBlockOptions) { if (flexiCardsBlockOptions.DefaultCardOptions == null) { throw new OptionsException(nameof(IFlexiCardsBlockOptions.DefaultCardOptions), Strings.OptionsException_Shared_ValueMustNotBeNull); } }
/// <summary> /// Creates a <see cref="FlexiCardsBlock"/> from a <see cref="ProxyFlexiCardsBlock"/>. /// </summary> /// <param name="proxyFencedBlock">The <see cref="ProxyFlexiCardsBlock"/> containing data for the <see cref="FlexiCardsBlock"/>.</param> /// <param name="blockProcessor">The <see cref="BlockProcessor"/> processing the <see cref="FlexiCardsBlock"/>.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="proxyFencedBlock"/> is <c>null</c>.</exception> /// <exception cref="OptionsException">Thrown if an option is invalid.</exception> public override FlexiCardsBlock Create(ProxyFlexiCardsBlock proxyFencedBlock, BlockProcessor blockProcessor) { if (proxyFencedBlock == null) { throw new ArgumentNullException(nameof(proxyFencedBlock)); } IFlexiCardsBlockOptions flexiCardsBlockOptions = proxyFencedBlock.FlexiCardsBlockOptions; // Block name string blockName = ResolveBlockName(flexiCardsBlockOptions.BlockName); // Card size FlexiCardBlockSize cardSize = flexiCardsBlockOptions.CardSize; ValidateCardSize(cardSize); // Create block var flexiCardsBlock = new FlexiCardsBlock(blockName, cardSize, flexiCardsBlockOptions.Attributes, proxyFencedBlock.Parser) { Line = proxyFencedBlock.Line, Column = proxyFencedBlock.Column, Span = proxyFencedBlock.Span }; MoveChildren(proxyFencedBlock, flexiCardsBlock); return(flexiCardsBlock); }
/// <summary> /// Creates a <see cref="ProxyFlexiCardsBlock"/>. /// </summary> /// <param name="flexiCardsBlockOptions">The <see cref="IFlexiCardsBlockOptions"/> for the <see cref="FlexiCardsBlock"/>.</param> /// <param name="openingFenceIndent">The indent of the opening fence.</param> /// <param name="openingFenceCharCount">The number of characters in opening fence.</param> /// <param name="blockParser">The <see cref="BlockParser"/> parsing the fenced <see cref="ProxyFlexiCardsBlock"/>.</param> public ProxyFlexiCardsBlock(IFlexiCardsBlockOptions flexiCardsBlockOptions, int openingFenceIndent, int openingFenceCharCount, BlockParser blockParser) : base(openingFenceIndent, openingFenceCharCount, nameof(FlexiCardsBlock), blockParser) { FlexiCardsBlockOptions = flexiCardsBlockOptions; }
public void CreateProxyFencedBlock_CreatesProxyFencedBlock() { // Arrange const int dummyOpeningFenceIndent = 5; const int dummyOpeningFenceCharCount = 6; const int dummyColumn = 2; var dummyLine = new StringSlice("dummyText", 3, 8); BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor(); dummyBlockProcessor.Column = dummyColumn; dummyBlockProcessor.Line = dummyLine; Mock <BlockParser> dummyBlockParser = _mockRepository.Create <BlockParser>(); IFlexiCardsBlockOptions dummyFlexiCardsBlockOptions = _mockRepository.Create <IFlexiCardsBlockOptions>().Object; Mock <IOptionsService <IFlexiCardsBlockOptions, IFlexiCardsBlocksExtensionOptions> > mockOptionsService = _mockRepository. Create <IOptionsService <IFlexiCardsBlockOptions, IFlexiCardsBlocksExtensionOptions> >(); mockOptionsService.Setup(f => f.CreateOptions(dummyBlockProcessor)). Returns((dummyFlexiCardsBlockOptions, (IFlexiCardsBlocksExtensionOptions)null)); Mock <FlexiCardsBlockFactory> mockTestSubject = CreateMockFlexiCardsBlockFactory(mockOptionsService.Object); mockTestSubject.CallBase = true; mockTestSubject.Setup(t => t.ValidateDefaultCardOptions(dummyFlexiCardsBlockOptions)); // Act ProxyFlexiCardsBlock result = mockTestSubject.Object.CreateProxyFencedBlock(dummyOpeningFenceIndent, dummyOpeningFenceCharCount, dummyBlockProcessor, dummyBlockParser.Object); // Assert _mockRepository.VerifyAll(); Assert.Same(dummyFlexiCardsBlockOptions, result.FlexiCardsBlockOptions); Assert.Equal(dummyOpeningFenceIndent, result.OpeningFenceIndent); Assert.Equal(dummyOpeningFenceCharCount, result.OpeningFenceCharCount); Assert.Same(dummyBlockParser.Object, result.Parser); Assert.Equal(dummyColumn, result.Column); Assert.Equal(dummyLine.Start, result.Span.Start); Assert.Equal(0, result.Span.End); }