Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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));
        }