Merge pull request #3716 from vargaz/unbox-stobj-null
[mono.git] / mcs / class / System.ServiceModel / Test / System.ServiceModel.Dispatcher / Bug652331Test.cs
index cdc68486779adc619e335eccabbb06dc4a72265c..141d8bf3f6bb728ebb46da545a8f85ea23d5a8fd 100644 (file)
@@ -66,16 +66,24 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                                var client = new Service1Client (binding, remoteAddress);
 
                                var wait = new ManualResetEvent (false);
+
+                               Exception error = null;
+                               object result = null;
+
                                client.GetDataCompleted += delegate (object o, GetDataCompletedEventArgs e) {
-                                       if (e.Error != null)
-                                               throw e.Error;
-                                       Assert.AreEqual ("A", ((DataType1) e.Result).Id, "#1");
-                                       wait.Set ();
+                                       try {
+                                               error = e.Error;
+                                               result = e.Error == null ? e.Result : null;
+                                       } finally {
+                                               wait.Set ();
+                                       }
                                };
 
                                client.GetDataAsync ();
-                               if (!wait.WaitOne (TimeSpan.FromSeconds (20)))
-                                       Assert.Fail ("timeout");
+
+                               Assert.IsTrue (wait.WaitOne (TimeSpan.FromSeconds (20)), "timeout");
+                               Assert.IsNull (error, "#1, inner exception: {0}", error);
+                               Assert.AreEqual ("A", ((DataType1) result).Id, "#2");
                        } finally {
                                serviceHost.Close ();
                        }