public async Task TwoWay_should_clean_javascriptObject_listeners_when_object_is_not_part_of_the_graph_array_js_context()
        {
            var datacontext = new BasicListTestViewModel();
            var child       = new BasicTestViewModel();

            datacontext.Children.Add(child);

            var test = new TestInContextAsync()
            {
                Bind = (win) => Bind(win, datacontext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    CheckReadOnly(js, true);

                    var childrenJs = GetCollectionAttribute(js, "Children");
                    var childJs    = childrenJs.GetValue(0);

                    CheckReadOnly(childJs, false);

                    var operabelCollection = GetAttribute(js, "Children");
                    Call(operabelCollection, "pop");

                    await Task.Delay(150);

                    CheckHasListener(childJs, false);
                }
            };

            await RunAsync(test);
        }
Exemplo n.º 2
0
        public async Task TwoWay_cleans_javascriptObject_listeners_when_object_is_not_part_of_the_graph_array_context(BasicTestViewModel remplacementChild)
        {
            var datacontext = new BasicListTestViewModel();
            var child       = new BasicTestViewModel();

            datacontext.Children.Add(child);

            var test = new TestInContextAsync()
            {
                Bind = (win) => Bind(win, datacontext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    CheckObjectObservability(js, ObjectObservability.ReadOnlyObservable);

                    var childrenJs = GetCollectionAttribute(js, "Children");
                    var childJs    = childrenJs.GetValue(0);

                    CheckObjectObservability(childJs, ObjectObservability.Observable);

                    DoSafeUI(() => datacontext.Children[0] = remplacementChild);
                    await Task.Delay(150);

                    CheckHasListener(childJs, false);
                }
            };

            await RunAsync(test);
        }
Exemplo n.º 3
0
        public async Task TwoWay_Cleans_JavascriptObject_Listeners_When_Object_Is_Not_Part_Of_The_Graph_Array_Js_Context()
        {
            var dataContext = new BasicListTestViewModel();
            var child       = new BasicTestViewModel();

            dataContext.Children.Add(child);

            var test = new TestInContextAsync()
            {
                Bind = (win) => Bind(win, dataContext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    CheckObjectObservability(js, ObjectObservability.ReadOnlyObservable);

                    var childrenJs = GetCollectionAttribute(js, "Children");
                    var childJs    = childrenJs.GetValue(0);

                    await CheckObjectObservabilityAsync(childJs, ObjectObservability.Observable);

                    var observableCollection = GetAttribute(js, "Children");
                    Call(observableCollection, "pop");


                    await CheckHasListenerAsync(childJs, false);
                }
            };

            await RunAsync(test);
        }
Exemplo n.º 4
0
        private static BasicListTestViewModel BuildList()
        {
            var root = new BasicListTestViewModel
            {
                Children =
                {
                    new BasicTestViewModel(),
                    new BasicTestViewModel(),
                    new BasicTestViewModel()
                }
            };

            return(root);
        }