public async Task TwoWay_Listens_To_Property_Update_During_Property_Changes_Update_From_Csharp() { var dataContext = new PropertyUpdatingTestViewModel(); var test = new TestInContextAsync() { Bind = (win) => HtmlBinding.Bind(win, dataContext, JavascriptBindingMode.TwoWay), Test = async(mb) => { var js = mb.JsRootObject; var res = GetStringAttribute(js, "Property1"); res.Should().Be("1"); res = GetStringAttribute(js, "Property2"); res.Should().Be("2"); await DoSafeAsyncUI(() => { dataContext.Property1 = "a"; }); res = await GetStringAttributeAsync(js, "Property1"); res.Should().Be("a"); res = GetStringAttribute(js, "Property2"); res.Should().Be("a", "Neutronium listen to object during update"); } }; await RunAsync(test); }
public async Task TwoWay_Listens_To_Property_Update_During_Property_Changes_Update_From_Js() { var dataContext = new PropertyUpdatingTestViewModel(); var test = new TestInContextAsync() { Bind = (win) => HtmlBinding.Bind(win, dataContext, JavascriptBindingMode.TwoWay), Test = async(mb) => { var js = mb.JsRootObject; var res = GetStringAttribute(js, "Property1"); res.Should().Be("1"); res = GetStringAttribute(js, "Property2"); res.Should().Be("2"); SetAttribute(js, "Property1", _WebView.Factory.CreateString("a")); await Task.Delay(100); res = GetStringAttribute(js, "Property1"); res.Should().Be("a"); res = GetStringAttribute(js, "Property2"); res.Should().Be("a", "Neutronium listen to object during update"); } }; await RunAsync(test); }