| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562 |
- //
- // MonoTests.System.Xml.Serialization.XmlSerializationWriterTests
- //
- // Author: Erik LeBel <[email protected]>
- //
- // (C) Erik LeBel 2003
- //
- // FIXME add tests for callbacks
- // FIXME add tests for writes that generate namespaces
- // FIXME add test that write XmlNode objects
- //
- using System;
- using System.Globalization;
- using System.IO;
- using System.Xml;
- using System.Xml.Serialization;
- using NUnit.Framework;
- using MonoTests.System.Xml.TestClasses;
- namespace MonoTests.System.XmlSerialization
- {
- // base, common implementation of XmlSerializationWriter test harness.
- // the reason for this is that all auto generated namespace prefixes
- // of the form q# are modified by any Write* that defines a new namespace.
- // The result of this is that even though we redefine the string results
- // to exclude previous tests, the q#s will change depending on number of
- // namespace declarations were made prior to the perticual test. This
- // means that if the [Test] methods are called out of sequence, they
- // all start to fail. For this reason, tests that define and verify
- // temporary namespaces should be stored in a seperate class which protects
- // itself from accidental pre-definitions.
- public class XmlSerializarionWriterTester : XmlSerializationWriter
- {
- // appease the compiler
- protected override void InitCallbacks ()
- {
- }
- StringWriter sw;
- XmlTextWriter writer;
-
- [SetUp]
- public void Reset()
- {
- sw = new StringWriter ();
- writer = new XmlTextWriter (sw);
- writer.QuoteChar = '\'';
- writer.Formatting = Formatting.None;
- Writer = writer;
- }
- public string Content
- {
- get
- {
- string val = sw.GetStringBuilder().ToString();
- return val;
- }
- }
- public void ExecuteWritePotentiallyReferencingElement (string name, string ns, object o, Type ambientType, bool suppressReference, bool isNullable)
- {
- WritePotentiallyReferencingElement (name, ns, o, ambientType, suppressReference, isNullable);
- }
- public void ExecuteWriteTypedPrimitive (string name, string ns, object o, bool xsiType)
- {
- WriteTypedPrimitive (name, ns, o, xsiType);
- }
- }
-
- // this class tests the methods of the XmlSerializationWriter that
- // can be executed out of order.
- [TestFixture]
- public class XmlSerializationWriterSimpleTests : XmlSerializarionWriterTester
- {
- const string XmlSchemaNamespace = "http://www.w3.org/2001/XMLSchema";
- const string XmlSchemaInstanceNamespace = "http://www.w3.org/2001/XMLSchema-instance";
- const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
- const string WsdlTypesNamespace = "http://microsoft.com/wsdl/types/";
- const string ANamespace = "some:urn";
- const string AnotherNamespace = "another:urn";
- // These TestFrom* methods indirectly test the functionality of XmlCustomFormatter
- [Test]
- public void TestFromByteArrayBase64()
- {
- // FIXME
- // This should work according to Mono's API, but .NET's FromByteArrayBase64
- // returns a byte array.
- //
- //string val = this.FromByteArrayBase64(new byte [] {143, 144, 1, 0});
- //Assert.AreEqual (FromByteArrayBase64(null), "");
-
- //val = FromByteArrayBase64(null);
- //try/catch or AssertEruals?
- }
- [Test]
- public void TestFromByteArrayHex()
- {
- byte [] vals = {143, 144, 1, 0};
- Assert.AreEqual ("8F900100", FromByteArrayHex(vals));
- Assert.IsNull (FromByteArrayHex (null));
- }
- [Test]
- public void TestFromChar()
- {
- Assert.AreEqual ("97", FromChar ('a'));
- Assert.AreEqual ("0", FromChar ('\0'));
- Assert.AreEqual ("10", FromChar ('\n'));
- Assert.AreEqual ("65281", FromChar ('\uFF01'));
- }
- [Test]
- public void TestFromDate()
- {
- DateTime d = new DateTime();
- Assert.AreEqual ("0001-01-01", FromDate (d));
- }
- [Test]
- public void TestFromDateTime()
- {
- DateTime d = new DateTime();
- Assert.AreEqual ("0001-01-01T00:00:00.0000000", FromDateTime (d).Substring (0, 27));
- }
- [Test] // bug #77500
- public void TestFromEnum()
- {
- long[] ids = {1, 2, 3, 4};
- string[] values = {"one", "two", "three"};
- Assert.AreEqual ("one", FromEnum (1, values, ids), "#1");
- Assert.AreEqual (string.Empty, FromEnum (0, values, ids), "#2");
- Assert.AreEqual ("one two", FromEnum (3, values, ids), "#3");
- try {
- string dummy = FromEnum(4, values, ids);
- Assert.Fail("#4");
- } catch (IndexOutOfRangeException) {
- }
- string[] correctValues = {"one", "two", "three", "four"};
- Assert.AreEqual ("four", FromEnum (4, correctValues, ids), "#5");
- Assert.AreEqual ("one four", FromEnum (5, correctValues, ids), "#6");
- Assert.AreEqual ("two four", FromEnum (6, correctValues, ids), "#7");
- Assert.AreEqual ("one two three four", FromEnum (7, correctValues, ids), "#8");
- string[] flagValues = {"one", "two", "four", "eight"};
- long[] flagIDs = {1, 2, 4, 8};
- Assert.AreEqual (string.Empty, FromEnum (0, flagValues, flagIDs), "#9");
- Assert.AreEqual ("two", FromEnum (2, flagValues, flagIDs), "#10");
- Assert.AreEqual ("four", FromEnum (4, flagValues, flagIDs), "#1");
- Assert.AreEqual ("one four", FromEnum (5, flagValues, flagIDs), "#12");
- Assert.AreEqual ("two four", FromEnum (6, flagValues, flagIDs), "#13");
- Assert.AreEqual ("one two four", FromEnum (7, flagValues, flagIDs), "#14");
- Assert.AreEqual ("eight", FromEnum (8, flagValues, flagIDs), "#15");
- Assert.AreEqual ("one four eight", FromEnum (13, flagValues, flagIDs), "#16");
- string[] unorderedValues = {"one", "four", "two", "zero"};
- long[] unorderedIDs = {1, 4, 2, 0};
- Assert.AreEqual (string.Empty, FromEnum (0, unorderedValues, unorderedIDs), "#17");
- Assert.AreEqual ("two", FromEnum (2, unorderedValues, unorderedIDs), "#18");
- Assert.AreEqual ("four", FromEnum (4, unorderedValues, unorderedIDs), "#19");
- Assert.AreEqual ("one four", FromEnum (5, unorderedValues, unorderedIDs), "#20");
- Assert.AreEqual ("four two", FromEnum (6, unorderedValues, unorderedIDs), "#21");
- Assert.AreEqual ("one four two", FromEnum (7, unorderedValues, unorderedIDs), "#22");
- string[] zeroValues = {"zero", "ten"};
- long[] zeroIDs = {0, 10};
- Assert.AreEqual ("zero", FromEnum (0, zeroValues, zeroIDs), "#9");
- Assert.AreEqual ("ten", FromEnum (10, zeroValues, zeroIDs), "#9");
- string[] reverseZeroValues = {"", "zero"};
- long[] reverseZeroIDs = {4, 0};
- Assert.AreEqual (string.Empty, FromEnum (0, reverseZeroValues, reverseZeroIDs), "#9");
- Assert.AreEqual ("zero", FromEnum (4, reverseZeroValues, reverseZeroIDs), "#9");
- string[] emptyValues = { "zero" };
- long[] emptyIDs = {0};
- Assert.AreEqual ("zero", FromEnum (0, emptyValues, emptyIDs), "#9");
- }
- [Test]
- public void TestFromEnum_InvalidValue ()
- {
- long[] ids = {1, 2, 3, 4};
- string[] values = {"one", "two", "three", "four"};
- #if NET_2_0
- try {
- FromEnum (8, values, ids);
- Assert.Fail ("#A1");
- } catch (InvalidOperationException ex) {
- Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsTrue (ex.Message.IndexOf ("'8'") != -1, "#A4");
- Assert.IsNull (ex.InnerException, "#A5");
- }
- #else
- Assert.AreEqual ("8", FromEnum (8, values, ids), "#A6");
- #endif
- #if NET_2_0
- try {
- FromEnum (8, values, ids, "Some.Type.Name");
- Assert.Fail ("#B1");
- } catch (InvalidOperationException ex) {
- Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
- Assert.IsNotNull (ex.Message, "#B3");
- Assert.IsTrue (ex.Message.IndexOf ("'8'") != -1, "#B4");
- Assert.IsTrue (ex.Message.IndexOf ("Some.Type.Name") != -1, "#B5");
- Assert.IsNull (ex.InnerException, "#B6");
- }
- #endif
- }
- [Test]
- [ExpectedException (typeof (NullReferenceException))]
- public void TestFromEnum_Null_Values ()
- {
- long[] ids = { 1, 2, 3, 4 };
- string[] values = { "one", "two", "three", "four" };
- FromEnum (1, (string[]) null, ids);
- }
- [Test]
- [ExpectedException (typeof (NullReferenceException))]
- public void TestFromEnum_Null_IDs ()
- {
- string[] values = { "one", "two", "three", "four" };
- FromEnum (1, values, (long[]) null);
- }
- [Test]
- public void TestFromTime()
- {
- DateTime d = new DateTime();
- // Don't include time zone.
- Assert.AreEqual ("00:00:00.0000000", FromTime (d).Substring (0, 16));
- }
- [Test]
- public void TestFromXmlName()
- {
- Assert.AreEqual ("Hello", FromXmlName ("Hello"));
- Assert.AreEqual ("go_x0020_dogs_x0020_go", FromXmlName ("go dogs go"));
- Assert.AreEqual ("what_x0027_s_x0020_up", FromXmlName ("what's up"));
- Assert.AreEqual ("_x0031_23go", FromXmlName ("123go"));
- Assert.AreEqual ("Hello_x0020_what_x0027_s.up", FromXmlName ("Hello what's.up"));
- }
- [Test]
- public void TestFromXmlNCName()
- {
- Assert.AreEqual ("Hello", FromXmlNCName ("Hello"));
- Assert.AreEqual ("go_x0020_dogs_x0020_go", FromXmlNCName ("go dogs go"));
- Assert.AreEqual ("what_x0027_s_x0020_up", FromXmlNCName ("what's up"));
- Assert.AreEqual ("_x0031_23go", FromXmlNCName ("123go"));
- Assert.AreEqual ("Hello_x0020_what_x0027_s.up", FromXmlNCName ("Hello what's.up"));
- }
- [Test]
- public void TestFromXmlNmToken()
- {
- Assert.AreEqual ("Hello", FromXmlNmToken ("Hello"));
- Assert.AreEqual ("go_x0020_dogs_x0020_go", FromXmlNmToken ("go dogs go"));
- Assert.AreEqual ("what_x0027_s_x0020_up", FromXmlNmToken ("what's up"));
- Assert.AreEqual ("123go", FromXmlNmToken ("123go"));
- Assert.AreEqual ("Hello_x0020_what_x0027_s.up", FromXmlNmToken ("Hello what's.up"));
- }
- [Test]
- public void TestFromXmlNmTokens()
- {
- Assert.AreEqual ("Hello go dogs_go 123go what_x0027_s.up", FromXmlNmTokens ("Hello go dogs_go 123go what's.up"));
- }
- [Test]
- public void TestWriteAttribute()
- {
- WriteStartElement("x");
- WriteAttribute("a", "b");
- WriteEndElement();
- Assert.AreEqual ("<x a='b' />", Content);
- Reset();
- WriteStartElement("x");
- WriteAttribute("a", new byte[] {1, 2, 3});
- WriteEndElement();
- Assert.AreEqual ("<x a='AQID' />", Content);
- Reset();
- WriteStartElement("x");
- WriteAttribute("a", "<b");
- WriteEndElement();
- Assert.AreEqual ("<x a='<b' />", Content);
- Reset();
- WriteStartElement("x");
- string typedPlaceholder = null;
- WriteAttribute("a", typedPlaceholder);
- WriteEndElement();
- Assert.AreEqual ("<x />", Content);
- Reset();
- WriteStartElement("x");
- WriteAttribute("a", "\"");
- WriteEndElement();
- Assert.AreEqual ("<x a='\"' />", Content);
- Reset();
- WriteStartElement("x");
- WriteAttribute("a", "b\nc");
- WriteEndElement();
- Assert.AreEqual ("<x a='b
c' />", Content);
- Reset();
- WriteStartElement("x");
- WriteAttribute("a", ANamespace, "b");
- WriteEndElement();
- Assert.AreEqual ("<x d1p1:a='b' xmlns:d1p1='some:urn' />", Content);
- }
- [Test]
- public void TestWriteElementEncoded()
- {
- // FIXME
- // XmlNode related
- }
- [Test]
- public void TestWriteElementLiteral()
- {
- // FIXME
- // XmlNode related
- }
- [Test]
- public void TestWriteElementString()
- {
- WriteElementString("x", "a");
- Assert.AreEqual ("<x>a</x>", Content);
- Reset();
- WriteElementString("x", "<a");
- Assert.AreEqual ("<x><a</x>", Content);
- }
- [Test]
- public void TestWriteElementStringRaw()
- {
- byte [] placeHolderArray = null;
- WriteElementStringRaw("x", placeHolderArray);
- Assert.AreEqual ("", Content);
- Reset();
- WriteElementStringRaw("x", new byte[] {0, 2, 4});
- Assert.AreEqual ("<x>AAIE</x>", Content);
- Reset();
- WriteElementStringRaw("x", new byte[] {});
- Assert.AreEqual ("<x />", Content);
- // Note to reader, the output is not valid xml
- Reset();
- WriteElementStringRaw("x", "a > 13 && a < 19");
- Assert.AreEqual ("<x>a > 13 && a < 19</x>", Content);
- }
- [Test]
- public void TestWriteEmptyTag()
- {
- WriteEmptyTag("x");
- Assert.AreEqual ("<x />", Content);
- }
- [Test]
- public void TestWriteNamespaceDeclarations()
- {
- XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
- WriteStartElement("x");
- WriteNamespaceDeclarations(ns);
- WriteEndElement();
- Assert.AreEqual ("<x />", Content);
- Reset();
- ns.Add("mypref", ANamespace);
- WriteStartElement("x");
- WriteNamespaceDeclarations(ns);
- WriteEndElement();
- Assert.AreEqual (XmlSerializerTests.Infoset("<x xmlns:mypref='some:urn' />"), XmlSerializerTests.Infoset(Content));
- Reset();
- ns.Add("ns2", "another:urn");
- WriteStartElement("x");
- WriteNamespaceDeclarations(ns);
- WriteEndElement();
- Assert.AreEqual (XmlSerializerTests.Infoset("<x xmlns:ns2='another:urn' xmlns:mypref='some:urn' />"), XmlSerializerTests.Infoset(Content));
- Reset();
- ns.Add("ns3", "ya:urn");
- WriteStartElement("x");
- WriteNamespaceDeclarations(ns);
- WriteEndElement();
- Assert.AreEqual (XmlSerializerTests.Infoset("<x xmlns:ns3='ya:urn' xmlns:ns2='another:urn' xmlns:mypref='some:urn' />"), XmlSerializerTests.Infoset(Content));
- }
- [Test]
- public void TestWriteNullableStringLiteral()
- {
- WriteNullableStringLiteral("x", null, null);
- Assert.AreEqual (XmlSerializerTests.Infoset("<x d1p1:nil='true' xmlns:d1p1='http://www.w3.org/2001/XMLSchema-instance' />"), XmlSerializerTests.Infoset(Content));
- Reset();
- WriteNullableStringLiteral("x", null, "");
- Assert.AreEqual ("<x />", Content);
-
- Reset();
- WriteNullableStringLiteral("x", null, "a<b\'c");
- Assert.AreEqual ("<x>a<b\'c</x>", Content);
- Reset();
- WriteNullableStringLiteral("x", ANamespace, "b");
- Assert.AreEqual ("<x xmlns='some:urn'>b</x>", Content);
- }
- [Test]
- public void TestWriteNullableStringLiteralRaw()
- {
- WriteNullableStringLiteralRaw("x", null, new byte[] {1, 2, 244});
- Assert.AreEqual ("<x>AQL0</x>", Content);
- }
- [Test]
- public void TestWriteNullTagEncoded()
- {
- WriteNullTagEncoded("x");
- Assert.AreEqual (XmlSerializerTests.Infoset("<x d1p1:nil='true' xmlns:d1p1='http://www.w3.org/2001/XMLSchema-instance' />"), XmlSerializerTests.Infoset(Content));
- }
- [Test]
- public void TestWriteNullTagLiteral()
- {
- WriteNullTagLiteral("x");
- Assert.AreEqual (XmlSerializerTests.Infoset("<x d1p1:nil='true' xmlns:d1p1='http://www.w3.org/2001/XMLSchema-instance' />"), XmlSerializerTests.Infoset(Content));
- }
- [Test]
- [Category ("NotWorking")]
- public void TestWritePotentiallyReferencingElement ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWritePotentiallyReferencingElement ("x", ANamespace, EnumDefaultValue.e1, typeof (EnumDefaultValue), true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>1</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWritePotentiallyReferencingElement ("x", ANamespace, (int) 1, typeof (EnumDefaultValue), true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:int' xmlns:d1p1='{1}' xmlns='{2}'>1</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWritePotentiallyReferencingElement ("x", ANamespace, "something", typeof (string), true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>something</x>", ANamespace), xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWritePotentiallyReferencingElement ("x", ANamespace, "something", null, true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:string' xmlns:d1p1='{1}' xmlns='{2}'>something</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWritePotentiallyReferencingElement ("x", ANamespace, new string[] { "A", "B" }, typeof (string[]), true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<q3:Array id='id1' xmlns:q4='{0}' q3:arrayType='q4:string[2]' xmlns:q3='{1}'>" +
- "<Item>A</Item>" +
- "<Item>B</Item>" +
- "</q3:Array>", XmlSchemaNamespace, SoapEncodingNamespace), xsw.Content, "#5");
- }
- [Test]
- public void TestWriteSerializable()
- {
- // FIXME
- //Assert.AreEqual (, "");
- }
- [Test]
- public void TestWriteStartDocument()
- {
- Assert.AreEqual ("", Content);
-
- WriteStartDocument();
- Assert.AreEqual ("<?xml version='1.0' encoding='utf-16'?>", Content);
- }
- [Test]
- public void TestWriteStartElement()
- {
- WriteStartElement("x");
- WriteEndElement();
- Assert.AreEqual ("<x />", Content);
- Reset();
- WriteStartElement("x");
- WriteValue("a");
- WriteEndElement();
- Assert.AreEqual ("<x>a</x>", Content);
- Reset();
- WriteStartElement("x");
- WriteStartElement("y", "z");
- WriteEndElement();
- WriteEndElement();
- Assert.AreEqual ("<x><y xmlns='z' /></x>", Content);
- Reset();
- WriteStartElement("x");
- WriteStartElement("y", "z", true);
- WriteEndElement();
- WriteEndElement();
- Assert.AreEqual ("<x><q1:y xmlns:q1='z' /></x>", Content);
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_Base64Binary ()
- {
- byte[] byteArray = new byte[] { 255, 20, 10, 5, 0, 7 };
- string expected = "/xQKBQAH";
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", ANamespace, expected),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", expected), xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", expected), xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaNamespace, expected),
- xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaInstanceNamespace, expected),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>{1}</>", ANamespace, expected), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, byteArray, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<base64Binary xmlns='{0}'>{1}</base64Binary>",
- XmlSchemaNamespace, expected), xsw.Content, "#7");
- }
- [Test]
- public void TestWriteTypedPrimitive_Base64Binary_XsiType ()
- {
- byte[] byteArray = new byte[] { 255, 20, 10, 5, 0, 7 };
- string expected = "/xQKBQAH";
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, byteArray, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:base64Binary' xmlns:d1p1='{1}'>{2}</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, expected),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, byteArray, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:base64Binary' xmlns:d1p1='{1}'>{2}</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, expected),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_Boolean ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>true</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, false, false);
- Assert.AreEqual ("<x>false</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, true, false);
- Assert.AreEqual ("<x>true</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, false, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>false</x>", XmlSchemaNamespace), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>true</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, false, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>false</>", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, true, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<boolean xmlns='{0}'>true</boolean>", XmlSchemaNamespace),
- xsw.Content, "#7");
- }
- [Test]
- public void TestWriteTypedPrimitive_Boolean_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, true, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:boolean' xmlns:d1p1='{1}'>true</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, false, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:boolean' xmlns:d1p1='{1}'>false</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_Char ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, 'c', false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>99</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, 'a', false);
- Assert.AreEqual ("<x>97</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, 'b', false);
- Assert.AreEqual ("<x>98</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, 'd', false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>100</x>", XmlSchemaNamespace), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, 'e', false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>101</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, ' ', false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>32</>", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, '0', false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<char xmlns='{0}'>48</char>", WsdlTypesNamespace),
- xsw.Content, "#7");
- }
- [Test]
- [Category ("NotWorking")] // namespace should be wsdl types ns
- public void TestWriteTypedPrimitive_Char_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, 'c', true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:char' xmlns:d1p1='{1}'>99</x>",
- WsdlTypesNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, 'a', true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:char' xmlns:d1p1='{1}'>97</x>",
- WsdlTypesNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_DateTime ()
- {
- DateTime dateTime = new DateTime (1973, 08, 13);
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", ANamespace, FromDateTime (dateTime)),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", FromDateTime (dateTime)), xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", FromDateTime (dateTime)), xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaNamespace,
- FromDateTime (dateTime)), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaInstanceNamespace,
- FromDateTime (dateTime)), xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>{1}</>", ANamespace, FromDateTime (dateTime)),
- xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, dateTime, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<dateTime xmlns='{0}'>{1}</dateTime>", XmlSchemaNamespace,
- FromDateTime (dateTime)), xsw.Content, "#7");
- }
- [Test]
- public void TestWriteTypedPrimitive_DateTime_XsiType ()
- {
- DateTime dateTime = new DateTime (1973, 08, 13);
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, dateTime, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:dateTime' xmlns:d1p1='{1}'>{2}</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace,
- FromDateTime (dateTime)), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, dateTime, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:dateTime' xmlns:d1p1='{1}'>{2}</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace,
- FromDateTime (dateTime)), xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // enum name is output instead of integral value
- public void TestWriteTypedPrimitive_Enum ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, EnumDefaultValue.e1, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>1</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, EnumDefaultValue.e2, false);
- Assert.AreEqual ("<x>2</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, EnumDefaultValue.e3, false);
- Assert.AreEqual ("<x>3</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, EnumDefaultValue.e1, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>1</x>", XmlSchemaNamespace), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, EnumDefaultValue.e2, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>2</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, EnumDefaultValue.e3, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>3</>", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, EnumDefaultValue.e2, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<int xmlns='{0}'>2</int>", XmlSchemaNamespace),
- xsw.Content, "#7");
- }
- [Test]
- [Category ("NotWorking")] // InvalidOperationException is thrown
- public void TestWriteTypedPrimitive_Enum_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, EnumDefaultValue.e1, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:int' xmlns:d1p1='{1}'>1</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, EnumDefaultValue.e2, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:int' xmlns:d1p1='{1}'>2</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_Guid ()
- {
- Guid guid = new Guid ("CA761232-ED42-11CE-BACD-00AA0057B223");
- string expectedGuid = "ca761232-ed42-11ce-bacd-00aa0057b223";
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", ANamespace, expectedGuid),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", expectedGuid), xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x>{0}</x>", expectedGuid), xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaNamespace, expectedGuid),
- xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>{1}</x>", XmlSchemaInstanceNamespace, expectedGuid),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>{1}</>", ANamespace, expectedGuid),
- xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, guid, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<guid xmlns='{0}'>{1}</guid>", WsdlTypesNamespace,
- expectedGuid), xsw.Content, "#7");
- }
- [Test]
- [Category ("NotWorking")] // namespace should be wsdl types ns
- public void TestWriteTypedPrimitive_Guid_XsiType ()
- {
- Guid guid = new Guid ("CA761232-ED42-11CE-BACD-00AA0057B223");
- string expectedGuid = "ca761232-ed42-11ce-bacd-00aa0057b223";
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, guid, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:guid' xmlns:d1p1='{1}'>{2}</x>",
- WsdlTypesNamespace, XmlSchemaInstanceNamespace, expectedGuid),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, guid, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:guid' xmlns:d1p1='{1}'>{2}</x>",
- WsdlTypesNamespace, XmlSchemaInstanceNamespace, expectedGuid),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_Int ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, 76665, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>76665</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, -5656, false);
- Assert.AreEqual ("<x>-5656</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, 0, false);
- Assert.AreEqual ("<x>0</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, 534, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>534</x>", XmlSchemaNamespace), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, -6756, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>-6756</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, 434, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>434</>", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, 434, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<int xmlns='{0}'>434</int>", XmlSchemaNamespace),
- xsw.Content, "#7");
- }
- [Test]
- public void TestWriteTypedPrimitive_Int_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, -6756, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:int' xmlns:d1p1='{1}'>-6756</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, 434, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:int' xmlns:d1p1='{1}'>434</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #8 fails
- public void TestWriteTypedPrimitive_String ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, "hello", false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>hello</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, "hello", false);
- Assert.AreEqual ("<x>hello</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, "hello", false);
- Assert.AreEqual ("<x>hello</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, "hello", false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>hello</x>", XmlSchemaNamespace),
- xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, "hello", false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>hello</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, string.Empty, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}' />", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, "<\"te'st\">", false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'><\"te'st\"></>", ANamespace),
- xsw.Content, "#7");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, "hello", false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<string xmlns='{0}'>hello</string>", XmlSchemaNamespace),
- xsw.Content, "#8");
- }
- [Test]
- public void TestWriteTypedPrimitive_String_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:string' xmlns:d1p1='{1}'>hello</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:string' xmlns:d1p1='{1}'>hello</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // order of namespace declaration differs from that of MSFT
- public void TestWriteTypedPrimitive_String_XsiType_Namespace ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:string' xmlns:d1p1='{1}' xmlns='{2}'>hello</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='string' xmlns:d1p1='{0}' xmlns='{1}'>hello</x>",
- XmlSchemaInstanceNamespace, XmlSchemaNamespace),
- xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:string' xmlns:d1p1='{1}' xmlns='{1}'>hello</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace), xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, string.Empty, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q3='{0}' d1p1:type='q3:string' xmlns:d1p1='{1}' xmlns='{2}' />",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, "<\"te'st\">", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns:q4='{0}' d1p1:type='q4:string' xmlns:d1p1='{1}' xmlns='{2}'><\"te'st\"></>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, "hello", true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<string d1p1:type='string' xmlns:d1p1='{0}' xmlns='{1}'>hello</string>",
- XmlSchemaInstanceNamespace, XmlSchemaNamespace),
- xsw.Content, "#6");
- }
- [Test]
- [Category ("NotWorking")] // #7 fails
- public void TestWriteTypedPrimitive_UnsignedByte ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, (byte) 5, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>5</x>", ANamespace), xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, (byte) 125, false);
- Assert.AreEqual ("<x>125</x>", xsw.Content, "#2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, (byte) 0, false);
- Assert.AreEqual ("<x>0</x>", xsw.Content, "#3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, (byte) 255, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>255</x>", XmlSchemaNamespace), xsw.Content, "#4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, (byte) 128, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>128</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, (byte) 1, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>1</>", ANamespace), xsw.Content, "#6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, (byte) 99, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<unsignedByte xmlns='{0}'>99</unsignedByte>",
- XmlSchemaNamespace), xsw.Content, "#7");
- }
- [Test]
- public void TestWriteTypedPrimitive_UnsignedByte_XsiType ()
- {
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, (byte) 5, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' d1p1:type='q1:unsignedByte' xmlns:d1p1='{1}'>5</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, (byte) 99, true);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:unsignedByte' xmlns:d1p1='{1}'>99</x>",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- xsw.Content, "#2");
- }
- [Test]
- [Category ("NotWorking")] // #A7 fails
- public void TestWriteTypedPrimitive_XmlQualifiedName ()
- {
- XmlQualifiedName qname = new XmlQualifiedName ("something", AnotherNamespace);
- XmlSerializarionWriterTester xsw = new XmlSerializarionWriterTester ();
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q1='{0}' xmlns='{1}'>q1:something</x>",
- AnotherNamespace, ANamespace), xsw.Content, "#A1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}'>q2:something</x>",
- AnotherNamespace), xsw.Content, "#A2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q3='{0}'>q3:something</x>", AnotherNamespace),
- xsw.Content, "#A3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q4='{0}' xmlns='{1}'>q4:something</x>", AnotherNamespace,
- XmlSchemaNamespace), xsw.Content, "#A4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q5='{0}' xmlns='{1}'>q5:something</x>", AnotherNamespace,
- XmlSchemaInstanceNamespace), xsw.Content, "#A5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns:q6='{0}' xmlns='{1}'>q6:something</>", AnotherNamespace,
- ANamespace), xsw.Content, "#A6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<QName xmlns:q7='{0}' xmlns='{1}'>q7:something</QName>",
- AnotherNamespace, XmlSchemaNamespace), xsw.Content, "#A7");
- xsw.Reset ();
- qname = new XmlQualifiedName ("else");
- xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>else</x>", ANamespace), xsw.Content, "#B1");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, qname, false);
- Assert.AreEqual ("<x>else</x>", xsw.Content, "#B2");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", null, qname, false);
- Assert.AreEqual ("<x>else</x>", xsw.Content, "#B3");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaNamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>else</x>", XmlSchemaNamespace), xsw.Content, "#B4");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive ("x", XmlSchemaInstanceNamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}'>else</x>", XmlSchemaInstanceNamespace),
- xsw.Content, "#B5");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (string.Empty, ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "< xmlns='{0}'>else</>", ANamespace), xsw.Content, "#B6");
- xsw.Reset ();
- xsw.ExecuteWriteTypedPrimitive (null, ANamespace, qname, false);
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<QName xmlns='{0}'>else</QName>", XmlSchemaNamespace),
- xsw.Content, "#B7");
- }
- [Test]
- [ExpectedException (typeof (NullReferenceException))]
- public void TestWriteTypedPrimitive_Null_Value()
- {
- WriteTypedPrimitive("x", ANamespace, null, false);
- }
- [Test]
- [Category ("NotWorking")] // InvalidOperatinException is not thrown
- [ExpectedException (typeof (InvalidOperationException))]
- public void TestWriteTypedPrimitive_NonPrimitive ()
- {
- // The type System.Version was not expected. Use the XmlInclude
- // or SoapInclude attribute to specify types that are not known
- // statically.
- WriteTypedPrimitive ("x", ANamespace, new Version (), false);
- }
- [Test]
- public void TestWriteValue()
- {
- WriteValue("");
- Assert.AreEqual ("", Content);
- Reset();
- WriteValue("hello");
- Assert.AreEqual ("hello", Content);
- Reset();
- string v = null;
- WriteValue(v);
- Assert.AreEqual ("", Content);
- Reset();
- WriteValue(new byte[] {13, 8, 99});
- Assert.AreEqual ("DQhj", Content);
- }
- public void TestWriteXmlAttribute()
- {
- // FIXME
- // XmlNode related
- }
- [Test]
- public void TestWriteXsiType()
- {
- WriteStartElement("x");
- WriteXsiType("pref", null);
- WriteEndElement();
- Assert.AreEqual (string.Format(CultureInfo.InvariantCulture,
- "<x d1p1:type='pref' xmlns:d1p1='{0}' />", XmlSchemaInstanceNamespace),
- Content, "#1");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType ("int", XmlSchemaNamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format(CultureInfo.InvariantCulture,
- "<x xmlns:q2='{0}' d1p1:type='q2:int' xmlns:d1p1='{1}' />",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace),
- Content, "#2");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType ("int", ANamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q3='{0}' d1p1:type='q3:int' xmlns:d1p1='{1}' />",
- ANamespace, XmlSchemaInstanceNamespace), Content, "#3");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType ("int", XmlSchemaInstanceNamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q4='{0}' q4:type='q4:int' />",
- XmlSchemaInstanceNamespace), Content, "#4");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType ("int", string.Empty);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='int' xmlns:d1p1='{0}' />", XmlSchemaInstanceNamespace),
- Content, "#5");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType (string.Empty, null);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='' xmlns:d1p1='{0}' />", XmlSchemaInstanceNamespace),
- Content, "#6");
- Reset ();
- WriteStartElement ("x");
- WriteXsiType (null, null);
- WriteEndElement ();
- Assert.AreEqual ("<x />", Content, "#7");
- }
- [Test]
- [Category ("NotWorking")] // order of namespace declaration differs from that of MSFT
- public void TestWriteXsiType_Namespace ()
- {
- WriteStartElement ("x", ANamespace);
- WriteXsiType ("pref", null);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='pref' xmlns:d1p1='{0}' xmlns='{1}' />",
- XmlSchemaInstanceNamespace, ANamespace), Content, "#1");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType ("int", XmlSchemaNamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q5='{0}' d1p1:type='q5:int' xmlns:d1p1='{1}' xmlns='{2}' />",
- XmlSchemaNamespace, XmlSchemaInstanceNamespace, ANamespace),
- Content, "#2");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType ("int", ANamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='int' xmlns:d1p1='{1}' xmlns='{2}' />",
- ANamespace, XmlSchemaInstanceNamespace, ANamespace),
- Content, "#3");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType ("int", XmlSchemaInstanceNamespace);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns:q6='{0}' q6:type='q6:int' xmlns='{1}' />",
- XmlSchemaInstanceNamespace, ANamespace), Content, "#4");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType ("int", string.Empty);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='int' xmlns:d1p1='{0}' xmlns='{1}' />",
- XmlSchemaInstanceNamespace, ANamespace), Content, "#5");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType (string.Empty, null);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x d1p1:type='' xmlns:d1p1='{0}' xmlns='{1}' />",
- XmlSchemaInstanceNamespace, ANamespace), Content, "#6");
- Reset ();
- WriteStartElement ("x", ANamespace);
- WriteXsiType (null, null);
- WriteEndElement ();
- Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
- "<x xmlns='{0}' />", ANamespace), Content, "#7");
- }
- #if NET_2_0
- [Test]
- public void TestFromEnum_Null_TypeName ()
- {
- string[] values = { "one", "two", "three", "four" };
- long[] ids = { 1, 2, 3, 4 };
- Assert.AreEqual ("one", FromEnum (1, values, ids, (string) null));
- }
- [Test]
- public void TestCreateInvalidEnumValueException ()
- {
- Exception ex = CreateInvalidEnumValueException("AnInvalidValue", "SomeType");
- Assert.IsNotNull (ex, "#1");
- Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsTrue (ex.Message.IndexOf ("AnInvalidValue") != -1, "#4");
- Assert.IsTrue (ex.Message.IndexOf ("SomeType") != -1, "#5");
- }
- #endif
- }
- }
|