2 // Unit tests for System.Xml.XmlXapResolver
5 // Moonlight List (moonlight-list@lists.ximian.com)
7 // Copyright (C) 2009 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 using Mono
.Moonlight
.UnitTesting
;
35 using Microsoft
.VisualStudio
.TestTools
.UnitTesting
;
37 namespace MoonTest
.System
.Xml
{
40 public class XmlXapResolverTest
{
43 public void GetEntity ()
45 XmlXapResolver xr
= new XmlXapResolver ();
47 Assert
.Throws
<ArgumentNullException
> (delegate {
48 xr
.GetEntity (null, "role", typeof (Stream
));
49 }, "null,string,type");
51 Uri absolute
= new Uri ("http://www.mono-project.com/", UriKind
.Absolute
);
53 Assert
.Throws
<XmlException
> (delegate {
54 xr
.GetEntity (absolute
, "role", typeof (Stream
));
55 }, "absolute,string,type");
57 Uri relative
= new Uri (String
.Empty
, UriKind
.Relative
);
58 Assert
.Throws
<IndexOutOfRangeException
> (delegate {
59 xr
.GetEntity (relative
, "role", typeof (Stream
));
60 }, "empty,string,type");
62 relative
= new Uri ("AppManifest.xaml", UriKind
.Relative
);
64 Stream s
= (Stream
) xr
.GetEntity (relative
, null, typeof (Stream
));
65 Assert
.IsNotNull (s
, "relative,null,type");
66 Assert
.IsTrue (s
is Stream
, "Stream");
68 s
= (Stream
) xr
.GetEntity (relative
, String
.Empty
, null);
69 Assert
.IsNotNull (s
, "relative,empty,null");
71 Assert
.Throws
<XmlException
> (delegate {
72 xr
.GetEntity (relative
, null, s
.GetType ());
73 }, "relative,string,type/bad");
75 absolute
= new Uri (Application
.Current
.Host
.Source
, relative
);
76 Assert
.Throws
<XmlException
> (delegate {
77 xr
.GetEntity (absolute
, String
.Empty
, null);
78 }, "absolute(app),empty,null");
80 absolute
= new Uri (Application
.Current
.Host
.Source
+ "#AppManifest.xaml");
81 Assert
.Throws
<XmlException
> (delegate {
82 xr
.GetEntity (absolute
, String
.Empty
, null);
83 }, "absolute(fragment),empty,null");
85 relative
= new Uri ("does-not-exists.file", UriKind
.Relative
);
86 Assert
.Throws
<XmlException
> (delegate {
87 xr
.GetEntity (relative
, String
.Empty
, null);
88 }, "relative(doesnotexists),empty,null");