示例#1
0
 public void InvalidSourceThrows(bool useCompiledXaml)
 {
     if (useCompiledXaml)
     {
         Assert.Throws(new XamlParseExceptionConstraint(8, 33), () => MockCompiler.Compile(typeof(ResourceDictionaryWithInvalidSource)));
     }
     else
     {
         Assert.Throws(new XamlParseExceptionConstraint(8, 33), () => new ResourceDictionaryWithInvalidSource(useCompiledXaml));
     }
 }
示例#2
0
 public void ReportSyntaxError([Values(false, true)] bool useCompiledXaml)
 {
     if (useCompiledXaml)
     {
         Assert.Throws <XamlParseException>(() => MockCompiler.Compile(typeof(Gh5378_2)));
     }
     else
     {
         Assert.Throws <XamlParseException>(() => new Gh5378_2(useCompiledXaml));
     }
 }
示例#3
0
            public void FindStaticInternal(bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Gh4326)));
                }
                var layout = new Gh4326(useCompiledXaml);

                Assert.That(layout.labelfoo.Text, Is.EqualTo("Foo"));
                Assert.That(layout.labelbar.Text, Is.EqualTo("Bar"));
                Assert.That(layout.labelinternalvisibleto.Text, Is.EqualTo(Style.StyleClassPrefix));
            }
示例#4
0
            public void GenericBaseInterfaceResolution(bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Gh5486)));
                }
                var layout = new Gh5486(useCompiledXaml)
                {
                    BindingContext = new Gh5486VM()
                };

                Assert.That(layout.label.Text, Is.EqualTo("test"));
            }
示例#5
0
            public void BindingAsElement(bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Gh4572)));
                }
                var layout = new Gh4572(useCompiledXaml)
                {
                    BindingContext = new { labeltext = "Foo" }
                };

                Assert.That(layout.label.Text, Is.EqualTo("Foo"));
            }
示例#6
0
            public void BindingWithMultipleIndexers([Values(false, true)] bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    MockCompiler.Compile(typeof(Gh7837));
                }
                var layout = new Gh7837(useCompiledXaml);

                Assert.That(layout.label0.Text, Is.EqualTo("forty-two"));
                Assert.That(layout.label1.Text, Is.EqualTo("FOO"));
                Assert.That(layout.label2.Text, Is.EqualTo("forty-two"));
                Assert.That(layout.label3.Text, Is.EqualTo("FOO"));
            }
示例#7
0
 public void BetterExceptionReport(bool useCompiledXaml)
 {
     if (useCompiledXaml)
     {
         try {
             MockCompiler.Compile(typeof(Gh4099));
         } catch (XamlParseException xpe) {
             Assert.That(xpe.XmlInfo.LineNumber, Is.EqualTo(5));
             Assert.Pass();
         }
         Assert.Fail();
     }
 }
示例#8
0
            public void BindingWithMultipleIndexers([Values(false, true)] bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    MockCompiler.Compile(typeof(Gh8221));
                }
                var layout = new Gh8221(useCompiledXaml)
                {
                    BindingContext = new Gh8221VM()
                };

                Assert.That(layout.entryone.Text, Is.EqualTo("One"));
                Assert.That(layout.entrytwo.Text, Is.EqualTo("Two"));
            }
示例#9
0
            public void FindMemberOnInterfaces(bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Gh4227)));
                }
                var layout = new Gh4227(useCompiledXaml)
                {
                    BindingContext = new Gh4227VM()
                };

                Assert.That(layout.label0.Text, Is.EqualTo("level0"));
                Assert.That(layout.label1.Text, Is.EqualTo("level1"));
            }
示例#10
0
            public void RDInDataTemplates(bool useCompiledXaml)
            {
                if (useCompiledXaml)
                {
                    MockCompiler.Compile(typeof(Bz42531));
                }
                var      p        = new Bz42531(useCompiledXaml);
                ListView lv       = p.lv;
                var      template = lv.ItemTemplate;
                var      cell     = template.CreateContent(null, lv) as ViewCell;
                var      sl       = cell.View as StackLayout;

                Assert.AreEqual(1, sl.Resources.Count);
                var label = sl.Children[0] as Label;

                Assert.AreEqual(LayoutOptions.Center, label.HorizontalOptions);
            }
示例#11
0
            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);
                Assert.AreEqual("Text3", vm.Text);
                ((IElementController)layout.entry1).SetValueFromRenderer(Entry.TextProperty, "Text4");
                Assert.AreEqual("Text4", layout.entry1.Text);
                Assert.AreEqual("Text4", vm.Model.Text);
                vm.Model = null;
                layout.entry1.BindingContext = null;

                //testing invalid bindingcontext type
                layout.BindingContext = new object();
                Assert.AreEqual(null, layout.label0.Text);
            }
示例#12
0
 public void MarkupOnAttachedBPDoesNotThrowAtCompileTime(bool useCompiledXaml)
 {
     MockCompiler.Compile(typeof(Bz53203));
 }
示例#13
0
 public void ThrowsOnMismatchingType([Values(true, false)] bool useCompiledXaml)
 {
     if (useCompiledXaml)
     {
         Assert.Throws(new XamlParseExceptionConstraint(7, 16, m => m.StartsWith("No property, bindable property", StringComparison.Ordinal)), () => MockCompiler.Compile(typeof(TypeMismatch)));
     }
     else
     {
         Assert.Throws(new XamlParseExceptionConstraint(7, 16, m => m.StartsWith("Cannot assign property", StringComparison.Ordinal)), () => new TypeMismatch(useCompiledXaml));
     }
 }
示例#14
0
 public void DonSetValueOnPrivateBP(bool useCompiledXaml)
 {
     if (useCompiledXaml)
     {
         Assert.Throws(new XamlParseExceptionConstraint(7, 26, s => s.StartsWith("No property,", StringComparison.Ordinal)), () => MockCompiler.Compile(typeof(Bz44216)));
     }
     else
     {
         Assert.Throws(new XamlParseExceptionConstraint(7, 26, s => s.StartsWith("Cannot assign property", StringComparison.Ordinal)), () => new Bz44216(useCompiledXaml));
     }
 }
示例#15
0
 public void DoesCompilesArgsInsideDataTemplate()
 {
     Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Bz53318)));
 }
示例#16
0
 public static void ThrowXamlParseException(bool useCompiledXaml)
 {
     Assert.Throws <XamlParseException>(useCompiledXaml ?
                                        (TestDelegate)(() => MockCompiler.Compile(typeof(DuplicatePropertyElements))) :
                                        () => new DuplicatePropertyElements(useCompiledXaml));
 }
示例#17
0
 public void TestXamlCompiler()
 {
     MockCompiler.Compile(typeof(Gh2691));
 }
示例#18
0
 public static void ThrowXamlParseException(bool useCompiledXaml)
 {
     Assert.Throws <XamlParseException>(useCompiledXaml ?
                                        (TestDelegate)(() => MockCompiler.Compile(typeof(MultipleDataTemplateChildElements))) :
                                        () => new MultipleDataTemplateChildElements(useCompiledXaml));
 }