public void Test(bool useCompiledXaml) { var vm = new MockViewModel { Text = "Text0", Model = new MockViewModel { Text = "Text1" }, }; vm.Model [3] = "TextIndex"; var layout = new BindingsCompiler(useCompiledXaml); layout.BindingContext = vm; //testing paths Assert.AreEqual("Text0", layout.label0.Text); Assert.AreEqual("Text0", layout.label1.Text); Assert.AreEqual("Text1", layout.label2.Text); Assert.AreEqual("TextIndex", layout.label3.Text); //testing selfPath layout.label4.BindingContext = "Self"; Assert.AreEqual("Self", layout.label4.Text); //testing INPC vm.Text = "Text2"; Assert.AreEqual("Text2", layout.label0.Text); //testing 2way Assert.AreEqual("Text2", layout.entry0.Text); ((IElementController)layout.entry0).SetValueFromRenderer(Entry.TextProperty, "Text3"); Assert.AreEqual("Text3", layout.entry0.Text); //testing invalid bindingcontext type layout.BindingContext = new object(); Assert.AreEqual(null, layout.label0.Text); }
public void Test(bool useCompiledXaml) { if (useCompiledXaml) { MockCompiler.Compile(typeof(BindingsCompiler)); } var vm = new MockViewModel { Text = "Text0", I = 42, Model = new MockViewModel { Text = "Text1" }, StructModel = new MockStructViewModel { Model = new MockViewModel { Text = "Text9" } } }; vm.Model [3] = "TextIndex"; var layout = new BindingsCompiler(useCompiledXaml); layout.BindingContext = vm; layout.label6.BindingContext = new MockStructViewModel { Model = new MockViewModel { Text = "text6" } }; //testing paths Assert.AreEqual("Text0", layout.label0.Text); Assert.AreEqual("Text0", layout.label1.Text); Assert.AreEqual("Text1", layout.label2.Text); Assert.AreEqual("TextIndex", layout.label3.Text); Assert.AreEqual("Text0", layout.label8.Text); //value types Assert.That(layout.label5.Text, Is.EqualTo("42")); Assert.That(layout.label6.Text, Is.EqualTo("text6")); Assert.AreEqual("Text9", layout.label9.Text); Assert.AreEqual("Text9", layout.label10.Text); layout.label9.Text = "Text from label9"; Assert.AreEqual("Text from label9", vm.StructModel.Text); layout.label10.Text = "Text from label10"; Assert.AreEqual("Text from label10", vm.StructModel.Model.Text); //testing selfPath layout.label4.BindingContext = "Self"; Assert.AreEqual("Self", layout.label4.Text); layout.label7.BindingContext = 42; Assert.That(layout.label7.Text, Is.EqualTo("42")); //testing INPC GC.Collect(); vm.Text = "Text2"; Assert.AreEqual("Text2", layout.label0.Text); //testing 2way Assert.AreEqual("Text2", layout.entry0.Text); ((IElementController)layout.entry0).SetValueFromRenderer(Entry.TextProperty, "Text3"); Assert.AreEqual("Text3", layout.entry0.Text); //testing invalid bindingcontext type layout.BindingContext = new object(); Assert.AreEqual(null, layout.label0.Text); }