2007-12-01 Olivier Dufour <olivier.duff@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Resources / CompatTest.cs
1 //
2 // CompatTest.cs: Compatibility unit tests for ResXResourceReader.
3 //
4 // Authors:
5 //     Robert Jordan <robertj@gmx.net>
6 //
7
8 using System;
9 using System.Collections;
10 using System.Drawing;
11 using System.IO;
12 using System.Resources;
13 using NUnit.Framework;
14
15 namespace MonoTests.System.Resources
16 {
17         [TestFixture]
18         public class CompatTest
19         {
20                 class Helper
21                 {
22                         public static void TestReader (string fileName)
23                         {
24                                 ResXResourceReader r = new ResXResourceReader (fileName);
25                                 Hashtable h = new Hashtable ();
26                                 foreach (DictionaryEntry e in r) {
27                                         h.Add (e.Key, e.Value);
28                                 }
29                                 r.Close ();
30
31                                 Assert.AreEqual ("hola", (string) h ["String"], fileName + "#1");
32                                 Assert.AreEqual ("hello", (string) h ["String2"], fileName + "#2");
33                                 Assert.AreEqual (42, (int) h ["Int"], fileName + "#3");
34                                 Assert.AreEqual (PlatformID.Win32NT, (PlatformID) h ["Enum"], fileName + "#4");
35                                 Assert.AreEqual (43, ((Point) h ["Convertible"]).X, fileName + "#5");
36                                 Assert.AreEqual (2, (byte) ((ArrayList) h ["Serializable"]) [1], fileName + "#6");
37                                 Assert.AreEqual (13, ((byte []) h ["ByteArray"]) [1], fileName + "#7");
38                                 Assert.AreEqual (16, ((byte []) h ["ByteArray2"]) [1], fileName + "#8");
39                                 Assert.AreEqual (1013, ((int []) h ["IntArray"]) [1], fileName + "#9");
40                                 Assert.AreEqual ("world", ((string []) h ["StringArray"]) [1], fileName + "#10");
41 #if NET_2_0
42                                 Assert.IsNull (h ["InvalidMimeType"], "#11");
43 #else
44                                 Assert.IsNotNull (h ["InvalidMimeType"], "#11a");
45                                 Assert.AreEqual ("AAEAAAD/////AQAAAAAAAAARAQAAAAIAAAAGAgAAAAVoZWxsbwYDAAAABXdvcmxkCw==",
46                                         h ["InvalidMimeType"], "#11b");
47 #endif
48                                 Assert.IsNotNull (h ["Image"], fileName + "#12");
49                                 Assert.AreEqual (typeof (Bitmap), h ["Image"].GetType (), fileName + "#13");
50                         }
51                 }
52
53                 [Test]
54                 public void TestReader ()
55                 {
56                         string fileName = Path.Combine (Path.Combine ("Test", "System.Resources"), "compat_1_1.resx");
57                         if (!File.Exists (fileName))
58                                 fileName = String.Format ("..{0}System.Resources{0}compat_1_1.resx", Path.DirectorySeparatorChar);
59                 
60                         Helper.TestReader (fileName);
61                 }
62
63 #if NET_2_0
64                 [Test]
65                 public void TestReader_2_0 ()
66                 {
67                         string fileName = Path.Combine (Path.Combine ("Test", "System.Resources"), "compat_2_0.resx");
68                         if (!File.Exists (fileName))
69                                 fileName = String.Format ("..{0}System.Resources{0}compat_2_0.resx", Path.DirectorySeparatorChar);
70                 
71                         Helper.TestReader (fileName);
72                 }
73 #endif
74         }
75 }