summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs')
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs115
1 files changed, 115 insertions, 0 deletions
diff --git a/Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs
new file mode 100644
index 00000000..42f359b7
--- /dev/null
+++ b/Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs
@@ -0,0 +1,115 @@
+using Xamarin.Forms;
+using NUnit.Framework;
+
+namespace Xamarin.Forms.Xaml.UnitTests
+{
+ public class MockView : View
+ {
+ public MockFactory Content { get; set; }
+ }
+
+ public class MockFactory
+ {
+ public string Content { get; set; }
+ public MockFactory ()
+ {
+ Content = "default ctor";
+ }
+
+ public MockFactory (string arg0, string arg1)
+ {
+ Content = "alternate ctor " + arg0 + arg1;
+ }
+
+ public MockFactory (int arg)
+ {
+ Content = "int ctor " + arg.ToString ();
+ }
+
+ public static MockFactory ParameterlessFactory ()
+ {
+ return new MockFactory {
+ Content = "parameterless factory",
+ };
+ }
+
+ public static MockFactory Factory (string arg0, int arg1)
+ {
+ return new MockFactory {
+ Content = "factory " + arg0 + arg1,
+ };
+ }
+
+ public static MockFactory Factory (int arg0, string arg1)
+ {
+ return new MockFactory {
+ Content = "factory " + arg0 + arg1,
+ };
+ }
+ }
+
+ public partial class FactoryMethods : ContentPage
+ {
+ public FactoryMethods ()
+ {
+ InitializeComponent ();
+ }
+
+ public FactoryMethods (bool useCompiledXaml)
+ {
+ //this stub will be replaced at compile time
+ }
+
+ [TestFixture]
+ public class Tests
+ {
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestDefaultCtor (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("default ctor", layout.v0.Content.Content);
+ }
+
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestStringCtor (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("alternate ctor foobar", layout.v1.Content.Content);
+ }
+
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestIntCtor (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("int ctor 42", layout.v2.Content.Content);
+ }
+
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestArgumentlessFactoryMethod (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("parameterless factory", layout.v3.Content.Content);
+ }
+
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestFactoryMethod (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("factory foo42", layout.v4.Content.Content);
+ }
+
+ [TestCase (false)]
+ [TestCase (true)]
+ public void TestFactoryMethodParametersOrder (bool useCompiledXaml)
+ {
+ var layout = new FactoryMethods (useCompiledXaml);
+ Assert.AreEqual ("factory 42foo", layout.v5.Content.Content);
+ }
+ }
+ }
+} \ No newline at end of file