2003-10-26 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / Microsoft.Web.Services / Test / Microsoft.Web.Services.Security / ReferenceListTest.cs
1 //
2 // ReferenceListTest.cs - NUnit Test Cases for ReferenceList
3 //
4 // Author:
5 //      Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
9
10 using NUnit.Framework;
11 using Microsoft.Web.Services.Security;
12 using System;
13 using System.Collections;
14 using System.Xml;
15
16 namespace MonoTests.MS.Web.Services.Security {
17
18         [TestFixture]
19         public class ReferenceListTest : Assertion {
20
21                 private const string Empty = "<xenc:ReferenceList xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\" />";
22                 private const string One = "<xenc:ReferenceList xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\"><xenc:DataReference URI=\"#mono\" /></xenc:ReferenceList>";
23                 private const string NotLocalUri = "<xenc:ReferenceList xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\"><xenc:DataReference URI=\"mono\" /></xenc:ReferenceList>";
24                 private const string NotDataReference = "<xenc:ReferenceList xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\"><xenc:Reference URI=\"#mono\" /></xenc:ReferenceList>";
25
26                 [Test]
27                 public void Constructor () 
28                 {
29                         ReferenceList rl = new ReferenceList ();
30                         AssertNotNull ("Constructor()", rl);
31                 }
32
33                 [Test]
34                 public void ConstructorXmlElement () 
35                 {
36                         XmlDocument doc = new XmlDocument ();
37                         doc.LoadXml (Empty);
38                         ReferenceList rl = new ReferenceList (doc.DocumentElement);
39                         AssertNotNull ("Constructor(XmlElement)", rl);
40                 }
41
42                 [Test]
43                 [ExpectedException (typeof (ArgumentNullException))] 
44                 public void ConstructorXmlElementNull () 
45                 {
46                         ReferenceList rl = new ReferenceList (null);
47                 }
48
49                 [Test]
50                 public void Add () 
51                 {
52                         ReferenceList rl = new ReferenceList ();
53                         rl.Add ("mono");
54                         Assert ("Add/Contains(mono)", rl.Contains ("mono"));
55                         Assert ("Add/Contains(#mono)", rl.Contains ("#mono"));
56                 }
57
58                 [Test]
59                 public void AddSharp () 
60                 {
61                         ReferenceList rl = new ReferenceList ();
62                         rl.Add ("#mono");
63                         Assert ("Add/Contains(mono)", rl.Contains ("mono"));
64                         Assert ("Add/Contains(#mono)", rl.Contains ("#mono"));
65                         Assert ("Add/Contains(##mono)", !rl.Contains ("##mono"));
66                 }
67
68                 [Test]
69                 [ExpectedException (typeof (ArgumentNullException))] 
70                 public void AddNull ()
71                 {
72                         ReferenceList rl = new ReferenceList ();
73                         rl.Add (null);
74                 }
75
76                 [Test] 
77                 public void Contains () 
78                 {
79                         ReferenceList rl = new ReferenceList ();
80                         rl.Add ("mono");
81                         Assert ("Contains(mono)", rl.Contains ("mono"));
82                         Assert ("Contains(#mono)", rl.Contains ("#mono"));
83                         Assert ("!Contains(nomo)", !rl.Contains ("nomo"));
84                 }
85
86                 [Test]
87                 [ExpectedException (typeof (ArgumentNullException))] 
88                 public void ContainsNull () 
89                 {
90                         ReferenceList rl = new ReferenceList ();
91                         Assert ("Contains", rl.Contains (null));
92                 }
93
94                 [Test]
95                 public void GetEnumetator ()
96                 {
97                         ReferenceList rl = new ReferenceList ();
98                         IEnumerator e = rl.GetEnumerator ();
99                         AssertNotNull ("GetEnumerator", e);
100                 }
101
102                 [Test]
103                 public void ListWithEnumerator () 
104                 {
105                         ReferenceList rl = new ReferenceList ();
106                         for (int i=0; i < 16; i++) {
107                                 rl.Add ("mono" + i.ToString ());
108                         }
109                         int n = 0;
110                         foreach (string s in rl) {
111                                 Assert (s.StartsWith ("mono"));
112                                 n++;
113                         }
114                         AssertEquals ("Count", 16, n);
115                 }
116
117                 [Test]
118                 public void GetXml_Empty () 
119                 {
120                         ReferenceList rl = new ReferenceList ();
121                         XmlDocument doc = new XmlDocument ();
122                         XmlElement xel = rl.GetXml (doc);
123                         AssertEquals ("GetXml_Empty", Empty, xel.OuterXml);
124                 }
125
126                 [Test]
127                 public void GetXml_One () 
128                 {
129                         ReferenceList rl = new ReferenceList ();
130                         rl.Add ("mono");
131                         XmlDocument doc = new XmlDocument ();
132                         XmlElement xel = rl.GetXml (doc);
133                         AssertEquals ("GetXml_One", One, xel.OuterXml);
134                 }
135
136                 [Test]
137                 [ExpectedException (typeof (ArgumentNullException))] 
138                 public void GetXmlNull () 
139                 {
140                         ReferenceList rl = new ReferenceList ();
141                         rl.GetXml (null);
142                 }
143
144                 [Test]
145                 public void LoadXml_Empty () 
146                 {
147                         ReferenceList rl = new ReferenceList ();
148                         XmlDocument doc = new XmlDocument ();
149                         doc.LoadXml (Empty);
150                         rl.LoadXml (doc.DocumentElement);
151                         Assert ("LoadXml_Empty-Contains(mono)", !rl.Contains ("mono"));
152                         Assert ("LoadXml_Empty-Contains(#mono)", !rl.Contains ("#mono"));
153                 }
154
155                 [Test]
156                 public void LoadXml_One () 
157                 {
158                         ReferenceList rl = new ReferenceList ();
159                         XmlDocument doc = new XmlDocument ();
160                         doc.LoadXml (One);
161                         rl.LoadXml (doc.DocumentElement);
162                         Assert ("LoadXml_One", rl.Contains ("mono"));
163                         Assert ("LoadXml_One-Contains(mono)", rl.Contains ("mono"));
164                         Assert ("LoadXml_One-Contains(#mono)", rl.Contains ("#mono"));
165                 }
166
167                 [Test]
168                 public void LoadXml_NotLocalUri () 
169                 {
170                         ReferenceList rl = new ReferenceList ();
171                         XmlDocument doc = new XmlDocument ();
172                         doc.LoadXml (NotLocalUri); // mono, not #mono
173                         rl.LoadXml (doc.DocumentElement);
174                         Assert ("LoadXml_NotLocalUri-Contains(mono)", rl.Contains ("mono"));
175                         Assert ("LoadXml_NotLocalUri-Contains(#mono)", rl.Contains ("#mono"));
176                 }
177
178                 [Test]
179                 public void LoadXml_NotDataReference () 
180                 {
181                         ReferenceList rl = new ReferenceList ();
182                         XmlDocument doc = new XmlDocument ();
183                         doc.LoadXml (NotDataReference);
184                         rl.LoadXml (doc.DocumentElement);
185                         Assert ("LoadXml_NotDataReference(mono)", !rl.Contains ("mono"));
186                         Assert ("LoadXml_NotDataReference(#mono)", !rl.Contains ("#mono"));
187                 }
188
189                 [Test]
190                 [ExpectedException (typeof (ArgumentException))] 
191                 public void LoadXml_BadLocalName () 
192                 {
193                         ReferenceList rl = new ReferenceList ();
194                         XmlDocument doc = new XmlDocument ();
195                         doc.LoadXml ("<xenc:RefList xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\" />");
196                         rl.LoadXml (doc.DocumentElement);
197                 }
198
199                 [Test]
200                 [ExpectedException (typeof (ArgumentException))] 
201                 public void LoadXml_BadNamespace () 
202                 {
203                         ReferenceList rl = new ReferenceList ();
204                         XmlDocument doc = new XmlDocument ();
205                         doc.LoadXml ("<xenc:ReferenceList xmlns:xenc=\"http://www.w3.org/2201/04/xmlenc#\" />");
206                         rl.LoadXml (doc.DocumentElement);
207                 }
208
209                 [Test]
210                 [ExpectedException (typeof (ArgumentNullException))] 
211                 public void LoadXmlNull () 
212                 {
213                         ReferenceList rl = new ReferenceList ();
214                         rl.LoadXml (null);
215                 }
216         }
217 }