Merge pull request #268 from pcc/menudeactivate
[mono.git] / mcs / class / System / Test / System.ComponentModel / ComponentResourceManagerTest.cs
1 //
2 // System.ComponentModel.ComponentResourceManager test cases
3 //
4 // Authors:
5 //      Gert Driesen (drieseng@users.sourceforge.net)
6 //
7 // (c) 2007 Gert Driesen
8 //
9
10 #if !MOBILE
11
12 using System;
13 using System.Collections;
14 using System.ComponentModel;
15 using System.Globalization;
16 using System.Reflection;
17 using System.Resources;
18
19 using NUnit.Framework;
20
21 namespace MonoTests.System.ComponentModel
22 {
23         [TestFixture]
24         public class ComponentResourceManagerTest
25         {
26                 [Test]
27                 public void Constructor0 ()
28                 {
29                         MockComponentResourceManager crm = new MockComponentResourceManager ();
30                         Assert.IsNull (crm.BaseName, "#1");
31                         Assert.IsNull (crm.BaseNameField, "#2");
32                         Assert.IsFalse (crm.IgnoreCase, "#3");
33                         Assert.IsNull (crm.MainAssembly, "#4");
34                         Assert.IsNull (crm.ResourceSets, "#5");
35                         Assert.IsNotNull (crm.ResourceSetType, "#6");
36                         Assert.IsTrue (typeof (ResourceSet).IsAssignableFrom (crm.ResourceSetType), "#7");
37                         //Assert.IsFalse (typeof (ResourceSet) == crm.ResourceSetType, "#7");
38                 }
39
40                 [Test]
41                 public void Constructor1 ()
42                 {
43                         MockComponentResourceManager crm = new MockComponentResourceManager (
44                                 typeof (Component));
45                         Assert.IsNotNull (crm.BaseName, "#1");
46                         Assert.AreEqual ("Component", crm.BaseName, "#2");
47                         Assert.IsNotNull (crm.BaseNameField, "#3");
48                         Assert.AreEqual ("Component", crm.BaseNameField, "#4");
49                         Assert.IsFalse (crm.IgnoreCase, "#5");
50                         Assert.IsNotNull (crm.MainAssembly, "#6");
51                         Assert.AreEqual (typeof (Component).Assembly, crm.MainAssembly, "#7");
52                         Assert.IsNotNull (crm.ResourceSets, "#8");
53                         Assert.AreEqual (0, crm.ResourceSets.Count, "#9");
54                         Assert.IsNotNull (crm.ResourceSetType, "#10");
55                         Assert.IsTrue (typeof (ResourceSet).IsAssignableFrom (crm.ResourceSetType), "#11");
56                         //Assert.IsFalse (typeof (ResourceSet) == crm.ResourceSetType, "#12");
57                 }
58
59                 [Test]
60                 public void Constructor1_ResourceSource_Null ()
61                 {
62                         try {
63                                 new ComponentResourceManager ((Type) null);
64                                 Assert.Fail ("#1");
65                         } catch (ArgumentNullException ex) {
66                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
67                                 Assert.IsNull (ex.InnerException, "#3");
68                                 Assert.IsNotNull (ex.Message, "#4");
69                                 Assert.IsNotNull (ex.ParamName, "#5");
70                                 Assert.AreEqual ("resourceSource", ex.ParamName, "#6");
71                         }
72                 }
73
74                 [Test]
75                 public void ApplyResources_ObjectName_Null ()
76                 {
77                         ComponentResourceManager crm = new ComponentResourceManager ();
78                         try {
79                                 crm.ApplyResources (new object (), (string) null);
80                                 Assert.Fail ("#A1");
81                         } catch (ArgumentNullException ex) {
82                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2");
83                                 Assert.IsNull (ex.InnerException, "#A3");
84                                 Assert.IsNotNull (ex.Message, "#A4");
85                                 Assert.IsNotNull (ex.ParamName, "#A5");
86                                 Assert.AreEqual ("objectName", ex.ParamName, "#A6");
87                         }
88
89                         try {
90                                 crm.ApplyResources (new object (), (string) null, CultureInfo.InvariantCulture);
91                                 Assert.Fail ("#B1");
92                         } catch (ArgumentNullException ex) {
93                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2");
94                                 Assert.IsNull (ex.InnerException, "#B3");
95                                 Assert.IsNotNull (ex.Message, "#B4");
96                                 Assert.IsNotNull (ex.ParamName, "#B5");
97                                 Assert.AreEqual ("objectName", ex.ParamName, "#B6");
98                         }
99                 }
100
101                 [Test]
102                 public void ApplyResources_Value_Null ()
103                 {
104                         ComponentResourceManager crm = new ComponentResourceManager ();
105                         try {
106                                 crm.ApplyResources (null, "$this");
107                                 Assert.Fail ("#A1");
108                         } catch (ArgumentNullException ex) {
109                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2");
110                                 Assert.IsNull (ex.InnerException, "#A3");
111                                 Assert.IsNotNull (ex.Message, "#A4");
112                                 Assert.IsNotNull (ex.ParamName, "#A5");
113                                 Assert.AreEqual ("value", ex.ParamName, "#A6");
114                         }
115
116                         try {
117                                 crm.ApplyResources (null, "$this", CultureInfo.InvariantCulture);
118                                 Assert.Fail ("#B1");
119                         } catch (ArgumentNullException ex) {
120                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2");
121                                 Assert.IsNull (ex.InnerException, "#B3");
122                                 Assert.IsNotNull (ex.Message, "#B4");
123                                 Assert.IsNotNull (ex.ParamName, "#B5");
124                                 Assert.AreEqual ("value", ex.ParamName, "#B6");
125                         }
126                 }
127
128                 [Test]
129                 public void IgnoreCase ()
130                 {
131                         ComponentResourceManager crm = new ComponentResourceManager ();
132                         Assert.IsFalse (crm.IgnoreCase, "#1");
133                         crm.IgnoreCase = true;
134                         Assert.IsTrue (crm.IgnoreCase, "#2");
135                 }
136
137                 class MockComponentResourceManager : ComponentResourceManager
138                 {
139                         public MockComponentResourceManager ()
140                         {
141                         }
142
143                         public MockComponentResourceManager (Type resourceSource)
144                                 : base (resourceSource)
145                         {
146                         }
147
148                         public new string BaseNameField {
149                                 get { return base.BaseNameField; }
150                         }
151
152                         public new Assembly MainAssembly {
153                                 get { return base.MainAssembly; }
154                         }
155
156                         public new Hashtable ResourceSets {
157                                 get { return base.ResourceSets; }
158                         }
159                 }
160         }
161 }
162
163 #endif