1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
using System;
using Mono.Cecil;
using NUnit.Framework;
namespace Mono.Cecil.Tests {
[TestFixture]
public class AssemblyTests : BaseTestFixture {
[Test]
public void Name ()
{
TestModule ("hello.exe", module => {
var name = module.Assembly.Name;
Assert.IsNotNull (name);
Assert.AreEqual ("hello", name.Name);
Assert.AreEqual ("", name.Culture);
Assert.AreEqual (new Version (0, 0, 0, 0), name.Version);
Assert.AreEqual (AssemblyHashAlgorithm.SHA1, name.HashAlgorithm);
});
}
[Test]
public void ParseLowerCaseNameParts ()
{
var name = AssemblyNameReference.Parse ("Foo, version=2.0.0.0, culture=fr-FR");
Assert.AreEqual ("Foo", name.Name);
Assert.AreEqual (2, name.Version.Major);
Assert.AreEqual (0, name.Version.Minor);
Assert.AreEqual ("fr-FR", name.Culture);
}
[Test]
public void ZeroVersion ()
{
var name = new AssemblyNameReference ("Foo", null);
Assert.AreEqual ("0.0.0.0", name.Version.ToString (fieldCount: 4));
Assert.AreEqual ("Foo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", name.FullName);
name = new AssemblyNameReference ("Foo", new Version (0, 0, 0, 0));
Assert.AreEqual ("0.0.0.0", name.Version.ToString (fieldCount: 4));
Assert.AreEqual ("Foo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", name.FullName);
}
[Test]
public void NoBuildOrMajor ()
{
var name = new AssemblyNameReference ("Foo", new Version (0, 0));
Assert.AreEqual ("Foo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", name.FullName);
name = new AssemblyNameReference ("Foo", new Version (0, 0, 0));
Assert.AreEqual ("Foo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", name.FullName);
}
[Test]
public void Retargetable ()
{
TestModule ("RetargetableExample.dll", module => {
var type = module.Types [1];
var property = type.Properties [0];
var attribute = property.CustomAttributes [0];
var argumentType = ((CustomAttributeArgument) attribute.ConstructorArguments [0].Value).Type;
var reference = (AssemblyNameReference) argumentType.Scope;
Assert.AreEqual (
"System.Data, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes",
reference.FullName);
}, verify: !Platform.OnMono);
}
[Test]
public void SystemRuntime ()
{
TestModule ("System.Runtime.dll", module => {
Assert.AreEqual ("System.Runtime", module.Assembly.Name.Name);
Assert.AreEqual (1, module.AssemblyReferences.Count);
Assert.AreNotEqual (module, module.TypeSystem.CoreLibrary);
Assert.AreEqual (module.AssemblyReferences [0], module.TypeSystem.CoreLibrary);
}, verify: !Platform.OnMono);
}
}
}
|