Fixed.
[mono.git] / mcs / class / corlib / Test / System.Collections.Generic / ComparerTest.cs
1 //
2 // MonoTests.System.Collections.Generic.Test.ComparerTest
3 //
4 // Authors:
5 //      Gert Driesen (drieseng@users.sourceforge.net)
6 //
7 // Copyright (C) 2007 Gert Driesen
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 #if NET_2_0
30
31 using System.Collections.Generic;
32 using System.IO;
33 using System.Runtime.Serialization.Formatters.Binary;
34
35 using NUnit.Framework;
36
37 namespace MonoTests.System.Collections.Generic
38 {
39         [TestFixture]
40         public class ComparerTest
41         {
42
43 #if !NET_4_0 // FIXME: the blob contains the 2.0 mscorlib version
44
45                 [Test] // bug #80929
46                 public void SerializeDefault ()
47                 {
48                         Comparer<int> c = Comparer<int>.Default;
49
50                         BinaryFormatter bf = new BinaryFormatter ();
51                         MemoryStream ms = new MemoryStream ();
52                         bf.Serialize (ms, c);
53
54                         byte [] buffer = new byte [ms.Length];
55                         ms.Position = 0;
56                         ms.Read (buffer, 0, buffer.Length);
57
58                         Assert.AreEqual (_serializedDefault, buffer);
59                 }
60
61 #endif
62
63                 [Test]
64                 public void DeserializeDefault ()
65                 {
66                         MemoryStream ms = new MemoryStream ();
67                         ms.Write (_serializedDefault, 0, _serializedDefault.Length);
68                         ms.Position = 0;
69
70                         BinaryFormatter bf = new BinaryFormatter ();
71                         Comparer<int> c = (Comparer<int>) bf.Deserialize (ms);
72                         Assert.IsNotNull (c);
73                 }
74
75                 private static readonly byte [] _serializedDefault = new byte [] {
76                         0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00,
77                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00,
78                         0x89, 0x01, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x6f,
79                         0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47,
80                         0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65,
81                         0x72, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x72,
82                         0x60, 0x31, 0x5b, 0x5b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
83                         0x49, 0x6e, 0x74, 0x33, 0x32, 0x2c, 0x20, 0x6d, 0x73, 0x63, 0x6f,
84                         0x72, 0x6c, 0x69, 0x62, 0x2c, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69,
85                         0x6f, 0x6e, 0x3d, 0x32, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x30, 0x2c,
86                         0x20, 0x43, 0x75, 0x6c, 0x74, 0x75, 0x72, 0x65, 0x3d, 0x6e, 0x65,
87                         0x75, 0x74, 0x72, 0x61, 0x6c, 0x2c, 0x20, 0x50, 0x75, 0x62, 0x6c,
88                         0x69, 0x63, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x3d,
89                         0x62, 0x37, 0x37, 0x61, 0x35, 0x63, 0x35, 0x36, 0x31, 0x39, 0x33,
90                         0x34, 0x65, 0x30, 0x38, 0x39, 0x5d, 0x5d, 0x00, 0x00, 0x00, 0x00,
91                         0x0b };
92         }
93 }
94
95 #endif
96