private static ProxyFlexiTabsBlock CreateProxyFlexiTabsBlock(IFlexiTabsBlockOptions flexiTabsBlockOptions = default, int openingFenceIndex = default, int openingFenceCharCount = default, BlockParser blockParser = default) { return(new ProxyFlexiTabsBlock(flexiTabsBlockOptions, openingFenceIndex, openingFenceCharCount, blockParser)); }
internal virtual void ValidateDefaultTabOptions(IFlexiTabsBlockOptions flexiTabsBlockOptions) { if (flexiTabsBlockOptions.DefaultTabOptions == null) { throw new OptionsException(nameof(IFlexiTabsBlockOptions.DefaultTabOptions), Strings.OptionsException_Shared_ValueMustNotBeNull); } }
/// <summary> /// Creates a <see cref="ProxyFlexiTabsBlock"/>. /// </summary> /// <param name="flexiTabsBlockOptions">The <see cref="IFlexiTabsBlockOptions"/> for the <see cref="FlexiTabsBlock"/>.</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="ProxyFlexiTabsBlock"/>.</param> public ProxyFlexiTabsBlock(IFlexiTabsBlockOptions flexiTabsBlockOptions, int openingFenceIndent, int openingFenceCharCount, BlockParser blockParser) : base(openingFenceIndent, openingFenceCharCount, nameof(FlexiTabsBlock), blockParser) { FlexiTabsBlockOptions = flexiTabsBlockOptions; }
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>(); IFlexiTabsBlockOptions dummyFlexiTabsBlockOptions = _mockRepository.Create <IFlexiTabsBlockOptions>().Object; Mock <IOptionsService <IFlexiTabsBlockOptions, IFlexiTabsBlocksExtensionOptions> > mockOptionsService = _mockRepository. Create <IOptionsService <IFlexiTabsBlockOptions, IFlexiTabsBlocksExtensionOptions> >(); mockOptionsService.Setup(f => f.CreateOptions(dummyBlockProcessor)). Returns((dummyFlexiTabsBlockOptions, (IFlexiTabsBlocksExtensionOptions)null)); Mock <FlexiTabsBlockFactory> mockTestSubject = CreateMockFlexiTabsBlockFactory(mockOptionsService.Object); mockTestSubject.CallBase = true; mockTestSubject.Setup(t => t.ValidateDefaultTabOptions(dummyFlexiTabsBlockOptions)); // Act ProxyFlexiTabsBlock result = mockTestSubject.Object.CreateProxyFencedBlock(dummyOpeningFenceIndent, dummyOpeningFenceCharCount, dummyBlockProcessor, dummyBlockParser.Object); // Assert _mockRepository.VerifyAll(); Assert.Same(dummyFlexiTabsBlockOptions, result.FlexiTabsBlockOptions); 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); }
/// <summary> /// Creates a <see cref="FlexiTabsBlock"/> from a <see cref="ProxyFlexiTabsBlock"/>. /// </summary> /// <param name="proxyFencedBlock">The <see cref="ProxyFlexiTabsBlock"/> containing data for the <see cref="FlexiTabsBlock"/>.</param> /// <param name="blockProcessor">The <see cref="BlockProcessor"/> processing the <see cref="FlexiTabsBlock"/>.</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 FlexiTabsBlock Create(ProxyFlexiTabsBlock proxyFencedBlock, BlockProcessor blockProcessor) { if (proxyFencedBlock == null) { throw new ArgumentNullException(nameof(proxyFencedBlock)); } IFlexiTabsBlockOptions flexiTabsBlockOptions = proxyFencedBlock.FlexiTabsBlockOptions; // Block name string blockName = ResolveBlockName(flexiTabsBlockOptions.BlockName); // Create block var flexiTabsBlock = new FlexiTabsBlock(blockName, flexiTabsBlockOptions.Attributes, proxyFencedBlock.Parser) { Line = proxyFencedBlock.Line, Column = proxyFencedBlock.Column, Span = proxyFencedBlock.Span }; MoveChildren(proxyFencedBlock, flexiTabsBlock); return(flexiTabsBlock); }