Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / gtest-anontype-05.cs
1
2 // Tests anonymous type consolidation
3
4 using System;
5 using System.Collections;
6
7 public class Test
8 {
9         static string Null ()
10         {
11                 return null;
12         }
13         
14         public static int Main ()
15         {
16                 var v1 = new { Name = "Scott", Age = 21 };
17                 var v2 = new { Age = 20, Name = "Sam" };
18                 var v3 = new { Name = Null (), Age = 33 };
19                 
20                 if (v1.GetType () == v2.GetType ())
21                         return 1;
22                         
23                 if (v1.Equals (v2))
24                         return 2;
25                         
26                 if (v1.GetType () != v3.GetType ())
27                         return 3;
28                         
29                 if (!v1.Equals (v1))
30                         return 4;
31                                         
32                 if (v1.GetHashCode () != v1.GetHashCode ())
33                         return 5;
34                 
35                 Console.WriteLine (v1);
36                 Console.WriteLine (v3);
37                 
38                 if (v1.ToString () != "{ Name = Scott, Age = 21 }")
39                         return 6;
40                         
41                 if (v3.ToString () != "{ Name = , Age = 33 }")
42                         return 7;
43
44                 var v4 = new {};
45
46                 if (v4.ToString () != "{ }")
47                         return 8;
48
49                 var v5 = new { Foo = "Bar" };
50                 var v6 = new { Foo = Null () };
51
52                 if (v5.ToString () != "{ Foo = Bar }")
53                         return 9;
54
55                 if (v6.ToString () != "{ Foo =  }")
56                         return 10;
57
58                 return 0;
59         }
60 }