Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / test-async-86.cs
1 using System;
2 using System.Threading.Tasks;
3
4 public class Program
5 {
6         string Data { 
7                 get {
8                         return data;
9                 }
10                 set {
11                         ++setter_called;
12                         data = value;
13                 }
14         }
15
16         int setter_called;
17         string data = "init-";
18
19         string this [string arg] {
20                 get {
21                         return i_data;
22                 }
23                 set {
24                         ++i_setter_called;
25                         i_data = value;
26                 }
27         }
28
29         int i_setter_called;
30         string i_data = "init2-";
31
32         public static int Main()
33         {
34                 var p = new Program ();
35                 p.TestProperty ().Wait ();
36                 if (p.data != "init-nxa123z") {
37                         return 1;
38                 }
39
40                 if (p.setter_called != 1)
41                         return 2;
42
43                 p.TestIndexer ().Wait ();
44
45                 if (p.i_data != "init2-nxa123z") {
46                         return 3;
47                 }
48
49                 if (p.i_setter_called != 1)
50                         return 4;
51
52                 return 0;
53         }
54
55         async Task TestProperty ()
56         {
57                 Data += "n" + await StringValue () + "a" + 123.ToString () + "z";
58         }
59
60         async Task TestIndexer ()
61         {
62                 string arg = "foo";
63                 this[arg] += "n" + await StringValue () + "a" + 123.ToString () + "z";
64         }
65
66         async Task<string> StringValue ()
67         {
68                 await Task.Yield ();
69                 return "x";
70         }
71 }