Author: gert
Date: 2007-08-24 07:25:36 -0400 (Fri, 24 Aug 2007)
New Revision: 84800
Modified:
trunk/mcs/class/corlib/Test/System.Resources/ChangeLog
trunk/mcs/class/corlib/Test/System.Resources/ResourceManagerTest.cs
trunk/mcs/class/corlib/Test/System.Resources/ResourceReaderTest.cs
trunk/mcs/class/corlib/Test/System.Resources/ResourceWriterTest.cs
Log:
* ResourceManagerTest.cs: Improved existing tests. Ensure all resources
are released. Fixes test failures on Windows.
* ResourceWriterTest.cs: Added test for bug #82566.
* ResourceReaderTest.cs: Improved existing tests. Ensure all resources
are released. Fixed test failures on Windows.
Modified: trunk/mcs/class/corlib/Test/System.Resources/ChangeLog
===================================================================
--- trunk/mcs/class/corlib/Test/System.Resources/ChangeLog 2007-08-24
11:22:04 UTC (rev 84799)
+++ trunk/mcs/class/corlib/Test/System.Resources/ChangeLog 2007-08-24
11:25:36 UTC (rev 84800)
@@ -1,3 +1,11 @@
+2007-08-24 Gert Driesen <[EMAIL PROTECTED]>
+
+ * ResourceManagerTest.cs: Improved existing tests. Ensure all resources
+ are released. Fixes test failures on Windows.
+ * ResourceWriterTest.cs: Added test for bug #82566.
+ * ResourceReaderTest.cs: Improved existing tests. Ensure all resources
+ are released. Fixed test failures on Windows.
+
2007-08-09 Atsushi Enomoto <[EMAIL PROTECTED]>
* ResourceReaderTest.cs : added tests for GetResourceData()
Modified: trunk/mcs/class/corlib/Test/System.Resources/ResourceManagerTest.cs
===================================================================
--- trunk/mcs/class/corlib/Test/System.Resources/ResourceManagerTest.cs
2007-08-24 11:22:04 UTC (rev 84799)
+++ trunk/mcs/class/corlib/Test/System.Resources/ResourceManagerTest.cs
2007-08-24 11:25:36 UTC (rev 84800)
@@ -69,19 +69,29 @@
CreateFileBasedResourceManager ("MyResources",
"Test/resources", null);
Assert.AreEqual ("Hello World", rm.GetString
("HelloWorld"), "#01");
Assert.AreEqual ("Hello World", rm.GetObject
("HelloWorld"), "#02");
+ rm.ReleaseAllResources ();
}
#if NET_2_0
[Test]
- [ExpectedException (typeof (InvalidOperationException))]
public void GetStreamOverNonStream ()
{
Thread.CurrentThread.CurrentUICulture =
CultureInfo.InvariantCulture;
ResourceManager rm = ResourceManager.
CreateFileBasedResourceManager ("MyResources",
"Test/resources", null);
- UnmanagedMemoryStream s = rm.GetStream ("HelloWorld");
- Assert.AreEqual (10, s.Length, "#1");
- Assert.AreEqual ("Hello World", new StreamReader
(s).ReadToEnd (), "#2");
+
+ try {
+ rm.GetStream ("HelloWorld");
+ Assert.Fail ("#1");
+ } catch (InvalidOperationException ex) {
+ // Resource 'HelloWorld' was not a Stream - call
+ // GetObject instead
+ Assert.AreEqual (typeof
(InvalidOperationException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ } finally {
+ rm.ReleaseAllResources ();
+ }
}
[Test]
@@ -91,6 +101,7 @@
ResourceManager rm = ResourceManager.
CreateFileBasedResourceManager ("StreamTest",
"Test/resources", null);
Assert.IsNull (rm.GetStream ("HelloWorld")); // no such
resource
+ rm.ReleaseAllResources ();
}
[Test]
@@ -102,6 +113,8 @@
UnmanagedMemoryStream s = rm.GetStream ("test");
Assert.AreEqual (22, s.Length, "#1");
Assert.AreEqual ("veritas vos liberabit\n", new
StreamReader (s).ReadToEnd (), "#2");
+ s.Close ();
+ rm.ReleaseAllResources ();
}
[Test]
@@ -113,6 +126,8 @@
UnmanagedMemoryStream s = rm.GetStream ("test", new
CultureInfo ("ja-JP"));
Assert.AreEqual (22, s.Length, "#1");
Assert.AreEqual ("Veritas Vos Liberabit\n", new
StreamReader (s).ReadToEnd (), "#2");
+ s.Close ();
+ rm.ReleaseAllResources ();
}
#endif
@@ -126,6 +141,7 @@
Assert.AreEqual ("Hello World", rm.GetObject
("HelloWorld"), "#02");
Assert.AreEqual ("Hallo Welt", rm.GetString
("deHelloWorld"), "#03");
Assert.AreEqual ("Hallo Welt", rm.GetObject
("deHelloWorld"), "#04");
+ rm.ReleaseAllResources ();
}
[Test]
@@ -177,10 +193,11 @@
true, true);
Assert.AreEqual (1, rm.GetResourceSets().Keys.Count,
"#03");
+
+ rm.ReleaseAllResources ();
}
[Test]
- [ExpectedException (typeof (InvalidOperationException))]
public void TestResourceManagerResourceSetClosedException ()
{
Thread.CurrentThread.CurrentUICulture =
CultureInfo.InvariantCulture;
@@ -193,8 +210,18 @@
rs.Close ();
rs = rm.GetResourceSet (CultureInfo.InvariantCulture,
true, true);
-
- rm.GetString ("HelloWorld");
+
+ try {
+ rm.GetString ("HelloWorld");
+ Assert.Fail ("#1");
+ } catch (InvalidOperationException ex) {
+ // ResourceSet is closed
+ Assert.AreEqual (typeof
(InvalidOperationException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ } finally {
+ rm.ReleaseAllResources ();
+ }
}
}
}
Modified: trunk/mcs/class/corlib/Test/System.Resources/ResourceReaderTest.cs
===================================================================
--- trunk/mcs/class/corlib/Test/System.Resources/ResourceReaderTest.cs
2007-08-24 11:22:04 UTC (rev 84799)
+++ trunk/mcs/class/corlib/Test/System.Resources/ResourceReaderTest.cs
2007-08-24 11:25:36 UTC (rev 84800)
@@ -53,27 +53,41 @@
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void ConstructorString_Null ()
+ public void ConstructorString_Path_Null ()
{
- string s = null;
- ResourceReader r = new ResourceReader (s);
+ try {
+ new ResourceReader ((string) null);
+ Assert.Fail ("#1");
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof
(ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNotNull (ex.ParamName, "#5");
+ Assert.AreEqual ("path", ex.ParamName, "#6");
+ }
}
[Test]
- [ExpectedException (typeof (ArgumentException))]
- public void ConstructorString_Empty ()
+ public void ConstructorString_Path_Empty ()
{
- ResourceReader r = new ResourceReader (String.Empty);
+ try {
+ new ResourceReader (String.Empty);
+ Assert.Fail ("#1");
+ } catch (ArgumentException ex) {
+ // Empty path name is not legal
+ Assert.AreEqual (typeof (ArgumentException),
ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNull (ex.ParamName, "#5");
+ }
}
-
[Test]
[ExpectedException (typeof (FileNotFoundException))]
public void ConstructorString_NotFound ()
{
// use a file name that is *very* unlikely to exsist
- ResourceReader r = new ResourceReader
("j38f8axvnn9h38hfa9nxn93f8hav4zvag87vvah32o");
+ new ResourceReader
("j38f8axvnn9h38hfa9nxn93f8hav4zvag87vvah32o");
}
[Test]
@@ -82,7 +96,7 @@
public void ConstructorString_Bad ()
{
Assert.IsTrue (File.Exists (m_BadResourceFile));
- ResourceReader r = new ResourceReader
(m_BadResourceFile);
+ new ResourceReader (m_BadResourceFile);
}
[Test]
@@ -97,20 +111,36 @@
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
public void ConstructorStream_Null ()
{
- Stream s = null;
- ResourceReader r = new ResourceReader (s);
+ try {
+ new ResourceReader ((Stream) null);
+ Assert.Fail ("#1");
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof
(ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNotNull (ex.ParamName, "#5");
+ Assert.AreEqual ("stream", ex.ParamName, "#6");
+ }
}
[Test]
- [ExpectedException (typeof (ArgumentException))]
public void ConstructorStream_Closed ()
{
Stream stream = new FileStream (m_ResourceFile,
FileMode.Open);
stream.Close ();
- ResourceReader r = new ResourceReader (stream);
+
+ try {
+ new ResourceReader (stream);
+ Assert.Fail ("#1");
+ } catch (ArgumentException ex) {
+ // Stream was not readable
+ Assert.AreEqual (typeof (ArgumentException),
ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNull (ex.ParamName, "#5");
+ }
}
[Test]
@@ -171,6 +201,7 @@
Assert.AreEqual (0, entryCount, "#3");
entryCount++;
}
+ Assert.AreEqual (1, entryCount, "#4");
}
}
#endif
@@ -211,13 +242,24 @@
#if NET_2_0
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
public void GetResourceDataNullName ()
{
ResourceReader r = new ResourceReader
("Test/resources/StreamTest.resources");
string type;
byte [] bytes;
- r.GetResourceData (null, out type, out bytes);
+
+ try {
+ r.GetResourceData (null, out type, out bytes);
+ Assert.Fail ("#1");
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof
(ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNotNull (ex.ParamName, "#5");
+ Assert.AreEqual ("resourceName", ex.ParamName,
"#6");
+ } finally {
+ r.Close ();
+ }
}
[Test]
@@ -247,6 +289,8 @@
p = (DictionaryEntry) items ["test3"];
Assert.AreEqual ("ResourceTypeCode.ByteArray", p.Key as
string, "#3-1");
Assert.AreEqual (t3, p.Value as byte [], "#3-2");
+
+ r.Close ();
}
[Test]
@@ -281,6 +325,7 @@
// Note that const should not be used here.
Assert.AreEqual ("System.Drawing.Size, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", type, "#1");
Assert.AreEqual (expected, bytes, "#2");
+ r.Close ();
}
// we currently do not support writing v2 resource files
Modified: trunk/mcs/class/corlib/Test/System.Resources/ResourceWriterTest.cs
===================================================================
--- trunk/mcs/class/corlib/Test/System.Resources/ResourceWriterTest.cs
2007-08-24 11:22:04 UTC (rev 84799)
+++ trunk/mcs/class/corlib/Test/System.Resources/ResourceWriterTest.cs
2007-08-24 11:25:36 UTC (rev 84800)
@@ -39,5 +39,37 @@
}
}
#endif
+
+ [Test] // bug #82566
+#if NET_2_0
+ [Category ("NotWorking")]
+#endif
+ public void WriteEnum ()
+ {
+ MemoryStream ms = new MemoryStream ();
+
+ ResourceWriter writer = new ResourceWriter (ms);
+ writer.AddResource ("Targets",
AttributeTargets.Assembly);
+ writer.Generate ();
+
+ ms.Position = 0;
+
+ bool found = false;
+
+ ResourceReader reader = new ResourceReader (ms);
+ foreach (DictionaryEntry de in reader) {
+ string name = de.Key as string;
+ Assert.IsNotNull (name, "#1");
+ Assert.AreEqual ("Targets", name, "#2");
+ Assert.IsNotNull (de.Value, "#3");
+ Assert.AreEqual (AttributeTargets.Assembly,
de.Value, "#4");
+ found = true;
+ }
+
+ Assert.IsTrue (found, "#5");
+
+ writer.Dispose ();
+ }
+
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches