2009-12-02 Jb Evain <jbevain@novell.com>
[mcs.git] / class / corlib / Test / System.Reflection / AssemblyNameCas.cs
bloba24a4868d9b60c75ebab37907145a6cb37681719
1 //
2 // AssemblyNameCas.cs - CAS unit tests for System.Reflection.AssemblyName
3 //
4 // Author:
5 // Sebastien Pouliot <sebastien@ximian.com>
6 //
7 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
8 //
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:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
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.
29 using NUnit.Framework;
31 using System;
32 using System.Configuration.Assemblies;
33 using System.Reflection;
34 using System.Runtime.Serialization;
35 using System.Security;
36 using System.Security.Permissions;
38 namespace MonoCasTests.System.Reflection {
40 [TestFixture]
41 [Category ("CAS")]
42 public class AssemblyNameCas {
44 private MonoTests.System.Reflection.AssemblyNameTest ant;
45 private AssemblyName main;
47 [TestFixtureSetUp]
48 public void FixtureSetUp ()
50 ant = new MonoTests.System.Reflection.AssemblyNameTest ();
53 [SetUp]
54 public void SetUp ()
56 if (!SecurityManager.SecurityEnabled)
57 Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
58 ant.SetUp ();
61 [TearDown]
62 public void TearDown ()
64 ant.TearDown ();
67 // Partial Trust Tests
69 [Test]
70 [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
71 public void PartialTrust_Deny_Unrestricted ()
73 // call "normal" unit with reduced privileges
74 ant.Constructor0 ();
75 ant.SetPublicKey ();
76 ant.SetPublicKeyToken ();
77 ant.Clone_Empty ();
80 [Test]
81 [SecurityPermission (SecurityAction.PermitOnly, SerializationFormatter = true)]
82 public void PartialTrust_PermitOnly_SerializationFormatter ()
84 ant.Serialization_WithoutStrongName ();
87 [Test]
88 [SecurityPermission (SecurityAction.PermitOnly, UnmanagedCode = true)]
89 public void PartialTrust_PermitOnly_UnmanagedCode ()
91 ant.KeyPair ();
95 [Test]
96 [SecurityPermission (SecurityAction.PermitOnly, UnmanagedCode = true, SerializationFormatter = true)]
97 public void PartialTrust_PermitOnly_UnmanagedCodeSerializationFormatter ()
99 // UnmanagedCode is required to create a StrongNameKeyPair instance
100 ant.Serialization ();
103 [Test]
104 [SecurityPermission (SecurityAction.Deny, SerializationFormatter = true)]
105 [ExpectedException (typeof (SecurityException))]
106 public void PartialTrust_Deny_SerializationFormatter ()
108 ant.Serialization ();
111 [Test]
112 [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
113 [ExpectedException (typeof (SecurityException))]
114 public void PartialTrust_Deny_UnmanagedCode ()
116 ant.KeyPair ();
119 [Test]
120 [FileIOPermission (SecurityAction.PermitOnly, Unrestricted = true)]
121 public void PartialTrust_PermitOnly_FileIOPermission ()
123 // call "normal" unit with reduced privileges
124 ant.FullName_Name ();
125 ant.FullName_Version ();
126 ant.FullName_Culture ();
127 ant.FullName_PublicKey ();
128 ant.FullName_PublicKeyToken ();
129 ant.FullName_VersionCulture ();
130 ant.FullName_VersionPublicKey ();
131 ant.FullName_CulturePublicKey ();
132 ant.HashAlgorithm ();
133 ant.Clone_Empty ();
134 // mostly because they call Assembly.GetName