In tests/attributes:
[mono.git] / mcs / class / corlib / Test / System.Reflection / AssemblyFileVersionAttributeTest.cs
1 // AssemblyFileVersionAttributeTest.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 AssemblyFileVersionAttributeTest.\r
17         /// </summary>\r
18         [TestFixture]\r
19         public class AssemblyFileVersionAttributeTest : Assertion {\r
20 \r
21                 private AssemblyBuilder dynAssembly;\r
22                 AssemblyName dynAsmName = new AssemblyName ();\r
23                 AssemblyFileVersionAttribute attr;\r
24                 \r
25                 public AssemblyFileVersionAttributeTest ()\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 (AssemblyFileVersionAttribute);\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] { "1.0.0.0" });\r
43                         dynAssembly.SetCustomAttribute (attrBuilder);\r
44                         object [] attributes = dynAssembly.GetCustomAttributes (true);\r
45                         attr = attributes [0] as AssemblyFileVersionAttribute;\r
46                 }\r
47 \r
48                 [Test]\r
49                 [ExpectedException (typeof (ArgumentNullException))]\r
50                 public void ArgumentNullExceptionTest()\r
51                 {\r
52                         string version = null;\r
53                         new AssemblyFileVersionAttribute (version);\r
54                 }\r
55                 \r
56                 [Test]\r
57                 public void FileVersionTest ()\r
58                 {\r
59                         AssertEquals ("#Testing FileVersion",\r
60                                 attr.Version,\r
61                                 "1.0.0.0");\r
62                 }\r
63 \r
64                 [Test]\r
65                 public void TypeIdTest ()\r
66                 {\r
67                         AssertEquals ("#testing Typeid",\r
68                                 attr.TypeId,\r
69                                 typeof (AssemblyFileVersionAttribute)\r
70                                 );\r
71                 }\r
72 \r
73                 [Test]\r
74                 public void MatchTestForTrue ()\r
75                 {\r
76                         AssertEquals ("#testing Match method-- for true",\r
77                                 attr.Match (attr),\r
78                                 true);\r
79                 }\r
80 \r
81                 [Test]\r
82                 public void MatchTestForFalse ()\r
83                 {\r
84                         AssertEquals ("#testing Match method-- for false",\r
85                                 attr.Match (new AssemblyFileVersionAttribute ("Descrptn")),\r
86                                 false);\r
87                 }\r
88         }\r
89 }\r
90 \r