示例#1
0
        public void PDFXMLParserConstructorTest()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);

            Assert.IsNotNull(target);
            Assert.AreSame(settings, target.Settings);
        }
示例#2
0
        public void SettingsTest()
        {
            PDFGeneratorSettings settings = this.GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            PDFGeneratorSettings actual;

            actual = target.Settings;
            Assert.AreSame(settings, actual);
        }
示例#3
0
        public void ParseProcessingInstructionsTest()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            string source = @"C:\Fake\File\Path.xml";

            using (Stream stream = ToStream(xmlValidProcess))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);
            }
        }
示例#4
0
        public void Parse_XmlValid2_Test()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);

            string source = @"C:\Fake\File\Path.xml";

            using (Stream stream = ToStream(xmlValid2))
            {
                IPDFComponent result;
                result = target.Parse(source, stream, ParseSourceType.DynamicContent);

                AssertValidXml2(result as Fakes.ParserRootOne);
            }
        }
示例#5
0
        public void Parse_XmlValidRemote_Test()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            string source = @"C:\Fake\File\Path.xml";

            using (Stream stream = ToStream(xmlValidRemote))
            {
                IPDFComponent actual;
                resolverCallCount = 0;
                actual            = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(2, resolverCallCount);
                AssertValidXmlRemote(actual as Fakes.ParserRootOne);
            }
        }
示例#6
0
        public void Parse_XmlValid1_Test()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            string source = @"C:\Fake\File\Path.xml";

            using (Stream stream = ToStream(xmlValid1))
            {
                IPDFComponent result;
                result = target.Parse(source, stream, ParseSourceType.DynamicContent);

                AssertValidXml1(result as Fakes.ParserRootOne);
            }

            //Check with stream reader

            using (Stream stream = ToStream(xmlValid1))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    IPDFComponent actual;
                    actual = target.Parse(source, reader, ParseSourceType.DynamicContent);

                    AssertValidXml1(actual as Fakes.ParserRootOne);
                }
            }

            //Check with XMLReader

            using (Stream stream = ToStream(xmlValid1))
            {
                using (XmlReader reader = XmlReader.Create(stream))
                {
                    IPDFComponent actual;
                    actual = target.Parse(source, reader, ParseSourceType.DynamicContent);

                    AssertValidXml1(actual as Fakes.ParserRootOne);
                }
            }
        }
示例#7
0
        public void RootComponentTest()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            IPDFComponent        expected = new Fakes.ParserRootOne();
            IPDFComponent        actual;

            //
            // if we set it, then it should stay as set
            //

            target.RootComponent = expected;
            string source = @"C:\Fake\File\Path.xml";

            using (Stream stream = ToStream(xmlValid1))
            {
                target.Parse(source, stream, ParseSourceType.DynamicContent); //not capturing the output - want to check the RootComponent
            }

            actual = target.RootComponent as IPDFComponent;
            Assert.AreSame(expected, actual); //Should not have changed

            //
            // if we don't set it then it becomes the output
            //

            target = new PDFXMLParser(settings);
            source = @"C:\Fake\File\Path.xml";
            using (Stream stream = ToStream(xmlValid1))
            {
                expected = target.Parse(source, stream, ParseSourceType.DynamicContent);
                AssertValidXml1(expected as Fakes.ParserRootOne);
            }

            actual = target.RootComponent as Fakes.ParserRootOne;  //root component should be the same as the returned value from parse
            Assert.AreSame(expected, actual);
        }
示例#8
0
        public void ParseProcessingCultureTest()
        {
            PDFGeneratorSettings settings = GetSettings();
            PDFXMLParser         target   = new PDFXMLParser(settings);
            string source = @"C:\Fake\File\Path.xml";

            //Invariant format for dates and numbers

            using (Stream stream = ToStream(xmlValidInvariant))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "Invariant number failed");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "Invariant date failed");
            }

            //British format for dates and numbers

            settings = GetSettings();
            target   = new PDFXMLParser(settings);

            using (Stream stream = ToStream(xmlValidExplicitGB))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "Britsh number failed");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "Britsh date failed");
            }

            //French format for dates and numbers

            settings = GetSettings();
            target   = new PDFXMLParser(settings);

            using (Stream stream = ToStream(xmlValidExplicitFR))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "French number failed");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "French date failed");
            }

            //Make sure the current culture is ignored

            System.Globalization.CultureInfo current = System.Threading.Thread.CurrentThread.CurrentCulture;
            System.Threading.Thread.CurrentThread.CurrentCulture   = System.Globalization.CultureInfo.GetCultureInfo("fr-FR");
            System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("fr-FR");

            //Invariant format for dates and numbers

            settings = GetSettings();
            target   = new PDFXMLParser(settings);

            using (Stream stream = ToStream(xmlValidInvariant))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "Invariant number failed in french culture");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "Invariant date failed in french culture");
            }

            //British format for dates and numbers

            settings = GetSettings();
            target   = new PDFXMLParser(settings);

            using (Stream stream = ToStream(xmlValidExplicitGB))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "Britsh number failed");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "Britsh date failed");
            }

            //French format for dates and numbers

            settings = GetSettings();
            target   = new PDFXMLParser(settings);

            using (Stream stream = ToStream(xmlValidExplicitFR))
            {
                IPDFComponent actual;
                actual = target.Parse(source, stream, ParseSourceType.DynamicContent);

                Assert.AreEqual(false, target.Settings.LogParserOutput);
                Assert.AreEqual(ParserConformanceMode.Strict, target.Mode);

                Assert.IsInstanceOfType(actual, typeof(Fakes.ParserRootOne));

                Fakes.ParserRootOne r1 = (Fakes.ParserRootOne)actual;
                Assert.AreEqual(r1.Complex.Size, 2.5, "French number failed");
                Assert.AreEqual(r1.Complex.Date, new DateTime(2015, 12, 25, 13, 30, 24), "French date failed");
            }

            System.Threading.Thread.CurrentThread.CurrentCulture = current;
        }