merging the Mainsoft branch to the trunk
[mono.git] / mcs / class / corlib / Test / System.Reflection / AssemblyInformationalVersionAttributeTest.cs
1 // AssemblyInformationalVersionAttributeTest.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         /// Test Fixture for AssemblyInformationalVersionAttribute.\r
17         /// </summary>\r
18         [TestFixture]\r
19         public class AssemblyInformationalVersionAttributeTest : Assertion {\r
20 \r
21                 private AssemblyBuilder dynAssembly;\r
22                 AssemblyName dynAsmName = new AssemblyName ();\r
23                 AssemblyInformationalVersionAttribute attr;\r
24                 \r
25                 public AssemblyInformationalVersionAttributeTest ()\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 (AssemblyInformationalVersionAttribute);\r
38                         ConstructorInfo ctrInfo = attribute.GetConstructor (\r
39                                 new Type [] { typeof (string) }\r
40                                 );\r
41                         CustomAttributeBuilder attrBuilder =\r
42                                 new CustomAttributeBuilder (ctrInfo, new object [1] { "2.0.0.0" });\r
43                         dynAssembly.SetCustomAttribute (attrBuilder);\r
44                         object [] attributes = dynAssembly.GetCustomAttributes (true);\r
45                         attr = attributes [0] as AssemblyInformationalVersionAttribute;\r
46                 }\r
47 \r
48                 [Test]\r
49                 public void InformationalVersionTest ()\r
50                 {\r
51                         AssertEquals ("#Testing InformationalVersion",\r
52                                 attr.InformationalVersion,\r
53                                 "2.0.0.0");\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 (AssemblyInformationalVersionAttribute)\r
62                                 );\r
63 \r
64                 }\r
65 \r
66                 [Test]\r
67                 public void MatchTestForTrue ()\r
68                 {\r
69                         AssertEquals ("#testing Match method-- for true",\r
70                                 attr.Match (attr),\r
71                                 true);\r
72                 }\r
73                 [Test]\r
74                 public void MatchTestForFalse ()\r
75                 {\r
76                         \r
77                         AssertEquals ("#testing Match method-- for false",\r
78                                 attr.Match (new AssemblyInformationalVersionAttribute ("Descrptn")),\r
79                                 false);\r
80                 }\r
81         }\r
82 }\r
83 \r