public virtual void DefaultProcessingCorrectlyNestedRenderersTest()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            //Run
            DefaultSvgProcessor    processor    = new DefaultSvgProcessor();
            SvgConverterProperties convProps    = new SvgConverterProperties();
            ISvgNodeRenderer       rootRenderer = processor.Process(root, convProps).GetRootRenderer();

            NUnit.Framework.Assert.IsTrue(rootRenderer is SvgTagSvgNodeRenderer);
            IList <ISvgNodeRenderer> children = ((SvgTagSvgNodeRenderer)rootRenderer).GetChildren();

            NUnit.Framework.Assert.AreEqual(2, children.Count);
            NUnit.Framework.Assert.IsTrue(children[0] is CircleSvgNodeRenderer);
            NUnit.Framework.Assert.IsTrue(children[1] is PathSvgNodeRenderer);
        }
        public virtual void DummyProcessingTestCorrectNested()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            INode nestedSvg = new JsoupElementNode(jsoupSVGRoot);

            nestedSvg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            nestedSvg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(nestedSvg);
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            IBranchSvgNodeRenderer rootExpected = new DummyBranchSvgNodeRenderer("svg");

            rootExpected.AddChild(new DummySvgNodeRenderer("circle"));
            rootExpected.AddChild(new DummySvgNodeRenderer("path"));
            IBranchSvgNodeRenderer nestedSvgRend = new DummyBranchSvgNodeRenderer("svg");

            nestedSvgRend.AddChild(new DummySvgNodeRenderer("circle"));
            nestedSvgRend.AddChild(new DummySvgNodeRenderer("circle"));
            rootExpected.AddChild(nestedSvgRend);
            //Compare
            NUnit.Framework.Assert.AreEqual(rootActual, rootExpected);
        }
        public virtual void FindFirstElementNullTest()
        {
            DefaultSvgProcessor processor = new DefaultSvgProcessor();
            IElementNode        actual    = processor.FindFirstElement(null, "name");

            NUnit.Framework.Assert.IsNull(actual);
        }
 public virtual void DummyProcessingTestNullInput()
 {
     NUnit.Framework.Assert.That(() => {
         DefaultSvgProcessor processor = new DefaultSvgProcessor();
         processor.Process(null, null);
     }
                                 , NUnit.Framework.Throws.InstanceOf <SvgProcessingException>())
     ;
 }
        public virtual void DepthFirstNullRendererTest()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupNonExistingElement = new iText.StyledXmlParser.Jsoup.Nodes.Element
                                                                                    (iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("nonExisting"), "");
            INode root = new JsoupElementNode(jsoupNonExistingElement);
            DefaultSvgProcessor     dsp = new DefaultSvgProcessor();
            ISvgConverterProperties scp = new SvgConverterProperties();

            dsp.PerformSetup(root, scp);
            // below method must not throw a NullPointerException
            dsp.ExecuteDepthFirstTraversal(root);
        }
        public virtual void ProcessWithNullPropertiesTest()
        {
            DefaultSvgProcessor processor = new DefaultSvgProcessor();

            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);
            ISvgProcessorResult actual   = processor.Process(root, null);
            ISvgProcessorResult expected = processor.Process(root);

            NUnit.Framework.Assert.AreEqual(expected.GetRootRenderer(), actual.GetRootRenderer());
        }
        public virtual void ProcessWithNullPropertiesTest()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);
            DefaultSvgProcessor    processor = new DefaultSvgProcessor();
            SvgConverterProperties convProps = new SvgConverterProperties();

            convProps.SetRendererFactory(null);
            convProps.SetCharset(null);
            ISvgNodeRenderer rootRenderer = processor.Process(root, convProps).GetRootRenderer();

            NUnit.Framework.Assert.IsTrue(rootRenderer is SvgTagSvgNodeRenderer);
            NUnit.Framework.Assert.AreEqual(0, ((SvgTagSvgNodeRenderer)rootRenderer).GetChildren().Count);
        }
 public virtual void DummyProcessingNoSvgTagInInput()
 {
     NUnit.Framework.Assert.That(() => {
         iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                .ValueOf("polygon"), "");
         iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                  .ValueOf("circle"), "");
         INode root = new JsoupElementNode(jsoupSVGRoot);
         root.AddChild(new JsoupElementNode(jsoupSVGCircle));
         //Run
         DefaultSvgProcessor processor = new DefaultSvgProcessor();
         ISvgConverterProperties props = new DummySvgConverterProperties();
         processor.Process(root, props).GetRootRenderer();
     }
                                 , NUnit.Framework.Throws.InstanceOf <SvgProcessingException>().With.Message.EqualTo(SvgLogMessageConstant.NOROOT))
     ;
 }
        public virtual void DummyProcessingTestNodeHasNullChild()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(null);
            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            ISvgNodeRenderer rootExpected = new DummySvgNodeRenderer("svg");

            NUnit.Framework.Assert.AreEqual(rootExpected, rootActual);
        }
        public virtual void DefaultProcessingTestPassedPropertiesNull()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            //Run
            DefaultSvgProcessor processor  = new DefaultSvgProcessor();
            ISvgNodeRenderer    rootActual = processor.Process(root, null).GetRootRenderer();

            //Compare
            NUnit.Framework.Assert.IsNull(rootActual);
        }
        public virtual void DummyProcessingSvgTagIsNotRootOfInput()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupRandomElement = new iText.StyledXmlParser.Jsoup.Nodes.Element
                                                                               (iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("body"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            INode root = new JsoupElementNode(jsoupRandomElement);
            INode svg  = new JsoupElementNode(jsoupSVGRoot);

            svg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(svg);
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            IBranchSvgNodeRenderer rootExpected = new DummyBranchSvgNodeRenderer("svg");

            rootExpected.AddChild(new DummySvgNodeRenderer("circle"));
            NUnit.Framework.Assert.AreEqual(rootActual, rootExpected);
        }