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;
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 = {
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,
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 };
Directory.CreateDirectory (tempDir);
-#if !TARGET_JVM // Thread.GetDomain is not supported for TARGET_JVM.
domain = Thread.GetDomain ();
-#endif // TARGET_JVM
}
[TearDown]
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]
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");
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");
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");
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");
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);
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);
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");
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";
+ AssemblyCorlib = "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
#endif
Assert.AreEqual (AssemblyCorlib, an.FullName, "#2");
}
// 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;
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]
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;
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;
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");
}
an = new AssemblyName ();
an.Name = assemblyName;
an.SetPublicKey (keyPair);
-#if NET_2_0
try {
Assert.Fail ("#A1: " + an.FullName);
} catch (SecurityException ex) {
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) {
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");
}
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;
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;
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 ();
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]
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;
an = new AssemblyName ();
an.SetPublicKey (keyPair);
-#if NET_2_0
try {
an.GetPublicKeyToken ();
Assert.Fail ("#E1");
Assert.IsNull (ex.InnerException, "#E4");
Assert.IsNotNull (ex.Message, "#E5");
}
-#else
- Assert.AreEqual (kp_token, an.GetPublicKeyToken (), "#E1");
-#endif
}
[Test]
{
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;
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 (
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");
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");
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");
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
}
}
}
[Test]
- [Category ("NotWorking")]
public void Version_Dynamic ()
{
AssemblyName name = GenAssemblyName ();
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 ()
Assert.AreEqual (an.GetPublicKeyToken (), dsAssemblyName.GetPublicKeyToken (), "PublicToken");
}
-#if !TARGET_JVM // Assemblyname.GetObjectData not implemented yet for TARGET_JVM
[Test]
public void GetObjectData_Info_Null ()
{
Assert.AreEqual ("info", ex.ParamName, "#6");
}
}
-#endif // TARGET_JVM
[Test]
public void Clone_Corlib ()
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");
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");
// 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");
}
} 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 {
}
[Test]
+ [Category ("AndroidNotWorking")] // Accessing assemblies by asm.Location is not supported
public void GetAssemblyName_CodeBase ()
{
Assembly execAssembly = Assembly.GetExecutingAssembly ();
return tokenString;
}
-#if NET_2_0
[Test] // ctor (String)
public void Constructor1_Name ()
{
Assert.IsNull (an.GetPublicKey (), "GetPublicKey");
Assert.IsNull (an.GetPublicKeyToken (), "GetPublicKeyToken");
Assert.AreEqual ("TestAssembly", an.ToString (), "ToString");
+ Assert.IsNull (an.CultureName, "CultureName");
+ Assert.AreEqual (AssemblyContentType.Default, an.ContentType, "ContentType");
}
[Test] // ctor (String)
- [Category("TargetJvmNotWorking")] // Not yet supported for TARGET_JVM.
public void Constructor1_Full ()
{
const string assemblyName = "TestAssembly";
try {
new AssemblyName (assemblyName + ", Culture=aa-AA");
Assert.Fail ("#1");
-#if NET_4_0
} catch (CultureNotFoundException ex) {
}
-#else
- } catch (ArgumentException ex) {
- // Culture name 'aa-aa' is not supported
- Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
- Assert.IsNull (ex.InnerException, "#3");
- Assert.IsNotNull (ex.Message, "#4");
- Assert.IsNotNull (ex.ParamName, "#5");
- Assert.AreEqual ("name", ex.ParamName, "#6");
- }
-#endif
}
[Test] // ctor (String)
- [Category ("NotWorking")] // bug #351708
public void Constructor1_ProcessorArchitecture ()
{
const string assemblyName = "TestAssembly";
}
[Test] // ctor (String)
- [Category ("NotWorking")] // bug #351708
public void Constructor1_ProcessorArchitecture_Incomplete ()
{
const string assemblyName = "TestAssembly";
}
[Test] // ctor (String)
- [Category ("NotWorking")] // bug #351708
public void Constructor1_ProcessorArchitecture_Invalid ()
{
const string assemblyName = "TestAssembly";
}
[Test] // ctor (String)
- [Category("TargetJvmNotWorking")] // Not yet supported for TARGET_JVM.
public void Constructor1_Version ()
{
const string assemblyName = "TestAssembly";
}
}
+ [Test] // ctor (String)
+ public void Constructor1_Quoted ()
+ {
+ AssemblyName an;
+
+ an = new AssemblyName ("'System', Version=\"10.0.0.0\", Culture='Neutral', PublicKeyToken='b67a5c561934e089', Retargetable='Yes', ProcessorArchitecture='AMD64'");
+ Assert.AreEqual ("System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b67a5c561934e089, Retargetable=Yes", an.ToString ());
+ Assert.AreEqual (ProcessorArchitecture.Amd64, an.ProcessorArchitecture, "Amd64");
+ }
+
+ [Test] // ctor (String)
+ public void Constructor1_Quoted_Invalid ()
+ {
+ AssemblyName an;
+
+ try {
+ an = new AssemblyName ("System, Version=\"10.0.0.0'");
+ Assert.Fail ("#1");
+ } catch (FileLoadException) {
+ }
+ }
+
[Test (Description="Xamarin bug #99 - whitespaces in key=value")]
public void WhiteSpaceInKeyValue ()
{
Assert.IsTrue (AssemblyName.ReferenceMatchesDefinition (an3, an4));
Assert.IsFalse (AssemblyName.ReferenceMatchesDefinition (an5, an6));
}
-#endif
+
+ [Test]
+ public void CultureNameInvariant ()
+ {
+ var an = new AssemblyName ("TestDll");
+ an.CultureInfo = new CultureInfo (CultureInfo.InvariantCulture.LCID);
+
+ Assert.AreEqual ("", an.CultureName);
+ }
+
+ [Test]
+ public void TestDecodingEcmaKey ()
+ {
+ var x = new AssemblyName( "System, PublicKey=00000000000000000400000000000000" );
+ Assert.IsNull (x.GetPublicKey (), "#1");
+ Assert.IsNotNull (x.GetPublicKeyToken (), "#2");
+
+ var t = x.GetPublicKeyToken ();
+ Assert.AreEqual (8, t.Length, "#3");
+
+ Assert.AreEqual (0xB7, t [0], "#4.0");
+ Assert.AreEqual (0x7A, t [1], "#4.1");
+ Assert.AreEqual (0x5C, t [2], "#4.2");
+ Assert.AreEqual (0x56, t [3], "#4.3");
+ Assert.AreEqual (0x19, t [4], "#4.4");
+ Assert.AreEqual (0x34, t [5], "#4.5");
+ Assert.AreEqual (0xE0, t [6], "#4.6");
+ Assert.AreEqual (0x89, t [7], "#4.7");
+ }
}
}