3 // NUnit Test Cases for System.Resources.ResourceManager
6 // Robert Jordan (robertj@gmx.net)
8 // Copyright (C) 2005 Novell, Inc. (http://www.novell.com)
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 using System.Collections;
34 using System.Globalization;
35 using System.Resources;
36 using System.Threading;
39 using NUnit.Framework;
41 namespace MonoTests.System.Resources
43 class ResourceManagerPoker : ResourceManager
45 public ResourceManagerPoker ()
47 BaseNameField = String.Format ("Test{0}resources{0}MyResources", Path.DirectorySeparatorChar);
50 public Hashtable GetResourceSets ()
52 return base.ResourceSets;
55 public void InitResourceSets ()
57 base.ResourceSets = new Hashtable ();
62 public class ResourceManagerTest
65 public void TestInvariantCulture ()
67 Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
68 ResourceManager rm = ResourceManager.
69 CreateFileBasedResourceManager ("MyResources", "Test/resources", null);
70 Assert.AreEqual ("Hello World", rm.GetString ("HelloWorld"), "#01");
71 Assert.AreEqual ("Hello World", rm.GetObject ("HelloWorld"), "#02");
75 public void TestGermanCulture ()
77 Thread.CurrentThread.CurrentUICulture = new CultureInfo ("de-DE");
78 ResourceManager rm = ResourceManager.
79 CreateFileBasedResourceManager ("MyResources", "Test/resources", null);
80 Assert.AreEqual ("Hello World", rm.GetString ("HelloWorld"), "#01");
81 Assert.AreEqual ("Hello World", rm.GetObject ("HelloWorld"), "#02");
82 Assert.AreEqual ("Hallo Welt", rm.GetString ("deHelloWorld"), "#03");
83 Assert.AreEqual ("Hallo Welt", rm.GetObject ("deHelloWorld"), "#04");
87 [ExpectedException (typeof (NullReferenceException))]
88 [Category("NotWorking")]
89 public void TestResourceManagerGetResourceSetEmpty ()
91 Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
92 ResourceManagerPoker rm = new ResourceManagerPoker ();
93 ResourceSet rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
98 [ExpectedException (typeof (NullReferenceException))]
99 [Category("NotWorking")]
100 public void TestResourceManagerReleaseAllResourcesEmpty ()
102 Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
103 ResourceManagerPoker rm = new ResourceManagerPoker ();
104 rm.ReleaseAllResources ();
108 public void TestResourceManagerReleaseAllResources ()
110 Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
111 ResourceManagerPoker rm = new ResourceManagerPoker ();
112 rm.InitResourceSets ();
113 rm.ReleaseAllResources ();
117 [Category("NotWorking")]
118 public void TestResourceManagerResourceSets ()
120 Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
121 ResourceManagerPoker rm = new ResourceManagerPoker ();
123 rm.InitResourceSets ();
125 ResourceSet rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
128 Assert.AreEqual (1, rm.GetResourceSets().Keys.Count, "#01");
132 Assert.AreEqual (1, rm.GetResourceSets().Keys.Count, "#02");