public void ThrowsIfRendererIsNull()
        {
            var extension      = new SyntaxHighlightingExtension();
            var extensionSetup = new Action(() => extension.Setup(null, null));

            Assert.Throws <ArgumentNullException>(extensionSetup);
        }
        public void PipelineIntactIfNotHtmlRenderer()
        {
            var extension        = new SyntaxHighlightingExtension();
            var writer           = new StringWriter();
            var markdownRenderer = new FakeRenderer(writer);
            var oldRendererCount = markdownRenderer.ObjectRenderers.Count;

            extension.Setup(null, markdownRenderer);
            Assert.Equal(oldRendererCount, markdownRenderer.ObjectRenderers.Count);
        }
        public void PipelineChangedIfHtmlRenderer()
        {
            var extension        = new SyntaxHighlightingExtension();
            var writer           = new StringWriter();
            var markdownRenderer = new HtmlRenderer(writer);

            markdownRenderer.ObjectRenderers.RemoveAll(x => true);
            extension.Setup(null, markdownRenderer);
            Assert.Equal(1, markdownRenderer.ObjectRenderers.Count);
        }
        public void CodeBlockRendererReplaced()
        {
            var extension        = new SyntaxHighlightingExtension();
            var writer           = new StringWriter();
            var markdownRenderer = new HtmlRenderer(writer);

            var oldRendererCount = markdownRenderer.ObjectRenderers.Count;

            Assert.Equal(1,
                         markdownRenderer.ObjectRenderers.FindAll(x => x.GetType() == typeof(CodeBlockRenderer)).Count);
            extension.Setup(null, markdownRenderer);
            Assert.Equal(0,
                         markdownRenderer.ObjectRenderers.FindAll(x => x.GetType() == typeof(CodeBlockRenderer)).Count);
            Assert.Equal(1,
                         markdownRenderer.ObjectRenderers.FindAll(x => x.GetType() == typeof(SyntaxHighlightingCodeBlockRenderer))
                         .Count);
            Assert.Equal(oldRendererCount, markdownRenderer.ObjectRenderers.Count);
        }
        public void DoesntThrowWhenSetupPipeline()
        {
            var extension = new SyntaxHighlightingExtension();

            extension.Setup(new MarkdownPipelineBuilder());
        }