1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 using OLEDB.Test.ModuleCore;
6 using System.IO;
7 using XmlCoreTest.Common;
8 
9 namespace System.Xml.Tests
10 {
11     [TestCase(Name = "Create Overloads", Desc = "Create Overloads")]
12     public partial class TCCreateOverloads : TCXMLReaderBaseGeneral
13     {
14         private string _sampleFileName = @"sample.xml";
15         private string _sampleXml = "<root><a/></root>";
CreateFile()16         private void CreateFile()
17         {
18             MemoryStream ms = new MemoryStream();
19             StreamWriter sw = new StreamWriter(ms);
20             sw.WriteLine(_sampleXml);
21             sw.Flush();
22             FilePathUtil.addStream(_sampleFileName, ms);
23         }
24 
Init(object o)25         public override int Init(object o)
26         {
27             CreateFile();
28             return base.Init(o);
29         }
30 
GetStream()31         public Stream GetStream()
32         {
33             return FilePathUtil.getStream(_sampleFileName);
34         }
35 
GetUrl()36         public String GetUrl()
37         {
38             return _sampleFileName;
39         }
40 
GetTextReader()41         public TextReader GetTextReader()
42         {
43             return new StringReader(_sampleXml);
44         }
45 
GetBaseUri()46         public string GetBaseUri()
47         {
48             return _sampleFileName;
49         }
50 
GetSettings()51         public XmlReaderSettings GetSettings()
52         {
53             return new XmlReaderSettings();
54         }
55 
GetXmlReader()56         public XmlReader GetXmlReader()
57         {
58             return ReaderHelper.Create(GetTextReader());
59         }
60 
GetParserContext()61         public XmlParserContext GetParserContext()
62         {
63             NameTable nt = new NameTable();
64             XmlParserContext pc = new XmlParserContext(nt, new XmlNamespaceManager(nt), null, XmlSpace.Default);
65             return pc;
66         }
67 
68         public class ReaderDelegate
69         {
Create(String url)70             public static bool Create(String url)
71             {
72                 XmlReader reader = null;
73                 try
74                 {
75                     reader = ReaderHelper.Create(url);
76                     while (reader.Read()) ;
77 
78                     return true;
79                 }
80                 catch (ArgumentNullException ane)
81                 {
82                     CError.WriteLineIgnore(ane.ToString());
83                     return false;
84                 }
85                 finally
86                 {
87                     if (reader != null)
88                         reader.Dispose();
89                 }
90             }
91 
92 
Create(Stream input)93             public static bool Create(Stream input)
94             {
95                 XmlReader reader = null;
96                 try
97                 {
98                     reader = ReaderHelper.Create(input);
99                     while (reader.Read()) ;
100                     return true;
101                 }
102                 catch (ArgumentNullException ane)
103                 {
104                     CError.WriteLineIgnore(ane.ToString());
105                     return false;
106                 }
107                 finally
108                 {
109                     if (reader != null)
110                         reader.Dispose();
111                 }
112             }
Create(TextReader input)113             public static bool Create(TextReader input)
114             {
115                 XmlReader reader = null;
116                 try
117                 {
118                     reader = ReaderHelper.Create(input);
119                     while (reader.Read()) ;
120                     return true;
121                 }
122                 catch (ArgumentNullException ane)
123                 {
124                     CError.WriteLineIgnore(ane.ToString());
125                     return false;
126                 }
127                 finally
128                 {
129                     if (reader != null)
130                         reader.Dispose();
131                 }
132             }
133 
Create(String url, XmlReaderSettings settings)134             public static bool Create(String url, XmlReaderSettings settings)
135             {
136                 XmlReader reader = null;
137                 try
138                 {
139                     reader = ReaderHelper.Create(url, settings);
140                     while (reader.Read()) ;
141                     return true;
142                 }
143                 catch (ArgumentNullException ane)
144                 {
145                     CError.WriteLineIgnore(ane.ToString());
146                     return false;
147                 }
148                 finally
149                 {
150                     if (reader != null)
151                         reader.Dispose();
152                 }
153             }
154 
Create(XmlReader input, XmlReaderSettings settings)155             public static bool Create(XmlReader input, XmlReaderSettings settings)
156             {
157                 XmlReader reader = null;
158                 try
159                 {
160                     reader = ReaderHelper.Create(input, settings);
161                     while (reader.Read()) ;
162                     return true;
163                 }
164                 catch (ArgumentNullException ane)
165                 {
166                     CError.WriteLineIgnore(ane.ToString());
167                     return false;
168                 }
169                 finally
170                 {
171                     if (reader != null)
172                         reader.Dispose();
173                 }
174             }
175 
Create(Stream input, XmlReaderSettings settings)176             public static bool Create(Stream input, XmlReaderSettings settings)
177             {
178                 XmlReader reader = null;
179                 try
180                 {
181                     reader = ReaderHelper.Create(input, settings);
182                     while (reader.Read()) ;
183                     return true;
184                 }
185                 catch (ArgumentNullException ane)
186                 {
187                     CError.WriteLineIgnore(ane.ToString());
188                     return false;
189                 }
190                 finally
191                 {
192                     if (reader != null)
193                         reader.Dispose();
194                 }
195             }
196 
Create(TextReader input, XmlReaderSettings settings)197             public static bool Create(TextReader input, XmlReaderSettings settings)
198             {
199                 XmlReader reader = null;
200                 try
201                 {
202                     reader = ReaderHelper.Create(input, settings);
203                     while (reader.Read()) ;
204                     return true;
205                 }
206                 catch (ArgumentNullException ane)
207                 {
208                     CError.WriteLineIgnore(ane.ToString());
209                     return false;
210                 }
211                 finally
212                 {
213                     if (reader != null)
214                         reader.Dispose();
215                 }
216             }
217 
Create(Stream input, XmlReaderSettings settings, String baseUri)218             public static bool Create(Stream input, XmlReaderSettings settings, String baseUri)
219             {
220                 XmlReader reader = null;
221                 try
222                 {
223                     reader = ReaderHelper.Create(input, settings, baseUri);
224                     while (reader.Read()) ;
225                     return true;
226                 }
227                 catch (ArgumentNullException ane)
228                 {
229                     CError.WriteLineIgnore(ane.ToString());
230                     return false;
231                 }
232                 finally
233                 {
234                     if (reader != null)
235                         reader.Dispose();
236                 }
237             }
238 
Create(Stream input, XmlReaderSettings settings, XmlParserContext parserContext)239             public static bool Create(Stream input, XmlReaderSettings settings, XmlParserContext parserContext)
240             {
241                 XmlReader reader = null;
242                 try
243                 {
244                     reader = ReaderHelper.Create(input, settings, parserContext);
245                     while (reader.Read()) ;
246                     return true;
247                 }
248                 catch (ArgumentNullException ane)
249                 {
250                     CError.WriteLineIgnore(ane.ToString());
251                     return false;
252                 }
253                 finally
254                 {
255                     if (reader != null)
256                         reader.Dispose();
257                 }
258             }
259 
Create(TextReader input, XmlReaderSettings settings, String baseUri)260             public static bool Create(TextReader input, XmlReaderSettings settings, String baseUri)
261             {
262                 XmlReader reader = null;
263                 try
264                 {
265                     reader = ReaderHelper.Create(input, settings, baseUri);
266                     while (reader.Read()) ;
267                     return true;
268                 }
269                 catch (ArgumentNullException ane)
270                 {
271                     CError.WriteLineIgnore(ane.ToString());
272                     return false;
273                 }
274                 finally
275                 {
276                     if (reader != null)
277                         reader.Dispose();
278                 }
279             }
280 
Create(TextReader input, XmlReaderSettings settings, XmlParserContext parserContext)281             public static bool Create(TextReader input, XmlReaderSettings settings, XmlParserContext parserContext)
282             {
283                 XmlReader reader = null;
284                 try
285                 {
286                     reader = ReaderHelper.Create(input, settings, parserContext);
287                     while (reader.Read()) ;
288                     return true;
289                 }
290                 catch (ArgumentNullException ane)
291                 {
292                     CError.WriteLineIgnore(ane.ToString());
293                     return false;
294                 }
295                 finally
296                 {
297                     if (reader != null)
298                         reader.Dispose();
299                 }
300             }
301 
Create(String url, XmlReaderSettings settings, XmlParserContext context)302             public static bool Create(String url, XmlReaderSettings settings, XmlParserContext context)
303             {
304                 XmlReader reader = null;
305                 try
306                 {
307                     reader = ReaderHelper.Create(url, settings, context);
308                     while (reader.Read()) ;
309                     return true;
310                 }
311                 catch (ArgumentNullException ane)
312                 {
313                     CError.WriteLineIgnore(ane.ToString());
314                     return false;
315                 }
316                 finally
317                 {
318                     if (reader != null)
319                         reader.Dispose();
320                 }
321             }
322         }
323 
324         [Variation("Null Input")]
v1()325         public int v1()
326         {
327             CError.Equals(ReaderDelegate.Create((Stream)null), false, "Null Stream doesn't throw error1");
328             CError.Equals(ReaderDelegate.Create((Stream)null, GetSettings(), GetBaseUri()), false, "Null Stream doesn't throw error2");
329             CError.Equals(ReaderDelegate.Create((Stream)null, GetSettings()), false, "Null Stream doesn't throw error3");
330 
331             CError.Equals(ReaderDelegate.Create((string)null), false, "Null URL doesn't throw error1");
332             CError.Equals(ReaderDelegate.Create((string)null, GetSettings()), false, "Null URL doesn't throw error2");
333             CError.Equals(ReaderDelegate.Create((string)null, GetSettings(), GetParserContext()), false, "Null URL doesn't throw error3");
334 
335             CError.Equals(ReaderDelegate.Create((TextReader)null), false, "Null TextReader doesn't throw error1");
336             CError.Equals(ReaderDelegate.Create((TextReader)null, GetSettings(), GetBaseUri()), false, "Null TextReader doesn't throw error2");
337             CError.Equals(ReaderDelegate.Create((TextReader)null, GetSettings()), false, "Null TextReader doesn't throw error2");
338 
339             return TEST_PASS;
340         }
341 
342         [Variation("Valid Input")]
v2()343         public int v2()
344         {
345             XmlReader r = null;
346 
347             Stream s = GetStream();
348             r = ReaderHelper.Create(s);
349             while (r.Read()) ;
350             r.Dispose();
351 
352             r = ReaderHelper.Create(GetUrl());
353             while (r.Read()) ;
354             r.Dispose();
355 
356             r = ReaderHelper.Create(GetTextReader());
357             while (r.Read()) ;
358             r.Dispose();
359 
360             return TEST_PASS;
361         }
362 
363 
364         [Variation("Null Settings")]
v3()365         public int v3()
366         {
367             CError.Equals(ReaderDelegate.Create(GetStream(), null, GetParserContext()), true, "StreamOverload2");
368             CError.Equals(ReaderDelegate.Create(GetStream(), null), true, "StreamOverload3");
369 
370             CError.Equals(ReaderDelegate.Create(GetUrl(), null), true, "URL Overload 1");
371             CError.Equals(ReaderDelegate.Create(GetUrl(), null, GetParserContext()), true, "URL Overload 2");
372 
373             CError.Equals(ReaderDelegate.Create(GetTextReader(), null, GetParserContext()), true, "TextReader Overload2");
374             CError.Equals(ReaderDelegate.Create(GetTextReader(), null), true, "TextReader Overload3");
375 
376             CError.Equals(ReaderDelegate.Create(GetXmlReader(), null), true, "XmlReader Overload1");
377             return TEST_PASS;
378         }
379 
380         [Variation("Null ParserContext")]
v5()381         public int v5()
382         {
383             CError.Equals(ReaderDelegate.Create(GetStream(), GetSettings(), (string)null), true, "StreamOverload3");
384             CError.Equals(ReaderDelegate.Create(GetStream(), GetSettings(), (XmlParserContext)null), true, "StreamOverload4");
385 
386             CError.Equals(ReaderDelegate.Create(GetTextReader(), GetSettings(), (string)null), true, "TextOverload3");
387             CError.Equals(ReaderDelegate.Create(GetTextReader(), GetSettings(), GetParserContext()), true, "TextOverload4");
388 
389             return TEST_PASS;
390         }
391 
392         [Variation("Valid Settings")]
v6()393         public int v6()
394         {
395             CError.Equals(ReaderDelegate.Create(GetStream(), GetSettings(), (string)null), true, "StreamOverload2");
396             CError.Equals(ReaderDelegate.Create(GetStream(), GetSettings(), (XmlParserContext)null), true, "StreamOverload2");
397 
398             CError.Equals(ReaderDelegate.Create(GetUrl(), GetSettings()), true, "URL Overload 1");
399             CError.Equals(ReaderDelegate.Create(GetUrl(), GetSettings(), GetParserContext()), true, "URL Overload 2");
400 
401             CError.Equals(ReaderDelegate.Create(GetTextReader(), GetSettings(), (string)null), true, "TextReader Overload2");
402             CError.Equals(ReaderDelegate.Create(GetTextReader(), GetSettings(), (XmlParserContext)null), true, "TextReader Overload2");
403 
404             CError.Equals(ReaderDelegate.Create(GetXmlReader(), GetSettings()), true, "XmlReader Overload1");
405             return TEST_PASS;
406         }
407 
408         [Variation("Valid ParserContext")]
v7()409         public int v7()
410         {
411             CError.Equals(ReaderDelegate.Create(GetStream(), GetSettings(), GetParserContext()), true, "StreamOverload3");
412 
413             CError.Equals(ReaderDelegate.Create(GetTextReader(), GetSettings(), GetParserContext()), true, "TextOverload3");
414 
415             return TEST_PASS;
416         }
417     }
418 }
419