コード例 #1
0
        public void Write_Value_Then_Write_Raw()
        {
            var sb = new StringBuilder();

            using (var subject = new LightXmlWriter(new StringWriter(sb)))
            {
                subject.WriteStartElement("Person");
                subject.WriteValue("&first");
                subject.WriteRaw("&second");
                subject.WriteEndElement("Person");
            }
            Assert.Equal("<Person>&amp;first&second</Person>", sb.ToString());
        }
コード例 #2
0
        public void Writes_Supplier_OTA_Standard_Request()
        {
            var sb = new StringBuilder();

            using (var subject = new LightXmlWriter(new StringWriter(sb)))
            {
                OTA_Standard_XML_Writer_LightXmlWriter.Write(subject);
            }
            var actual   = sb.ToString();
            var expected = File.ReadAllText(Path.Combine("..", "..", "..", "Examples", "OTA_Standard_XML_Writer.xml"));

            Assert.Equal(XDocument.Parse(expected).ToString(), XDocument.Parse(actual).ToString());
        }
コード例 #3
0
        private static string WriteAttributeUsingLightXmlWriter(Action <LightXmlWriter> writeAction)
        {
            var sb = new StringBuilder();

            using (var writer = new LightXmlWriter(new StringWriter(sb, CultureInfo.InvariantCulture)))
            {
                writer.WriteStartElement("Person");
                writer.WriteStartAttribute("attr");
                writeAction(writer);
                writer.WriteEndAttribute("attr");
                writer.WriteEndElement("Person");
            }
            return(sb.ToString());
        }
コード例 #4
0
        public void Multiple_InnerElements()
        {
            var sb = new StringBuilder();

            using (var subject = new LightXmlWriter(new StringWriter(sb)))
            {
                subject.WriteStartElement("Person");
                subject.WriteStartElement("Details");
                subject.WriteEndElement("Details");
                subject.WriteStartElement("Details");
                subject.WriteEndElement("Details");
                subject.WriteEndElement("Person");
            }
            Assert.Equal("<Person><Details/><Details/></Person>", sb.ToString());
        }
コード例 #5
0
        private static void WriteSpecialEquipPrefs(LightXmlWriter writer)
        {
            writer.WriteStartElement("SpecialEquipPrefs");

            writer.WriteStartElement("SpecialEquipPref");
            writer.WriteAttributeString("EquipType", "7");
            writer.WriteAttributeString("Quantity", 1);
            writer.WriteEndElement("SpecialEquipPref");

            writer.WriteStartElement("SpecialEquipPref");
            writer.WriteAttributeString("EquipType", "8");
            writer.WriteAttributeString("Quantity", 1);
            writer.WriteEndElement("SpecialEquipPref");

            writer.WriteEndElement("SpecialEquipPrefs");
        }
コード例 #6
0
        public void Creates_InnerElement_Attributes()
        {
            var sb = new StringBuilder();

            using (var subject = new LightXmlWriter(new StringWriter(sb)))
            {
                subject.WriteStartElement("Person");
                subject.WriteStartElement("Details");
                subject.WriteStartAttribute("name");
                subject.WriteValue("Jon");
                subject.WriteEndAttribute();
                subject.WriteEndElement("Details");
                subject.WriteEndElement("Person");
            }
            Assert.Equal("<Person><Details name=\"Jon\"/></Person>", sb.ToString());
        }
コード例 #7
0
        public void Inner_InnerElement()
        {
            var sb = new StringBuilder();

            using (var subject = new LightXmlWriter(new StringWriter(sb)))
            {
                subject.WriteStartElement("Person");
                subject.WriteStartElement("Details");
                subject.WriteAttributeString("weight", "76");
                subject.WriteStartElement("Extra");
                subject.WriteEndElement("Extra");
                subject.WriteEndElement("Details");
                subject.WriteEndElement("Person");
            }
            Assert.Equal("<Person><Details weight=\"76\"><Extra/></Details></Person>", sb.ToString());
        }
