public void InvokeOperation_Basic() { CityDomainContext cities = new CityDomainContext(TestURIs.Cities); InvokeOperation invoke = null; // verify with userstate EnqueueCallback(delegate { invoke = cities.Echo("hello", TestHelperMethods.DefaultOperationAction, "my user state"); }); EnqueueConditional(() => invoke.IsComplete); EnqueueCallback(delegate { Assert.IsNull(invoke.Error); Assert.AreEqual("Echo", invoke.OperationName); Assert.AreEqual(1, invoke.Parameters.Count); Assert.AreSame("hello", invoke.Parameters["msg"]); Assert.AreEqual("Echo: hello", invoke.Value); Assert.AreEqual("my user state", invoke.UserState); }); // verify without userstate EnqueueCallback(delegate { invoke = cities.Echo("hello"); }); EnqueueConditional(() => invoke.IsComplete); EnqueueCallback(delegate { Assert.AreEqual(invoke.Value, "Echo: hello"); Assert.IsNull(invoke.UserState); }); EnqueueTestComplete(); }
public void InvokeOperation_TestPropertyChangeNotifications() { CityDomainContext cities = new CityDomainContext(TestURIs.Cities); InvokeOperation invoke = null; List <string> notifications = new List <string>(); // verify with userstate EnqueueCallback(delegate { invoke = cities.Echo("hello", TestHelperMethods.DefaultOperationAction, "my user state"); ((System.ComponentModel.INotifyPropertyChanged)invoke).PropertyChanged += (s, e) => { notifications.Add(e.PropertyName); }; }); EnqueueConditional(() => invoke.IsComplete); EnqueueCallback(delegate { Assert.IsFalse(invoke.HasError); Assert.AreEqual("Echo: hello", invoke.Value); Assert.AreEqual(3, notifications.Count); Assert.AreEqual("IsComplete", notifications[0]); Assert.AreEqual("CanCancel", notifications[1]); Assert.AreEqual("Value", notifications[2]); }); EnqueueTestComplete(); }
public void Invoke_MaximumUriLengthExceeded() { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); CityDomainContext dc = new CityDomainContext(GenerateUriBase(1000)); // --> the length when localized to Turkish is > 2083 ExceptionHelper.ExpectException <InvalidOperationException>(() => dc.Echo(""), String.Format(SSmDsWeb::OpenRiaServices.DomainServices.Client.Resource.WebDomainClient_MaximumUriLengthExceeded, 2083)); }