2005-04-04 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Mon, 4 Apr 2005 12:26:53 +0000 (12:26 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Mon, 4 Apr 2005 12:26:53 +0000 (12:26 -0000)
* AssemblyNameTest.cs: Add test for ArgumentNullException on
GetObjectData. Made existing tests more nunit2.2 like.
* ModuleCas.cs: Added new tests for FullyQualifiedName and Name
properties.
* ModuleTest.cs: Add test for ArgumentNullException on GetObjectData.

svn path=/trunk/mcs/; revision=42513

mcs/class/corlib/Test/System.Reflection/AssemblyNameTest.cs
mcs/class/corlib/Test/System.Reflection/ChangeLog
mcs/class/corlib/Test/System.Reflection/ModuleCas.cs
mcs/class/corlib/Test/System.Reflection/ModuleTest.cs

index 93e4fc7adfd7a5668e8279b2e144d7c2b5f043bd..b1229435f5b41522fe4d3f33eca932db035345dd 100644 (file)
@@ -2,9 +2,10 @@
 // AssemblyNameTest.cs - NUnit Test Cases for AssemblyName
 //
 // Author:
-//     Sebastien Pouliot (spouliot@motus.com)
+//     Sebastien Pouliot  <sebastien@ximian.com>
 //
 // (C) 2002 Motus Technologies Inc. (http://www.motus.com)
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
 //
 
 using NUnit.Framework;
@@ -13,6 +14,7 @@ using System.Configuration.Assemblies;
 using System.IO;
 using System.Reflection;
 using System.Reflection.Emit;
+using System.Runtime.Serialization;
 using System.Threading;
 using System.Globalization;
 using System.Runtime.Serialization.Formatters.Binary;
@@ -59,7 +61,8 @@ public class AssemblyNameTest {
        static byte[] token = { 0xFF, 0xEF, 0x94, 0x53, 0x67, 0x69, 0xDA, 0x06 };
 
        [SetUp]
-       protected void SetUp () {
+       public void SetUp () 
+       {
                try {
                        if (Directory.Exists (tempDir))
                                Directory.Delete (tempDir, true);
@@ -73,7 +76,8 @@ public class AssemblyNameTest {
        }
 
        [TearDown]
-       protected void TearDown () {
+       public void TearDown () 
+       {
                try {
                        if (Directory.Exists (tempDir))
                        Directory.Delete (tempDir, true);
@@ -84,7 +88,8 @@ public class AssemblyNameTest {
                }
        }
 
-       public void TestEmptyAssembly () 
+       [Test]
+       public void EmptyAssembly () 
        {
                an = new AssemblyName ();
                Assert.IsNull (an.CodeBase, "CodeBase");
@@ -100,7 +105,8 @@ public class AssemblyNameTest {
                        an.VersionCompatibility, "VersionCompatibility");
        }
 
-       public void TestPublicKey () 
+       [Test]
+       public void PublicKey () 
        {
                an = new AssemblyName ();
                Assert.IsNull (an.GetPublicKey (), "PublicKey(empty)");
@@ -113,7 +119,8 @@ public class AssemblyNameTest {
                AssertEqualsByteArrays ("PublicKeyToken", token, an.GetPublicKeyToken ());
        }
 
-       public void TestPublicKeyToken () 
+       [Test]
+       public void PublicKeyToken () 
        {
                an = new AssemblyName ();
                an.SetPublicKeyToken (token);
@@ -124,7 +131,8 @@ public class AssemblyNameTest {
                AssertEqualsByteArrays ("PublicKeyToken", token, an.GetPublicKeyToken ());
        }
 
-       public void TestKeyPair () 
+       [Test]
+       public void KeyPair () 
        {
                an = new AssemblyName ();
                an.KeyPair = new StrongNameKeyPair (publicKey);
@@ -136,7 +144,8 @@ public class AssemblyNameTest {
        }
 
        // !!! this assembly MUST NOT use a StrongName !!!
-       public void TestSelf () 
+       [Test]
+       public void Self () 
        {
                Assembly a = Assembly.GetExecutingAssembly ();
                AssemblyName an = a.GetName ();
@@ -146,7 +155,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName1 ()
+       public void FullName1 ()
        {
                // !!! we assume the mscorlib has a strong name !!!
                AssemblyName an = typeof(int).Assembly.GetName ();
@@ -157,7 +166,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName2 ()
+       public void FullName2 ()
        {
                const string assemblyName = "TestAssembly";
 
@@ -171,7 +180,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName3 ()
+       public void FullName3 ()
        {
                const string assemblyName = "TestAssembly";
                const string assemblyVersion = "1.2";
@@ -184,7 +193,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName4 ()
+       public void FullName4 ()
        {
                const string assemblyName = "TestAssembly";
 
@@ -196,7 +205,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName5 ()
+       public void FullName5 ()
        {
                const string assemblyName = "TestAssembly";
 
@@ -208,7 +217,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName6 ()
+       public void FullName6 ()
        {
                const string assemblyName = "TestAssembly";
                const string assemblyVersion = "1.2";
@@ -223,7 +232,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName7 ()
+       public void FullName7 ()
        {
                const string assemblyName = "TestAssembly";
                const string assemblyVersion = "1.2";
@@ -239,7 +248,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       public void TestFullName8 ()
+       public void FullName8 ()
        {
                const string assemblyName = "TestAssembly";
 
@@ -255,13 +264,15 @@ public class AssemblyNameTest {
 
        static int nameIndex = 0;
 
-       private AssemblyName GenAssemblyName () {
+       private AssemblyName GenAssemblyName () 
+       {
                AssemblyName assemblyName = new AssemblyName();
                assemblyName.Name = "MonoTests.System.Reflection.AssemblyNameTest" + (nameIndex ++);
                return assemblyName;
        }
 
-       private Assembly GenerateAssembly (AssemblyName name) {
+       private Assembly GenerateAssembly (AssemblyName name) 
+       {
                AssemblyBuilder ab = domain.DefineDynamicAssembly (
                        name,
                        AssemblyBuilderAccess.RunAndSave,
@@ -272,6 +283,7 @@ public class AssemblyNameTest {
                return Assembly.LoadFrom (Path.Combine (tempDir, name.Name + ".dll"));
        }
 
+       [Test]
        public void TestCultureInfo ()
        {
                AssemblyName name = GenAssemblyName ();
@@ -281,7 +293,8 @@ public class AssemblyNameTest {
                Assert.AreEqual (a.GetName ().CultureInfo.Name, "ar-DZ");
        }
 
-       public void TestVersion ()
+       [Test]
+       public void Version ()
        {
                AssemblyName name = GenAssemblyName ();
                name.Version = new Version (1, 2, 3, 4);
@@ -302,13 +315,15 @@ public class AssemblyNameTest {
                Assert.AreEqual ("1.2.0.0", a.GetName ().Version.ToString ());
        }
 
-       public void TestHashAlgorithm ()
+       [Test]
+       public void HashAlgorithm ()
        {
                Assert.AreEqual (AssemblyHashAlgorithm.SHA1, 
                        typeof (int).Assembly.GetName ().HashAlgorithm);
        }
 
-       public void TestSerialization ()
+       [Test]
+       public void Serialization ()
        {
                AssemblyName an = new AssemblyName ();
                an.CodeBase = "http://www.test.com/test.dll";
@@ -348,12 +363,15 @@ public class AssemblyNameTest {
                AssertEqualsByteArrays ("PublicToken", an.GetPublicKeyToken (), dsAssemblyName.GetPublicKeyToken ());
        }
 
-
-       private AssemblyName GetAssemblyName (string assemblyFile) 
+       [Test]
+       [ExpectedException (typeof (ArgumentNullException))]
+       public void GetObjectData_Null ()
        {
-               Assembly a = Assembly.LoadFrom (assemblyFile);
-               return a.GetName ();
-       }
+               AssemblyName an = new AssemblyName ();
+               an.GetObjectData (null, new StreamingContext (StreamingContextStates.All));\r
+       }\r
+
+       // helpers
 
        private string GetTokenString (byte[] value)
        {
@@ -363,11 +381,6 @@ public class AssemblyNameTest {
                }
                return tokenString;
        }
-
-       public void TestStatic () 
-       {
-               /*an = GetAssemblyName ("System.Reflection.dll");*/
-       }
 }
 
 }
index 197efec5b6bc06d948fdc862867d115a13ff1f1d..65b1da7d01c7feeaf7587824d022a03bb5f99a58 100644 (file)
@@ -1,3 +1,11 @@
+2005-04-04  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * AssemblyNameTest.cs: Add test for ArgumentNullException on 
+       GetObjectData. Made existing tests more nunit2.2 like.
+       * ModuleCas.cs: Added new tests for FullyQualifiedName and Name 
+       properties.
+       * ModuleTest.cs: Add test for ArgumentNullException on GetObjectData.
+
 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
 
        * ModuleCas.cs: New. CAS unit tests for Module.
index d85f800b3089428df8b926bd47738dacec0c7eda..2251fe27bda9f9a228d279a32d5adfcfab0ba42e 100644 (file)
@@ -41,11 +41,13 @@ namespace MonoCasTests.System.Reflection {
        public class ModuleCas {
 
                private MonoTests.System.Reflection.ModuleTest mt;
+               private Module main;
 
                [TestFixtureSetUp]
                public void FixtureSetUp ()
                {
                        mt = new MonoTests.System.Reflection.ModuleTest ();
+                       main = typeof (int).Module;
                }
 
                [SetUp]
@@ -62,12 +64,13 @@ namespace MonoCasTests.System.Reflection {
                        mt.TearDown ();
                }
 
-               // Partial Trust Tests - i.e. call "normal" unit with reduced privileges
+               // Partial Trust Tests
 
                [Test]
                [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
                public void PartialTrust_DenyUnrestricted ()
                {
+                       // call "normal" unit with reduced privileges
                        mt.FindTypes ();
 #if NET_2_0
                        mt.ResolveType ();
@@ -75,6 +78,45 @@ namespace MonoCasTests.System.Reflection {
                        mt.ResolveField ();
                        mt.ResolveMember ();
 #endif
+                       // properties
+                       Assert.IsNotNull (main.Assembly, "Assembly");
+                       Assert.IsNotNull (main.ScopeName, "ScopeName");
+
+                       // methods (incomplete)
+                       Assert.IsNotNull (main.ToString (), "ToString");
+               }
+
+               [Test]
+               [FileIOPermission (SecurityAction.Deny, Unrestricted = true)]
+               [ExpectedException (typeof (SecurityException))]
+               public void FullyQualifiedName_Deny_FileIOPermission ()
+               {
+                       Assert.IsNotNull (main.FullyQualifiedName, "FullyQualifiedName");
+               }
+
+               [Test]
+               [FileIOPermission (SecurityAction.PermitOnly, Unrestricted = true)]
+               public void FullyQualifiedName_PermitOnly_FileIOPermission ()
+               {
+                       Assert.IsNotNull (main.FullyQualifiedName, "FullyQualifiedName");
+               }
+
+               // Note: we do not ask for PathDiscovery because no path is returned here.
+               // However MS Fx requires it (see FDBK23572 for details).
+               [Category ("NotWorking")] // on purpose ;-)
+               [Test]
+               [FileIOPermission (SecurityAction.Deny, Unrestricted = true)]
+               [ExpectedException (typeof (SecurityException))]
+               public void Name_Deny_FileIOPermission ()
+               {
+                       Assert.IsNotNull (main.Name, "Name");
+               }
+
+               [Test]
+               [FileIOPermission (SecurityAction.PermitOnly, Unrestricted = true)]
+               public void Name_PermitOnly_FileIOPermission ()
+               {
+                       Assert.IsNotNull (main.Name, "Name");
                }
 
                // we use reflection to call Module as the GetObjectData method is protected 
index d48c72424b85ddaf9e713c4219680d634a7fb118..00d4155b4ddcf3b440b3b4ff35b8cb71c083339c 100644 (file)
@@ -4,14 +4,14 @@
 // Zoltan Varga (vargaz@freemail.hu)\r
 //\r
 // (C) Ximian, Inc.  http://www.ximian.com\r
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
 //\r
-//\r
-\r
 \r
 using System;\r
 using System.Threading;\r
 using System.Reflection;\r
 using System.Reflection.Emit;\r
+using System.Runtime.Serialization;
 using System.IO;\r
 using System.Collections;\r
 \r
@@ -280,6 +280,14 @@ public class ModuleTest : Assertion
                AssertEquals ("FindTypesTestFirstClass", t [0].Name);\r
                AssertEquals ("FindTypesTestSecondClass", t [1].Name);\r
        }\r
+
+       [Test]
+       [ExpectedException (typeof (ArgumentNullException))]
+       public void GetObjectData_Null ()
+       {
+               Module m = typeof (ModuleTest).Module;\r
+               m.GetObjectData (null, new StreamingContext (StreamingContextStates.All));\r
+       }\r
 \r
        class FindTypesTestFirstClass { \r
        }\r