This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / corlib / Test / System.Resources / ResourceReaderTest.cs
1 //\r
2 // MonoTests.System.Resources.ResourceReaderTest.cs\r
3 //\r
4 // Author:\r
5 //   Nick Drochak (ndrochak@gol.com)\r
6 //\r
7 // (C) 2001 Nick Drochak II\r
8 // Copyright (C) 2004 Novell (http://www.novell.com)\r
9 //\r
10 \r
11 using System;\r
12 using System.Collections;\r
13 using System.IO;\r
14 using System.Reflection;\r
15 using System.Resources;\r
16 using NUnit.Framework;\r
17 \r
18 namespace MonoTests.System.Resources {\r
19 \r
20         [TestFixture]\r
21         public class ResourceReaderTest : Assertion {\r
22                 private static string m_ResourceFile;\r
23                 private static string m_BadResourceFile;\r
24 \r
25                 [TestFixtureSetUp]\r
26                 public void FixtureSetUp ()\r
27                 {\r
28                         char ds = Path.DirectorySeparatorChar;\r
29                         if (ds == '/') {\r
30                                 FileInfo code_base = new FileInfo (Assembly.GetExecutingAssembly ().Location);\r
31                                 string base_path = code_base.Directory.FullName + ds + "Test" + ds + "resources" + ds;\r
32                                 m_ResourceFile = base_path + "MyResources.resources";\r
33                                 m_BadResourceFile = base_path + "Empty.resources";\r
34                         } else {\r
35                                 m_ResourceFile = "resources" + ds + "MyResources.resources";\r
36                                 m_BadResourceFile = "resources" + ds + "Empty.resources";\r
37                         }\r
38                 }\r
39 \r
40                 [Test]\r
41                 [ExpectedException (typeof (ArgumentNullException))]\r
42                 public void ConstructorString_Null () \r
43                 {\r
44                         string s = null;\r
45                         ResourceReader r = new ResourceReader (s);\r
46                 }\r
47 \r
48                 [Test]\r
49                 [ExpectedException (typeof (ArgumentException))]\r
50                 public void ConstructorString_Empty () \r
51                 {\r
52                         ResourceReader r = new ResourceReader (String.Empty);\r
53                 }\r
54 \r
55 \r
56                 [Test]\r
57                 [ExpectedException (typeof (FileNotFoundException))]\r
58                 public void ConstructorString_NotFound () \r
59                 {\r
60                         // use a file name that is *very* unlikely to exsist\r
61                         ResourceReader r = new ResourceReader("j38f8axvnn9h38hfa9nxn93f8hav4zvag87vvah32o");\r
62                 }\r
63 \r
64                 [Test]\r
65                 [ExpectedException (typeof (ArgumentException))]\r
66                 public void ConstructorString_Bad () \r
67                 {\r
68                         ResourceReader r = new ResourceReader(m_BadResourceFile);\r
69                 }\r
70 \r
71                 [Test]\r
72                 public void ConstructorString () \r
73                 {\r
74                         if (!File.Exists(m_ResourceFile)) {\r
75                                 Fail ("Resource file is not where it should be:" + m_ResourceFile);\r
76                         }\r
77                         ResourceReader r = new ResourceReader(m_ResourceFile);\r
78                         AssertNotNull ("ResourceReader", r);\r
79                         r.Close();\r
80                 }\r
81 \r
82                 [Test]\r
83                 [ExpectedException (typeof (ArgumentNullException))]\r
84                 public void ConstructorStream_Null ()\r
85                 {\r
86                         Stream s = null;\r
87                         ResourceReader r = new ResourceReader (s);\r
88                         Fail("Should throw exception on null");\r
89                 }\r
90 \r
91                 [Test]\r
92                 [ExpectedException (typeof (ArgumentException))]\r
93                 public void ConstructorStream_Closed ()\r
94                 {\r
95                         Stream stream = new FileStream (m_ResourceFile, FileMode.Open);\r
96                         stream.Close ();\r
97                         ResourceReader r = new ResourceReader (stream);\r
98                 }\r
99 \r
100                 [Test]\r
101                 public void Stream ()\r
102                 {\r
103                         Stream stream = new FileStream (m_ResourceFile, FileMode.Open);\r
104                         ResourceReader r = new ResourceReader (stream);\r
105                         AssertNotNull ("ResourceReader", r);\r
106                         r.Close();\r
107                 }\r
108 \r
109                 [Test]\r
110                 public void Close () \r
111                 {\r
112                         Stream stream = new FileStream (m_ResourceFile, FileMode.Open);\r
113                         ResourceReader r = new ResourceReader (stream);\r
114                         r.Close ();\r
115 \r
116                         stream = new FileStream (m_ResourceFile, FileMode.Open);\r
117                         AssertNotNull ("FileStream", stream);\r
118                         stream.Close ();\r
119                 }\r
120 \r
121                 [Test]\r
122                 public void Enumerator ()\r
123                 {\r
124                         Stream stream = new FileStream (m_ResourceFile, FileMode.Open);\r
125                         ResourceReader reader = new ResourceReader (stream);\r
126 \r
127                         IDictionaryEnumerator en = reader.GetEnumerator();\r
128                         // Goes through the enumerator, printing out the key and value pairs.\r
129                         while (en.MoveNext()) {\r
130                                 DictionaryEntry de = (DictionaryEntry)en.Current;\r
131                                 Assert("Current.Key should not be empty",String.Empty != (string)de.Key);\r
132                                 Assert("Current.Value should not be empty",String.Empty != (string)de.Value);\r
133                                 Assert("Current.Value should not be empty",String.Empty != (string)de.Value);\r
134                                 Assert("Entry.Key should not be empty",String.Empty != (string)en.Key);\r
135                                 Assert("Entry.Value should not be empty",String.Empty != (string)en.Value);\r
136                         }\r
137                         reader.Close();\r
138                 }\r
139         }  // class ResourceReaderTest\r
140 }  // namespace MonoTests.System.Resources\r