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); }
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); }
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); }
private static BasicListTestViewModel BuildList() { var root = new BasicListTestViewModel { Children = { new BasicTestViewModel(), new BasicTestViewModel(), new BasicTestViewModel() } }; return(root); }