Merge pull request #1659 from alexanderkyte/stringbuilder-referencesource
[mono.git] / mcs / class / corlib / Test / System.Resources / ResourceManagerTest.cs
index f7399ef8360c4f30f03e1a0866a390cff3ef73a4..151e21c581d395fd717b9c9d9a7f5b83ba3bd76b 100644 (file)
@@ -43,24 +43,6 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Resources
 {
-       class ResourceManagerPoker : ResourceManager
-       {
-               public ResourceManagerPoker ()
-               {
-                       BaseNameField = String.Format ("Test{0}resources{0}MyResources", Path.DirectorySeparatorChar);
-               }
-
-               public Hashtable GetResourceSets ()
-               {
-                       return base.ResourceSets;
-               }
-
-               public void InitResourceSets ()
-               {
-                       base.ResourceSets = new Hashtable ();
-               }
-       }
-
        [TestFixture]
        public class ResourceManagerTest
        {
@@ -184,7 +166,6 @@ namespace MonoTests.System.Resources
                [Test] // ResourceManager (String, Assembly)
                public void Constructor2_BaseName_Resources ()
                {
-#if NET_2_0
                        MockResourceManager rm = new MockResourceManager (
                                "mono.resources",
                                Assembly.GetExecutingAssembly ());
@@ -201,24 +182,6 @@ namespace MonoTests.System.Resources
                        Assert.IsTrue (typeof (ResourceSet).IsAssignableFrom (rm.ResourceSetType), "#11");
                        Assert.IsFalse (typeof (ResourceSet) == rm.ResourceSetType, "#12");
                        Assert.AreEqual ("RuntimeResourceSet", rm.ResourceSetType.Name, "#13");
-#else
-                       try {
-                               new ResourceManager ("mono.resources",
-                                       Assembly.GetExecutingAssembly ());
-                               Assert.Fail ("#1");
-                       } catch (ArgumentException ex) {
-                               // ResourceManager base name should not end in
-                               // .resources. It should be similar to MyResources,
-                               // which the ResourceManager can convert into
-                               // MyResources.<culture>.resources; for example,
-                               // MyResources.en-US.resources
-                               Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-                               Assert.IsTrue (ex.Message.IndexOf (" .resources") != -1, "#5");
-                               Assert.IsNull (ex.ParamName, "#6");
-                       }
-#endif
                }
 
                [Test] // ResourceManager (String, Assembly)
@@ -293,7 +256,6 @@ namespace MonoTests.System.Resources
                [Test] // ResourceManager (String, Assembly, Type)
                public void Constructor3_BaseName_Resources ()
                {
-#if NET_2_0
                        MockResourceManager rm = new MockResourceManager (
                                "mono.resources",
                                Assembly.GetExecutingAssembly (),
@@ -309,25 +271,6 @@ namespace MonoTests.System.Resources
                        Assert.AreEqual (0, rm.ResourceSets.Count, "#9");
                        Assert.IsNotNull (rm.ResourceSetType, "#10");
                        Assert.AreEqual (typeof (ResourceSet), rm.ResourceSetType, "#11");
-#else
-                       try {
-                               new ResourceManager ("mono.resources", 
-                                       Assembly.GetExecutingAssembly (),
-                                       typeof (ResourceSet));
-                               Assert.Fail ("#1");
-                       } catch (ArgumentException ex) {
-                               // ResourceManager base name should not end in
-                               // .resources. It should be similar to MyResources,
-                               // which the ResourceManager can convert into
-                               // MyResources.<culture>.resources; for example,
-                               // MyResources.en-US.resources
-                               Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-                               Assert.IsTrue (ex.Message.IndexOf (" .resources") != -1, "#5");
-                               Assert.IsNull (ex.ParamName, "#6");
-                       }
-#endif
                }
 
                [Test] // ResourceManager (String, Assembly, Type)
@@ -404,12 +347,8 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
-#if NET_2_0
-               [Category ("NotWorking")]
-#endif
                public void CreateFileBasedResourceManager_BaseName_Resources ()
                {
-#if NET_2_0
                        ResourceManager rm = ResourceManager.CreateFileBasedResourceManager (
                                "MyResources.resources", "Test/resources", null);
                        try {
@@ -423,25 +362,6 @@ namespace MonoTests.System.Resources
                                Assert.IsNull (ex.InnerException, "#3");
                                Assert.IsNotNull (ex.Message, "#4");
                        }
-#else
-                       try {
-                               ResourceManager.CreateFileBasedResourceManager (
-                                       "MyResources.resources", "Test/resources",
-                                       null);
-                               Assert.Fail ("#1");
-                       } catch (ArgumentException ex) {
-                               // ResourceManager base name should not end in
-                               // .resources. It should be similar to MyResources,
-                               // which the ResourceManager can convert into
-                               // MyResources.<culture>.resources; for example,
-                               // MyResources.en-US.resources
-                               Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-                               Assert.IsTrue (ex.Message.IndexOf (" .resources") != -1, "#5");
-                               Assert.IsNull (ex.ParamName, "#6");
-                       }
-#endif
                }
 
                [Test]
@@ -488,6 +408,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetObject ()
                {
                        ResourceManager rm = ResourceManager.
@@ -548,6 +469,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetObject_ResourceSet_Disposed ()
                {
                        Thread.CurrentThread.CurrentUICulture = new CultureInfo ("de");
@@ -560,19 +482,11 @@ namespace MonoTests.System.Resources
                        try {
                                rm.GetObject ("deHelloWorld");
                                Assert.Fail ("#1");
-#if NET_2_0
                        } catch (ObjectDisposedException ex) {
                                // Cannot access a closed resource set
                                Assert.AreEqual (typeof (ObjectDisposedException), ex.GetType (), "#2");
                                Assert.IsNull (ex.InnerException, "#3");
                                Assert.IsNotNull (ex.Message, "#4");
-#else
-                       } catch (InvalidOperationException ex) {
-                               // Cannot access a closed resource set
-                               Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-#endif
                        } finally {
                                rm.ReleaseAllResources ();
                        }
@@ -627,6 +541,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetString ()
                {
                        ResourceManager rm = ResourceManager.
@@ -687,38 +602,22 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
+               [SetCulture ("de")]
                public void GetString_ResourceSet_Disposed ()
                {
-                       Thread.CurrentThread.CurrentUICulture = new CultureInfo ("de");
                        ResourceManager rm = ResourceManager.
                                CreateFileBasedResourceManager ("MyResources", "Test/resources", null);
                        ResourceSet rs = rm.GetResourceSet (new CultureInfo ("de"),
                                true, true);
                        rs.Dispose ();
 
-                       try {
-                               rm.GetString ("deHelloWorld");
-                               Assert.Fail ("#1");
-#if NET_2_0
-                       } catch (ObjectDisposedException ex) {
-                               // Cannot access a closed resource set
-                               Assert.AreEqual (typeof (ObjectDisposedException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-#else
-                       } catch (InvalidOperationException ex) {
-                               // ResourceSet is closed
-                               Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-#endif
-                       } finally {
-                               rm.ReleaseAllResources ();
-                       }
+                       Assert.IsNull (rm.GetString ("deHelloWorld"));
+                       rm.ReleaseAllResources ();
                }
 
-#if NET_2_0
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetStream ()
                {
                        Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
@@ -743,6 +642,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetStream_Culture ()
                {
                        Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
@@ -796,6 +696,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetStream_Resource_DoesNotExist ()
                {
                        ResourceManager rm = ResourceManager.
@@ -805,6 +706,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetStream_Resource_NonStream ()
                {
                        ResourceManager rm = ResourceManager.
@@ -843,6 +745,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void GetStream_ResourceSet_Disposed ()
                {
                        Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
@@ -864,9 +767,9 @@ namespace MonoTests.System.Resources
                                rm.ReleaseAllResources ();
                        }
                }
-#endif
 
                [Test]
+               [Category ("MobileNotWorking")]
                public void IgnoreCase ()
                {
                        ResourceManager rm = ResourceManager.
@@ -882,116 +785,14 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
-               public void InternalGetResourceSet_Culture_Null ()
+               public void TestSatellites ()
                {
-                       MockResourceManager rm = new MockResourceManager (typeof (string));
-                       try {
-                               rm.InternalGetResourceSet ((CultureInfo) null, false, true);
-                               Assert.Fail ("#1");
-                       } catch (ArgumentNullException ex) {
-                               // Key cannot be null
-                               Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-                               Assert.IsNotNull (ex.ParamName, "#5");
-                               Assert.AreEqual ("key", ex.ParamName, "#6");
-                       }
-               }
-
-               [Test]
-               public void TestResourceManagerGetResourceSetEmpty ()
-               {
-                       Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
-                       ResourceManagerPoker rm = new ResourceManagerPoker ();
-                       try {
-                               rm.GetResourceSet (CultureInfo.InvariantCulture,
-                                       true, true);
-                               Assert.Fail ("#1");
-                       } catch (NullReferenceException) {
-                       }
-               }
-
-               [Test]
-               public void TestResourceManagerReleaseAllResourcesEmpty ()
-               {
-                       Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
-                       ResourceManagerPoker rm = new ResourceManagerPoker ();
-                       try {
-                               rm.ReleaseAllResources ();
-                               Assert.Fail ("#1");
-                       } catch (NullReferenceException) {
-                       }
-               }
-
-               [Test]
-               public void TestResourceManagerReleaseAllResources ()
-               {
-                       Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
-                       ResourceManagerPoker rm = new ResourceManagerPoker ();
-                       rm.InitResourceSets ();
-                       rm.ReleaseAllResources ();
-               }
-
-               [Test]
-               public void TestResourceManagerResourceSets ()
-               {
-                       Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
-                       ResourceManagerPoker rm = new ResourceManagerPoker ();
-
-                       rm.InitResourceSets ();
-
-                       ResourceSet rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
-                                                           true, true);
-
-                       Assert.AreEqual (1, rm.GetResourceSets().Keys.Count, "#01");
-
-                       rs.Close ();
-
-                       Assert.AreEqual (1, rm.GetResourceSets().Keys.Count, "#02");
-                       
-                       rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
-                                               true, true);
-                       
-                       Assert.AreEqual (1, rm.GetResourceSets().Keys.Count, "#03");
-
-                       rm.ReleaseAllResources ();
-               }
-               
-               [Test]
-               public void TestResourceManagerResourceSetClosedException ()
-               {
-                       Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
-                       ResourceManagerPoker rm = new ResourceManagerPoker ();
-                       
-                       rm.InitResourceSets ();
+                       ResourceManager manager = new ResourceManager("Resources", GetType ().Assembly);
                        
-                       ResourceSet rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
-                                                           true, true);
-                       rs.Close ();
-                       ResourceSet rs2 = rs;
-                       rs = rm.GetResourceSet (CultureInfo.InvariantCulture, true, true);
-                       Assert.IsTrue (Object.ReferenceEquals (rs2, rs), "#0");
-
-                       try {
-                               rm.GetString ("HelloWorld");
-                               Assert.Fail ("#1");
-#if NET_2_0
-                       } catch (ObjectDisposedException ex) {
-                               // ResourceSet is closed
-                               Assert.AreEqual (typeof (ObjectDisposedException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-#else
-                       } catch (InvalidOperationException ex) {
-                               // ResourceSet is closed
-                               Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
-                               Assert.IsNull (ex.InnerException, "#3");
-                               Assert.IsNotNull (ex.Message, "#4");
-#endif
-                       } finally {
-                               rm.ReleaseAllResources ();
-                       }
-               }
+                       Assert.AreEqual ("Hei", manager.GetString ("Hello", new CultureInfo ("nn-NO")), "nn-NO");
+                       Assert.AreEqual ("Hola", manager.GetString ("Hello", new CultureInfo ("es-ES")), "es-ES");
+                       Assert.AreEqual ("Hello", manager.GetString ("Hello", new CultureInfo ("en-US")), "en-US");
+               }               
 
                class MockResourceManager : ResourceManager
                {