private object[] OnEndGetNestedData(System.IAsyncResult result) { WebServiceMoonlightTest.ServiceReference2.DataType2 retVal = ((WebServiceMoonlightTest.ServiceReference2.IService1)(this)).EndGetNestedData(result); return(new object[] { retVal }); }
void RunClient() { var binding = new BasicHttpBinding(); var remoteAddress = new EndpointAddress("http://localhost:" + NetworkHelpers.FindFreePort() + "/Service1"); var normalClient = new Service1Client(binding, remoteAddress); var collectionClient = new Service1Client(binding, remoteAddress); var nestedClient = new Service1Client(binding, remoteAddress); var dbClient = new Service1Client(binding, remoteAddress); { ManualResetEvent wait = new ManualResetEvent(false); Exception error = null; object result = null; normalClient.GetDataCompleted += delegate(object o, GetDataCompletedEventArgs e) { try { error = e.Error; result = e.Error == null ? e.Result : null; } finally { wait.Set(); } }; normalClient.GetDataAsync(); Assert.IsTrue(wait.WaitOne(TimeSpan.FromSeconds(20)), "#1 timeout"); Assert.IsNull(error, "#1.1, inner exception: {0}", error); Assert.AreEqual("A", ((DataType1)result).Id, "#1.2"); } { ManualResetEvent wait = new ManualResetEvent(false); Exception error = null; ObservableCollection <object> result = null; collectionClient.GetCollectionDataCompleted += delegate(object sender, GetCollectionDataCompletedEventArgs e) { try { error = e.Error; result = e.Error == null ? e.Result : null; } finally { wait.Set(); } }; collectionClient.GetCollectionDataAsync(); Assert.IsTrue(wait.WaitOne(TimeSpan.FromSeconds(20)), "#2 timeout"); Assert.IsNull(error, "#2.1, inner exception: {0}", error); Assert.AreEqual("B,C", ItemsToString(result.Cast <DataType1> ()), "#2.2"); } { ManualResetEvent wait = new ManualResetEvent(false); Exception error = null; WebServiceMoonlightTest.ServiceReference2.DataType2 result = null; nestedClient.GetNestedDataCompleted += delegate(object sender, GetNestedDataCompletedEventArgs e) { try { error = e.Error; result = e.Error == null ? e.Result : null; } finally { wait.Set(); } }; nestedClient.GetNestedDataAsync(); Assert.IsTrue(wait.WaitOne(TimeSpan.FromSeconds(20)), "#3 timeout"); Assert.IsNull(error, "#3.1, inner exception: {0}", error); Assert.AreEqual("D,E", ItemsToString(result.Items.Cast <DataType1> ()), "#3.2"); } { ManualResetEvent wait = new ManualResetEvent(false); Exception error = null; string result = null; dbClient.JSMGetDatabasesCompleted += delegate(object sender, JSMGetDatabasesCompletedEventArgs e) { try { error = e.Error; result = e.Error == null ? e.Result : null; } finally { wait.Set(); } }; dbClient.JSMGetDatabasesAsync(); Assert.IsTrue(wait.WaitOne(TimeSpan.FromSeconds(20)), "#4 timeout"); Assert.IsNull(error, "#4.1, inner exception: {0}", error); Assert.AreEqual("databases", result, "#4.2"); } }