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