2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / corlib / Test / System.Reflection / AssemblyDelaySignAttributeTest.cs
1 // AssemblyDelaySignAttributeTest.cs\r
2 //\r
3 // Author: Vineeth N <nvineeth@yahoo.com>\r
4 //\r
5 // (C) 2004 Ximian, Inc. http://www.ximian.com\r
6 //\r
7 using System;\r
8 using System.Threading;\r
9 using System.Reflection;\r
10 using System.Reflection.Emit;\r
11 using NUnit.Framework;\r
12 \r
13 namespace MonoTests.System.Reflection {\r
14 \r
15         /// <summary>\r
16         /// Summary description for AssemblyDelaySignAttributeTest.\r
17         /// </summary>\r
18         [TestFixture]\r
19         public class AssemblyDelaySignAttributeTest:Assertion\r
20         {\r
21                 private AssemblyBuilder dynAssembly;\r
22                 AssemblyName dynAsmName = new AssemblyName ();\r
23                 AssemblyDelaySignAttribute attr;\r
24                 \r
25                 public AssemblyDelaySignAttributeTest ()\r
26                 {\r
27                         //create a dynamic assembly with the required attribute\r
28                         //and check for the validity\r
29 \r
30                         dynAsmName.Name = "TestAssembly";\r
31 \r
32                         dynAssembly = Thread.GetDomain ().DefineDynamicAssembly (\r
33                                 dynAsmName,AssemblyBuilderAccess.Run\r
34                                 );\r
35 \r
36                         // Set the required Attribute of the assembly.\r
37                         Type attribute = typeof (AssemblyDelaySignAttribute);\r
38                         ConstructorInfo ctrInfo = attribute.GetConstructor (\r
39                                 new Type [] { typeof (bool) }\r
40                                 );\r
41                         CustomAttributeBuilder attrBuilder =\r
42                                 new CustomAttributeBuilder (ctrInfo, new object [1] { false });\r
43                         dynAssembly.SetCustomAttribute (attrBuilder);\r
44                         object [] attributes = dynAssembly.GetCustomAttributes (true);\r
45                         attr = attributes [0] as AssemblyDelaySignAttribute;\r
46                 }\r
47                 \r
48                 [Test]\r
49                 public void DelaySignTest ()\r
50                 {\r
51                         AssertEquals ("#Testing DelaySign",\r
52                                 attr.DelaySign,\r
53                                 false);\r
54                 }\r
55 \r
56                 [Test]\r
57                 public void TypeIdTest ()\r
58                 {\r
59                         AssertEquals ("#testing Typeid",\r
60                                 attr.TypeId,\r
61                                 typeof (AssemblyDelaySignAttribute)\r
62                                 );\r
63                 }\r
64 \r
65                 [Test]\r
66                 public void MatchTestForTrue ()\r
67                 {\r
68                         AssertEquals ("#testing Match method-- for true",\r
69                                 attr.Match (attr),\r
70                                 true);\r
71                 }\r
72                 [Test]\r
73                 public void MatchTestForFalse ()\r
74                 {\r
75                         AssertEquals ("#testing Match method-- for false",\r
76                                 attr.Match (new AssemblyDelaySignAttribute (true)),\r
77                                 false);\r
78                 }\r
79         }\r
80 }\r
81 \r