2 // MonoTests.System.Resources.ResourceReaderTest.cs
5 // Nick Drochak (ndrochak@gol.com)
7 // (C) 2001 Nick Drochak II
8 // Copyright (C) 2004 Novell (http://www.novell.com)
12 using System.Collections;
14 using System.Reflection;
15 using System.Resources;
16 using NUnit.Framework;
18 namespace MonoTests.System.Resources {
21 public class ResourceReaderTest : Assertion {
22 internal static string m_ResourceFile;
23 private static string m_BadResourceFile;
26 public void FixtureSetUp ()
28 char ds = Path.DirectorySeparatorChar;
30 FileInfo code_base = new FileInfo (Assembly.GetExecutingAssembly ().Location);
31 string base_path = Path.Combine (code_base.Directory.FullName, Path.Combine ("Test", "resources"));
32 m_ResourceFile = Path.Combine (base_path, "MyResources.resources");
33 m_BadResourceFile = Path.Combine (base_path, "Empty.resources");
35 m_ResourceFile = Path.Combine ("Test", Path.Combine ("resources","MyResources.resources"));
36 m_BadResourceFile = "resources" + ds + "Empty.resources";
41 [ExpectedException (typeof (ArgumentNullException))]
42 public void ConstructorString_Null ()
45 ResourceReader r = new ResourceReader (s);
49 [ExpectedException (typeof (ArgumentException))]
50 public void ConstructorString_Empty ()
52 ResourceReader r = new ResourceReader (String.Empty);
57 [ExpectedException (typeof (FileNotFoundException))]
58 public void ConstructorString_NotFound ()
60 // use a file name that is *very* unlikely to exsist
61 ResourceReader r = new ResourceReader("j38f8axvnn9h38hfa9nxn93f8hav4zvag87vvah32o");
65 [Ignore("Not covered in the docs, not sure what the correct behavior should be for this")]
66 [ExpectedException (typeof (DirectoryNotFoundException))]
67 public void ConstructorString_Bad ()
69 Assert (File.Exists (m_BadResourceFile));
70 ResourceReader r = new ResourceReader(m_BadResourceFile);
74 public void ConstructorString ()
76 if (!File.Exists(m_ResourceFile)) {
77 Fail ("Resource file is not where it should be:" + Path.Combine (Directory.GetCurrentDirectory(), m_ResourceFile));
79 ResourceReader r = new ResourceReader(m_ResourceFile);
80 AssertNotNull ("ResourceReader", r);
85 [ExpectedException (typeof (ArgumentNullException))]
86 public void ConstructorStream_Null ()
89 ResourceReader r = new ResourceReader (s);
90 Fail("Should throw exception on null");
94 [ExpectedException (typeof (ArgumentException))]
95 public void ConstructorStream_Closed ()
97 Stream stream = new FileStream (m_ResourceFile, FileMode.Open);
99 ResourceReader r = new ResourceReader (stream);
103 public void Stream ()
105 Stream stream = new FileStream (m_ResourceFile, FileMode.Open);
106 ResourceReader r = new ResourceReader (stream);
107 AssertNotNull ("ResourceReader", r);
114 Stream stream = new FileStream (m_ResourceFile, FileMode.Open);
115 ResourceReader r = new ResourceReader (stream);
118 stream = new FileStream (m_ResourceFile, FileMode.Open);
119 AssertNotNull ("FileStream", stream);
124 public void Enumerator ()
126 Stream stream = new FileStream (m_ResourceFile, FileMode.Open);
127 ResourceReader reader = new ResourceReader (stream);
129 IDictionaryEnumerator en = reader.GetEnumerator();
130 // Goes through the enumerator, printing out the key and value pairs.
131 while (en.MoveNext()) {
132 DictionaryEntry de = (DictionaryEntry)en.Current;
133 Assert("Current.Key should not be empty",String.Empty != (string)de.Key);
134 Assert("Current.Value should not be empty",String.Empty != (string)de.Value);
135 Assert("Entry.Key should not be empty",String.Empty != (string)en.Key);
136 Assert("Entry.Value should not be empty",String.Empty != (string)en.Value);
140 } // class ResourceReaderTest
141 } // namespace MonoTests.System.Resources