コード例 #8
0
        private static void WriteVehRentalCore(LightXmlWriter writer)
        {
            writer.WriteStartElement("VehRentalCore");

            writer.WriteAttributeString("PickUpDateTime", "2017-05-30T09:00:00");
            writer.WriteAttributeString("ReturnDateTime", "2017-05-31T09:00:00");

            writer.WriteStartElement("PickUpLocation");
            writer.WriteAttributeString("LocationCode", "TIAC61");
            writer.WriteEndElement("PickUpLocation");

            writer.WriteStartElement("ReturnLocation");
            writer.WriteAttributeString("LocationCode", "TIAC61");
            writer.WriteEndElement("ReturnLocation");

            writer.WriteEndElement("VehRentalCore");
        }
コード例 #9
0
        public static void Write(LightXmlWriter writer)
        {
            const string prefix = "soapenv";

            writer.WriteStartElement(prefix, "Envelope", "http://schemas.xmlsoap.org/soap/envelope/");
            writer.WriteAttributeString("xmlns", "ns", null, "http://www.opentravel.org/OTA/2003/05");

            writer.WriteStartElement(prefix, "Header", null);
            writer.WriteEndElement(prefix, "Header");

            writer.WriteStartElement(prefix, "Body", null);

            WriteOtaVehResRQ(writer);

            writer.WriteEndElement(prefix, "Body");
            writer.WriteEndElement(prefix, "Envelope");
        }
コード例 #10
0
        private static void WriteCustomer(LightXmlWriter writer)
        {
            writer.WriteStartElement("Customer");
            writer.WriteStartElement("Primary");

            writer.WriteStartElement("PersonName");
            writer.WriteElementString("NamePrefix", "Mr");
            writer.WriteElementString("GivenName", "John");
            writer.WriteElementString("Surname", "Doe");
            writer.WriteEndElement("PersonName");

            writer.WriteStartElement("Telephone");
            writer.WriteAttributeString("PhoneUseType", "3");
            writer.WriteAttributeString("PhoneTechType", "1");
            writer.WriteAttributeString("CountryAccessCode", "");
            writer.WriteAttributeString("AreaCityCode", "");
            writer.WriteAttributeString("PhoneNumber", "666-777-888");
            writer.WriteEndElement("Telephone");

            writer.WriteElementString("Email", "*****@*****.**");

            writer.WriteEndElement("Primary");
            writer.WriteEndElement("Customer");
        }
コード例 #11
0
        public void Should_Be_The_Same_Output()
        {
            for (int i = 0; i < methods1.Length; i++)
            {
                var sb1        = new StringBuilder();
                var sb2        = new StringBuilder();
                var tw1        = new StringWriter(sb1);
                var tw2        = new StringWriter(sb2);
                var lighWriter = new LightXmlWriter(tw1);
                var xmlWriter  = XmlWriter.Create(tw2, new XmlWriterSettings {
                    OmitXmlDeclaration = true
                });
                methods1[i].Invoke(lighWriter);
                methods2[i].Invoke(xmlWriter);
                lighWriter.Dispose();
                xmlWriter.Dispose();
                var expected = new XmlDocument();
                var actual   = new XmlDocument();
                expected.LoadXml(sb2.ToString());
                actual.LoadXml(sb1.ToString());

                Assert.Equal(expected.OuterXml, actual.OuterXml);
            }
        }
コード例 #12
0
        public void WriteEndElement()
        {
            var sb = new StringBuilder();

            using (var writer = new LightXmlWriter(new StringWriter(sb)))
            {
                writer.WriteEndElement(null);
                Assert.Equal(">", sb.ToString());
                sb.Clear();

                writer.WriteEndElement("");
                Assert.Equal("</>", sb.ToString());
                sb.Clear();

                writer.WriteEndElement("x");
                Assert.Equal("</x>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteEndElement("root");
                Assert.Equal("<root/>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteValue("value");
                writer.WriteEndElement("root");
                Assert.Equal("<root>value</root>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteValue("value");
                writer.WriteEndElement("");
                Assert.Equal("<root>value</>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("");
                writer.WriteValue("value");
                writer.WriteEndElement("root");
                Assert.Equal("<>value</root>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteValue("");
                writer.WriteEndElement("root");
                Assert.Equal("<root></root>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteValue(null);
                writer.WriteEndElement("root");
                Assert.Equal("<root></root>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteStartAttribute("attr");
                writer.WriteEndElement("root");
                Assert.Equal("<root attr=\"/>", sb.ToString());
                sb.Clear();

                writer.WriteStartElement("root");
                writer.WriteStartAttribute("attr");
                writer.WriteValue("value");
                writer.WriteEndElement("root");
                Assert.Equal("<root attr=\"value/>", sb.ToString());
                sb.Clear();
            }
        }
コード例 #13
0
 public void LightXmlWriter_Before_Each_Test()
 {
     this.writer = new LightXmlWriter(new StreamWriter(new MemoryStream()));
 }
コード例 #14
0
 private static void WriteVendorPref(LightXmlWriter writer, string code)
 {
     writer.WriteStartElement("VendorPref");
     writer.WriteAttributeString("Code", code);
     writer.WriteEndElement("VendorPref");
 }
コード例 #15
0
 private static void WriteVehPref(LightXmlWriter writer)
 {
     writer.WriteStartElement("VehPref");
     writer.WriteAttributeString("Code", "EBMR");
     writer.WriteEndElement("VehPref");
 }
コード例 #16
0
 private static void WriteRateQualifier(LightXmlWriter writer)
 {
     writer.WriteStartElement("RateQualifier");
     writer.WriteAttributeString("RateQualifier", "ER1AL");
     writer.WriteEndElement("RateQualifier");
 }
コード例 #17
0
        private static void WriteOtaVehResRQ(LightXmlWriter writer)
        {
            writer.WriteStartElement(null, "OTA_VehResRQ", "http://www.opentravel.org/OTA/2003/05");
            writer.WriteAttributeString("PrimaryLangID", "EN");
            writer.WriteAttributeString("Target", "Test");
            writer.WriteAttributeString("Version", "3.0");
            writer.WriteAttributeString("xmlns", "http://www.opentravel.org/OTA/2003/05");
            writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
            WritePOS(writer);
            writer.WriteStartElement("VehResRQCore");
            writer.WriteAttributeString("Status", "Available");
            WriteVehRentalCore(writer);
            WriteCustomer(writer);
            WriteVendorPref(writer, "ET");
            WriteVehPref(writer);

            writer.WriteStartElement("DriverType");
            writer.WriteAttributeString("Age", 25);
            writer.WriteEndElement("DriverType");

            WriteRateQualifier(writer);
            WriteSpecialEquipPrefs(writer);
            writer.WriteStartElement("TPA_Extensions");

            writer.WriteStartElement("TPA_Extension_Flags");
            writer.WriteAttributeString("EnhancedTotalPrice", "true");
            writer.WriteEndElement("TPA_Extension_Flags");

            writer.WriteEndElement("TPA_Extensions");
            writer.WriteEndElement("VehResRQCore");

            writer.WriteStartElement("VehResRQInfo");
            WriteArrivalDetails(writer, "LH1234");
            writer.WriteStartElement("RentalPaymentPref");

            writer.WriteStartElement("Voucher");
            writer.WriteAttributeString("SeriesCode", "cust-abc123");
            writer.WriteEndElement("Voucher");

            writer.WriteEndElement("RentalPaymentPref");

            writer.WriteStartElement("Reference");
            writer.WriteAttributeString("ID", "ER1AL");
            writer.WriteAttributeString("DateTime", "2013-05-01T19:36:00");
            writer.WriteAttributeString("Type", "16");
            writer.WriteEndElement("Reference");

            writer.WriteStartElement("TPA_Extensions");

            writer.WriteStartElement("TPA_Extensions_Ref");
            writer.WriteAttributeString("AltResNumber", "q8ot");
            writer.WriteEndElement("TPA_Extensions_Ref");

            writer.WriteStartElement("TPA_Extensions_Ref");
            writer.WriteAttributeString("CoRef1", "cust-abc123");
            writer.WriteEndElement("TPA_Extensions_Ref");

            writer.WriteEndElement("TPA_Extensions");
            writer.WriteEndElement("VehResRQInfo");
            writer.WriteEndElement("OTA_VehResRQ");
        }