Merge pull request #1857 from slluis/fix-assembly-resolver
[mono.git] / mcs / class / corlib / Test / System.Reflection / AssemblyNameTest.cs
index e2d6392a8fa7bc508330958c4cc505515b296a5d..abf316c1a6995dbd92b0219082c3f4df0db4fff9 100644 (file)
@@ -13,7 +13,7 @@ using System;
 using System.Configuration.Assemblies;
 using System.IO;
 using System.Reflection;
-#if !TARGET_JVM && !MOBILE
+#if !MOBILE
 using System.Reflection.Emit;
 #endif
 using System.Runtime.Serialization;
@@ -31,9 +31,7 @@ public class AssemblyNameTest {
 
        private string tempDir = Path.Combine (Path.GetTempPath (), "MonoTests.System.Reflection.AssemblyNameTest");
 
-#if !TARGET_JVM // Thread.GetDomain is not supported for TARGET_JVM.
        private AppDomain domain;
-#endif // TARGET_JVM
 
        // created with "sn -o test.snk test.txt"
        static byte[] keyPair = {
@@ -98,10 +96,6 @@ public class AssemblyNameTest {
                0x1A, 0x56, 0x76, 0x43, 0xDB, 0x64, 0x86, 0x41, 0x64, 0x8D,
                0x4C, 0x91, 0x83, 0x4E, 0xF5, 0x6C };
 
-#if !NET_2_0
-       static byte [] kp_token = { 0xff, 0xef, 0x94, 0x53, 0x67, 0x69, 0xda, 0x06 };
-#endif
-
        static byte [] publicKey1 = {
                0x00, 0x24, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x94, 0x00,
                0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00,
@@ -140,10 +134,6 @@ public class AssemblyNameTest {
                0x50, 0xa4, 0x4d, 0x8b, 0x8a, 0x58, 0x17, 0x70, 0xa4, 0x53,
                0xe4, 0xdc, 0x73, 0x5d, 0x8c, 0x4e, 0xb8, 0xd3, 0xa9, 0xbf };
 
-#if !NET_2_0
-       static byte [] pk_token2 = { 0x22, 0x7c, 0x9c, 0x2c, 0x3c, 0x00, 0x63, 0xe9 };
-#endif
-
        static byte [] publicKey3 = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
@@ -162,9 +152,7 @@ public class AssemblyNameTest {
 
                Directory.CreateDirectory (tempDir);
 
-#if !TARGET_JVM // Thread.GetDomain is not supported for TARGET_JVM.
                domain = Thread.GetDomain ();
-#endif // TARGET_JVM
        }
 
        [TearDown]
@@ -188,27 +176,17 @@ public class AssemblyNameTest {
                Assert.IsNull (an.CultureInfo, "CultureInfo");
                Assert.IsNull (an.EscapedCodeBase, "EscapedCodeBase");
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "Flags");
-#if NET_2_0
                Assert.AreEqual (String.Empty, an.FullName, "FullName");
-#else
-               Assert.IsNull (an.FullName, "FullName");
-#endif
                Assert.AreEqual (AssemblyHashAlgorithm.None, an.HashAlgorithm, "HashAlgorithm");
                Assert.IsNull (an.KeyPair, "KeyPair");
                Assert.IsNull (an.Name, "Name");
-#if NET_2_0
                Assert.AreEqual (ProcessorArchitecture.None, an.ProcessorArchitecture, "PA");
-#endif
                Assert.IsNull (an.Version, "Version");
                Assert.AreEqual (AssemblyVersionCompatibility.SameMachine, 
                        an.VersionCompatibility, "VersionCompatibility");
                Assert.IsNull (an.GetPublicKey (), "GetPublicKey");
                Assert.IsNull (an.GetPublicKeyToken (), "GetPublicKeyToken");
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.ToString (), "ToString");
-#else
-               Assert.AreEqual (typeof (AssemblyName).FullName, an.ToString (), "ToString");
-#endif
        }
 
        [Test]
@@ -233,11 +211,7 @@ public class AssemblyNameTest {
                an.SetPublicKey ((byte []) null);
 
                Assert.IsNull (an.GetPublicKey (), "#C1");
-#if NET_2_0
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "#C2");
-#else
-               Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#C2");
-#endif
                Assert.IsNull (an.KeyPair, "#C3");
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#C4");
 
@@ -246,11 +220,7 @@ public class AssemblyNameTest {
                an.SetPublicKey ((byte []) null);
 
                Assert.IsNull (an.GetPublicKey (), "#D1");
-#if NET_2_0
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "#D2");
-#else
-               Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#D2");
-#endif
                Assert.IsNull (an.KeyPair, "#D3");
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#D4");
 
@@ -259,11 +229,7 @@ public class AssemblyNameTest {
                an.SetPublicKey ((byte []) null);
 
                Assert.IsNull (an.GetPublicKey (), "#E1");
-#if NET_2_0
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "#E2");
-#else
-               Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#E2");
-#endif
                Assert.IsNull (an.KeyPair, "#E3");
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#E4");
 
@@ -284,11 +250,7 @@ public class AssemblyNameTest {
                an.SetPublicKeyToken (pk_token1);
 
                Assert.IsNull (an.GetPublicKey (), "#G1");
-#if NET_2_0
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "#G2");
-#else
-               Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#G2");
-#endif
                Assert.IsNull (an.KeyPair, "#G3");
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#G4");
 
@@ -299,12 +261,8 @@ public class AssemblyNameTest {
                Assert.AreEqual (0, an.GetPublicKey ().Length, "#H2");
                Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#H3");
                Assert.IsNull (an.KeyPair, "#H4");
-#if NET_2_0
                Assert.IsNotNull (an.GetPublicKeyToken (), "#H5");
                Assert.AreEqual (0, an.GetPublicKeyToken ().Length, "#H6");
-#else
-               Assert.IsNull (an.GetPublicKeyToken (), "#H5");
-#endif
 
                an = new AssemblyName ();
                an.SetPublicKey (publicKey1);
@@ -316,11 +274,7 @@ public class AssemblyNameTest {
                an.SetPublicKey ((byte []) null);
                Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#J1");
                an.SetPublicKey ((byte []) null);
-#if NET_2_0
                Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "#J2");
-#else
-               Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#J2");
-#endif
                an.SetPublicKey ((byte []) null);
                Assert.AreEqual (AssemblyNameFlags.PublicKey, an.Flags, "#J3");
                an.SetPublicKey (publicKey1);
@@ -399,9 +353,7 @@ public class AssemblyNameTest {
                Assert.AreEqual (AssemblyHashAlgorithm.SHA1, an.HashAlgorithm, "HashAlgorithm");
                Assert.IsNull (an.KeyPair, "KeyPair");
                Assert.IsNotNull (an.Name, "Name");
-#if NET_2_0
-               //Assert.AreEqual (ProcessorArchitecture.MSIL, an.ProcessorArchitecture, "PA");
-#endif
+               Assert.AreEqual (ProcessorArchitecture.MSIL, an.ProcessorArchitecture, "PA");
                Assert.AreEqual (new Version (0, 0, 0, 0), an.Version, "Version");
                Assert.AreEqual (AssemblyVersionCompatibility.SameMachine,
                        an.VersionCompatibility, "VersionCompatibility");
@@ -429,7 +381,16 @@ public class AssemblyNameTest {
        {
                an = typeof(int).Assembly.GetName ();
                Assert.IsNotNull (an.FullName, "#1");
-               Assert.AreEqual (Consts.AssemblyCorlib, an.FullName, "#2");
+
+               string AssemblyCorlib;
+#if MOBILE
+               AssemblyCorlib = "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e";
+#elif NET_4_0
+               AssemblyCorlib = "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+#else
+               AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+#endif
+               Assert.AreEqual (AssemblyCorlib, an.FullName, "#2");
        }
 
        [Test]
@@ -451,15 +412,10 @@ public class AssemblyNameTest {
 
                // tests for AssemblyName with only name
                an = new AssemblyName ();
-#if NET_2_0
                an.Flags = AssemblyNameFlags.EnableJITcompileOptimizer |
                        AssemblyNameFlags.EnableJITcompileTracking |
                        AssemblyNameFlags.PublicKey |
                        AssemblyNameFlags.Retargetable;
-#else
-               an.Flags = AssemblyNameFlags.PublicKey |
-                       AssemblyNameFlags.Retargetable;
-#endif
                an.Name = assemblyName;
                Assert.AreEqual (assemblyName + ", Retargetable=Yes", an.FullName, "#1");
                an.Flags = AssemblyNameFlags.None;
@@ -506,11 +462,7 @@ public class AssemblyNameTest {
                an.CultureInfo = new CultureInfo ("nl-BE");
                Assert.AreEqual (assemblyName + ", Culture=nl-BE", an.FullName, "#2");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#3");
-#else
-               Assert.IsNull (an.FullName, "#4");
-#endif
        }
 
        [Test]
@@ -528,11 +480,7 @@ public class AssemblyNameTest {
                an.SetPublicKey (new byte [0]);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#A3");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#A4");
-#else
-               Assert.IsNull (an.FullName, "#A4");
-#endif
 
                an = new AssemblyName ();
                an.HashAlgorithm = AssemblyHashAlgorithm.MD5;
@@ -540,19 +488,11 @@ public class AssemblyNameTest {
                an.SetPublicKey (publicKey1);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#B1");
                an.SetPublicKeyToken (new byte [] { 0x0a, 0x22 });
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=0a22", an.FullName, "#B2");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#B2");
-#endif
                an.SetPublicKeyToken ((byte []) null);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#B3");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#B4");
-#else
-               Assert.IsNull (an.FullName, "#B4");
-#endif
 
                an = new AssemblyName ();
                an.HashAlgorithm = AssemblyHashAlgorithm.None;
@@ -560,36 +500,20 @@ public class AssemblyNameTest {
                an.SetPublicKey (publicKey1);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C1");
                an.SetPublicKeyToken (new byte [] { 0x0a, 0x22 });
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=0a22", an.FullName, "#C2");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C2");
-#endif
                an.SetPublicKeyToken ((byte []) null);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C3");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#C4");
-#else
-               Assert.IsNull (an.FullName, "#C4");
-#endif
 
                an = new AssemblyName ();
                an.Name = assemblyName;
                an.SetPublicKey (new byte [0]);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#D1");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#D2");
-#else
-               Assert.IsNull (an.FullName, "#D2");
-#endif
                an.SetPublicKey (publicKey3);
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#D3");
-#else
-               Assert.IsNull (an.FullName, "#D3");
-#endif
                an.Name = assemblyName;
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token3), an.FullName, "#D4");
        }
@@ -603,7 +527,6 @@ public class AssemblyNameTest {
                an = new AssemblyName ();
                an.Name = assemblyName;
                an.SetPublicKey (keyPair);
-#if NET_2_0
                try {
                        Assert.Fail ("#A1: " + an.FullName);
                } catch (SecurityException ex) {
@@ -613,19 +536,11 @@ public class AssemblyNameTest {
                        Assert.IsNull (ex.InnerException, "#A4");
                        Assert.IsNotNull (ex.Message, "#A5");
                }
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (kp_token), an.FullName, "#A1");
-#endif
 
                an.SetPublicKeyToken (new byte [0]);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#B1");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (kp_token), an.FullName, "#B1");
-#endif
 
                an.SetPublicKeyToken ((byte []) null);
-#if NET_2_0
                try {
                        Assert.Fail ("#C1: " + an.FullName);
                } catch (SecurityException ex) {
@@ -635,22 +550,11 @@ public class AssemblyNameTest {
                        Assert.IsNull (ex.InnerException, "#C4");
                        Assert.IsNotNull (ex.Message, "#C5");
                }
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (kp_token), an.FullName, "#C1");
-#endif
 
                an.SetPublicKeyToken (new byte [0]);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#D1");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (kp_token), an.FullName, "#D1");
-#endif
                an.SetPublicKey (publicKey1);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#D2");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#D2");
-#endif
                an.SetPublicKeyToken ((byte []) null);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#D3");
        }
@@ -671,11 +575,7 @@ public class AssemblyNameTest {
                an.SetPublicKeyToken (pk_token1);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#A4");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#A5");
-#else
-               Assert.IsNull (an.FullName, "#A5");
-#endif
 
                an = new AssemblyName ();
                an.HashAlgorithm = AssemblyHashAlgorithm.MD5;
@@ -687,11 +587,7 @@ public class AssemblyNameTest {
                an.SetPublicKeyToken ((byte []) null);
                Assert.AreEqual (assemblyName, an.FullName, "#B3");
                an.Name = null;
-#if NET_2_0
                Assert.AreEqual (string.Empty, an.FullName, "#B4");
-#else
-               Assert.IsNull (an.FullName, "#B4");
-#endif
 
                an = new AssemblyName ();
                an.Name = assemblyName;
@@ -699,18 +595,10 @@ public class AssemblyNameTest {
                an.SetPublicKeyToken (pk_token1);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C1");
                an.SetPublicKey ((byte []) null);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C2");
-#else
-               Assert.AreEqual (assemblyName, an.FullName, "#C2");
-#endif
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#C3");
                an.SetPublicKey (new byte [0]);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#C4");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#C4");
-#endif
                Assert.AreEqual (pk_token1, an.GetPublicKeyToken (), "#C5");
 
                an = new AssemblyName ();
@@ -720,17 +608,9 @@ public class AssemblyNameTest {
                an.SetPublicKey (new byte [0]);
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#D2");
                an.SetPublicKeyToken (pk_token1);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#D3");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#D3");
-#endif
                an.SetPublicKey ((byte []) null);
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token1), an.FullName, "#D4");
-#else
-               Assert.AreEqual (assemblyName, an.FullName, "#D4");
-#endif
        }
 
        [Test]
@@ -806,11 +686,7 @@ public class AssemblyNameTest {
                an.Name = assemblyName;
                an.SetPublicKey (publicKey2);
                Assert.AreEqual (new byte [0], an.GetPublicKeyToken (), "#A6");
-#if NET_2_0
                Assert.AreEqual (assemblyName + ", PublicKeyToken=null", an.FullName, "#A7");
-#else
-               Assert.AreEqual (assemblyName + ", PublicKeyToken=" + GetTokenString (pk_token2), an.FullName, "#A7");
-#endif
 
                an = new AssemblyName ();
                an.HashAlgorithm = AssemblyHashAlgorithm.MD5;
@@ -832,7 +708,6 @@ public class AssemblyNameTest {
 
                an = new AssemblyName ();
                an.SetPublicKey (keyPair);
-#if NET_2_0
                try {
                        an.GetPublicKeyToken ();
                        Assert.Fail ("#E1");
@@ -843,9 +718,6 @@ public class AssemblyNameTest {
                        Assert.IsNull (ex.InnerException, "#E4");
                        Assert.IsNotNull (ex.Message, "#E5");
                }
-#else
-               Assert.AreEqual (kp_token, an.GetPublicKeyToken (), "#E1");
-#endif
        }
 
        [Test]
@@ -873,11 +745,7 @@ public class AssemblyNameTest {
        {
                Assembly a = Assembly.GetExecutingAssembly ();
                an = a.GetName ();
-#if NET_2_0
                Assert.AreEqual (new byte [0], an.GetPublicKeyToken ());
-#else
-               Assert.IsNull (an.GetPublicKeyToken ());
-#endif
        }
 
        static int nameIndex = 0;
@@ -889,7 +757,7 @@ public class AssemblyNameTest {
                return assemblyName;
        }
 
-#if !TARGET_JVM && !MOBILE // Reflection.Emit is not supported for TARGET_JVM.
+#if !MOBILE
        private Assembly GenerateAssembly (AssemblyName name) 
        {
                AssemblyBuilder ab = domain.DefineDynamicAssembly (
@@ -943,11 +811,7 @@ public class AssemblyNameTest {
                a = GenerateAssembly (name);
                culture = a.GetName ().CultureInfo;
                Assert.IsFalse (culture.IsNeutralCulture, "#C1");
-#if NET_2_0
                Assert.IsFalse (culture.IsReadOnly, "#C2");
-#else
-               Assert.IsTrue (culture.IsReadOnly, "#C2");
-#endif
                Assert.AreEqual (127, culture.LCID, "#C3");
                Assert.AreEqual (string.Empty, culture.Name, "#C4");
                Assert.IsFalse (culture.UseUserOverride, "#C5");
@@ -956,11 +820,7 @@ public class AssemblyNameTest {
                name = a.GetName ();
                culture = name.CultureInfo;
                Assert.IsFalse (culture.IsNeutralCulture, "#D1");
-#if NET_2_0
                Assert.IsFalse (culture.IsReadOnly, "#D2");
-#else
-               Assert.IsTrue (culture.IsReadOnly, "#D2");
-#endif
                Assert.AreEqual (127, culture.LCID, "#D3");
                Assert.AreEqual (string.Empty, culture.Name, "#D4");
                Assert.IsFalse (culture.UseUserOverride, "#D5");
@@ -969,11 +829,7 @@ public class AssemblyNameTest {
                name = a.GetName ();
                culture = name.CultureInfo;
                Assert.IsFalse (culture.IsNeutralCulture, "#E1");
-#if NET_2_0
                Assert.IsFalse (culture.IsReadOnly, "#E2");
-#else
-               Assert.IsTrue (culture.IsReadOnly, "#E2");
-#endif
                Assert.AreEqual (127, culture.LCID, "#E3");
                Assert.AreEqual (string.Empty, culture.Name, "#E4");
                Assert.IsFalse (culture.UseUserOverride, "#E5");
@@ -985,11 +841,7 @@ public class AssemblyNameTest {
                        Assert.IsFalse (culture.IsReadOnly, "#F2:" + an.Name);
                        Assert.AreEqual (127, culture.LCID, "#F3:" + an.Name);
                        Assert.AreEqual (string.Empty, culture.Name, "#F4:" + an.Name);
-#if NET_2_0
                        Assert.IsFalse (culture.UseUserOverride, "#F5:" + an.Name);
-#else
-                       Assert.IsTrue (culture.UseUserOverride, "#F5:" + an.Name);
-#endif
                }
        }
 
@@ -1016,7 +868,6 @@ public class AssemblyNameTest {
        }
 
        [Test]
-       [Category ("NotWorking")]
        public void Version_Dynamic ()
        {
                AssemblyName name = GenAssemblyName ();
@@ -1029,23 +880,15 @@ public class AssemblyNameTest {
                name.Version = new Version (1, 2, 3);
 
                ab = GenerateDynamicAssembly (name);
-#if NET_2_0
                Assert.AreEqual ("1.2.3.0", ab.GetName ().Version.ToString (), "1.2.3.0 dynamic");
-#else
-               Assert.AreEqual ("1.2.3.65535", ab.GetName ().Version.ToString (), "1.2.3.0 dynamic");
-#endif
 
                name = GenAssemblyName ();
                name.Version = new Version (1, 2);
 
                ab = GenerateDynamicAssembly (name);
-#if NET_2_0
                Assert.AreEqual ("1.2.0.0", ab.GetName ().Version.ToString (), "1.2.0.0 dynamic");
-#else
-               Assert.AreEqual ("1.2.65535.65535", ab.GetName ().Version.ToString (), "1.2.0.0 dynamic");
-#endif
        }
-#endif // TARGET_JVM
+#endif
 
        [Test]
        public void HashAlgorithm ()
@@ -1136,7 +979,6 @@ public class AssemblyNameTest {
                Assert.AreEqual (an.GetPublicKeyToken (), dsAssemblyName.GetPublicKeyToken (), "PublicToken");
        }
 
-#if !TARGET_JVM // Assemblyname.GetObjectData not implemented yet for TARGET_JVM
        [Test]
        public void GetObjectData_Info_Null ()
        {
@@ -1152,7 +994,6 @@ public class AssemblyNameTest {
                        Assert.AreEqual ("info", ex.ParamName, "#6");
                }
        }
-#endif // TARGET_JVM
 
        [Test]
        public void Clone_Corlib ()
@@ -1168,9 +1009,7 @@ public class AssemblyNameTest {
                Assert.AreEqual (an.HashAlgorithm, clone.HashAlgorithm, "HashAlgorithm");
                Assert.AreEqual (an.KeyPair, clone.KeyPair, "KeyPair");
                Assert.AreEqual (an.Name, clone.Name, "Name");
-#if NET_2_0
-               Assert.AreEqual (an.ProcessorArchitecture, clone.ProcessorArchitecture, "PA");
-#endif
+               //Assert.AreEqual (an.ProcessorArchitecture, clone.ProcessorArchitecture, "PA");
                Assert.AreEqual (an.Version, clone.Version, "Version");
                Assert.AreEqual (an.VersionCompatibility, clone.VersionCompatibility, "VersionCompatibility");
                Assert.AreEqual (an.GetPublicKey (), clone.GetPublicKey (), "GetPublicKey");
@@ -1188,17 +1027,11 @@ public class AssemblyNameTest {
                Assert.IsNull (clone.CultureInfo, "CultureInfo");
                Assert.IsNull (clone.EscapedCodeBase, "EscapedCodeBase");
                Assert.AreEqual (AssemblyNameFlags.None, clone.Flags, "Flags");
-#if NET_2_0
                Assert.AreEqual (String.Empty, clone.FullName, "FullName");
-#else
-               Assert.IsNull (clone.FullName, "FullName");
-#endif
                Assert.AreEqual (AssemblyHashAlgorithm.None, clone.HashAlgorithm, "HashAlgorithm");
                Assert.IsNull (clone.KeyPair, "KeyPair");
                Assert.IsNull (clone.Name, "Name");
-#if NET_2_0
                Assert.AreEqual (ProcessorArchitecture.None, clone.ProcessorArchitecture, "PA");
-#endif
                Assert.IsNull (clone.Version, "Version");
                Assert.AreEqual (AssemblyVersionCompatibility.SameMachine, 
                        clone.VersionCompatibility, "VersionCompatibility");
@@ -1218,9 +1051,7 @@ public class AssemblyNameTest {
                Assert.AreEqual (an.HashAlgorithm, clone.HashAlgorithm, "HashAlgorithm");
                Assert.AreEqual (an.KeyPair, clone.KeyPair, "KeyPair");
                Assert.AreEqual (an.Name, clone.Name, "Name");
-#if NET_2_0
-               //Assert.AreEqual (ProcessorArchitecture.MSIL, clone.ProcessorArchitecture, "PA");
-#endif
+               Assert.AreEqual (an.ProcessorArchitecture, clone.ProcessorArchitecture, "PA");
                Assert.AreEqual (an.Version, clone.Version, "Version");
                Assert.AreEqual (an.VersionCompatibility, clone.VersionCompatibility, "VersionCompatibility");
                Assert.AreEqual (an.GetPublicKey (), clone.GetPublicKey (), "GetPublicKey");
@@ -1251,11 +1082,7 @@ public class AssemblyNameTest {
                                // process
                                Assert.AreEqual (typeof (FileLoadException), ex.GetType (), "#2");
                                Assert.IsNotNull (ex.FileName, "#3");
-#if NET_2_0
                                Assert.AreEqual (file, ex.FileName, "#4");
-#else
-                               Assert.IsTrue (ex.FileName.IndexOf ("loadfailure.dll") != -1, "#4");
-#endif
                                Assert.IsNull (ex.InnerException, "#5");
                                Assert.IsNotNull (ex.Message, "#6");
                        }
@@ -1276,11 +1103,7 @@ public class AssemblyNameTest {
                } catch (BadImageFormatException ex) {
                        Assert.AreEqual (typeof (BadImageFormatException), ex.GetType (), "#2");
                        Assert.IsNotNull (ex.FileName, "#3");
-#if NET_2_0
                        Assert.AreEqual (file, ex.FileName, "#4");
-#else
-                       Assert.IsTrue (ex.FileName.IndexOf ("badimage.dll") != -1, "#4");
-#endif
                        Assert.IsNull (ex.InnerException, "#5");
                        Assert.IsNotNull (ex.Message, "#6");
                } finally {
@@ -1309,7 +1132,6 @@ public class AssemblyNameTest {
                return tokenString;
        }
 
-#if NET_2_0
        [Test] // ctor (String)
        public void Constructor1_Name ()
        {
@@ -1331,10 +1153,13 @@ public class AssemblyNameTest {
                Assert.IsNull (an.GetPublicKey (), "GetPublicKey");
                Assert.IsNull (an.GetPublicKeyToken (), "GetPublicKeyToken");
                Assert.AreEqual ("TestAssembly", an.ToString (), "ToString");
+#if NET_4_5
+               Assert.IsNull (an.CultureName, "CultureName");
+               Assert.AreEqual (AssemblyContentType.Default, an.ContentType, "ContentType");
+#endif
        }
 
        [Test] // ctor (String)
-       [Category("TargetJvmNotWorking")] // Not yet supported for TARGET_JVM.
        public void Constructor1_Full ()
        {
                const string assemblyName = "TestAssembly";
@@ -1484,7 +1309,6 @@ public class AssemblyNameTest {
        }
 
        [Test] // ctor (String)
-       [Category ("NotWorking")] // bug #351708
        public void Constructor1_ProcessorArchitecture ()
        {
                const string assemblyName = "TestAssembly";
@@ -1517,7 +1341,6 @@ public class AssemblyNameTest {
        }
 
        [Test] // ctor (String)
-       [Category ("NotWorking")] // bug #351708
        public void Constructor1_ProcessorArchitecture_Incomplete ()
        {
                const string assemblyName = "TestAssembly";
@@ -1534,7 +1357,6 @@ public class AssemblyNameTest {
        }
 
        [Test] // ctor (String)
-       [Category ("NotWorking")] // bug #351708
        public void Constructor1_ProcessorArchitecture_Invalid ()
        {
                const string assemblyName = "TestAssembly";
@@ -1939,7 +1761,6 @@ public class AssemblyNameTest {
        }
 
        [Test] // ctor (String)
-       [Category("TargetJvmNotWorking")] // Not yet supported for TARGET_JVM.
        public void Constructor1_Version ()
        {
                const string assemblyName = "TestAssembly";
@@ -2007,7 +1828,32 @@ public class AssemblyNameTest {
 
                Assert.AreEqual (fullName, an.FullName);
        }
-#endif
+
+       [Test]
+       public void ReferenceMatchesDefinition_Compares_Only_SimpleName ()
+       {
+               var an1 = new AssemblyName ("TestDll, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089");
+               var an2 = new AssemblyName ("TestDll, Version=2.0.0.2001, Culture=en-US, PublicKeyToken=ab7a5c561934e089");
+
+               var an3 = new AssemblyName ("TestDll");
+               var an4 = new AssemblyName ("tesTDlL");
+
+               var an5 = new AssemblyName ("TestDll");
+               var an6 = new AssemblyName ("TestDll2");
+               
+               Assert.IsTrue (AssemblyName.ReferenceMatchesDefinition (an1, an2));
+               Assert.IsTrue (AssemblyName.ReferenceMatchesDefinition (an3, an4));
+               Assert.IsFalse (AssemblyName.ReferenceMatchesDefinition (an5, an6));
+       }
+
+       [Test]
+       public void CultureNameInvariant ()
+       {
+               var an = new AssemblyName ("TestDll");
+               an.CultureInfo = new CultureInfo (CultureInfo.InvariantCulture.LCID);
+
+               Assert.AreEqual ("", an.CultureName);
+       }
 }
 
 }