Wed Feb 24 15:47:16 CET 2010 Paolo Molaro <lupus@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / Test / System.ServiceModel.Channels / AddressHeaderTest.cs
1 using System;
2 using System.Collections.Generic;
3 using System.IO;
4 using System.Runtime.Serialization;
5 using System.ServiceModel;
6 using System.ServiceModel.Channels;
7 using System.Text;
8 using System.Xml;
9 using System.Xml.Schema;
10 using NUnit.Framework;
11
12 namespace MonoTests.System.ServiceModel.Channels
13 {
14         [TestFixture]
15         public class AddressHeaderTest
16         {
17                 [Test]
18                 public void WriteAddressHeaderTest ()
19                 {
20                         AddressHeader h = AddressHeader.CreateAddressHeader (1);
21
22                         StringWriter sw = new StringWriter ();
23                         XmlWriterSettings s = new XmlWriterSettings ();
24                         s.OmitXmlDeclaration = true;
25                         XmlWriter w = XmlWriter.Create (sw, s);
26                         h.WriteAddressHeader (w);
27
28                         w.Close ();
29
30                         Assert.AreEqual (
31                                 @"<int xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">1</int>",
32                                 sw.ToString ());
33                 }
34
35                 [Test]
36                 public void CreateAddressHeader ()
37                 {
38                         AddressHeader h = AddressHeader.CreateAddressHeader ("foo", "urn:foo", null);
39                 }
40
41                 [Test]
42                 [Category ("NotDotNet")]
43                 // It should work, but MS implementation expects body to be
44                 // IComparable.
45                 public void EqualsTest ()
46                 {
47                         AddressHeader h = AddressHeader.CreateAddressHeader (
48                                 "foo", "urn:foo", null);
49                         AddressHeader h2 = AddressHeader.CreateAddressHeader (
50                                 "foo", "urn:foo", null);
51                         Assert.IsFalse (h.Equals (null), "#1"); // never throw nullref
52                         Assert.IsTrue (h.Equals (h2), "#2");
53                 }
54
55                 [Test]
56                 public void GetAddressHeaderReader ()
57                 {
58                         var h = AddressHeader.CreateAddressHeader ("foo", String.Empty, null);
59                         var r = h.GetAddressHeaderReader ();
60                         r.MoveToContent ();
61                         Assert.AreEqual ("foo", r.LocalName, "#1");
62                         Assert.AreEqual ("true", r.GetAttribute ("nil", XmlSchema.InstanceNamespace), "#2");
63                 }
64
65                 [Test]
66                 public void WriteAddressHeader ()
67                 {
68                         var h = AddressHeader.CreateAddressHeader ("foo", "urn:foo", null);
69                         var sw = new StringWriter ();
70                         var xw = XmlDictionaryWriter.CreateDictionaryWriter (XmlWriter.Create (sw));
71                         h.WriteAddressHeader (xw);
72                         xw.Close ();
73                         Assert.AreEqual ("<?xml version=\"1.0\" encoding=\"utf-16\"?><foo i:nil=\"true\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:foo\" />", sw.ToString (), "#1");
74                 }
75         }
76 }