diff options
Diffstat (limited to 'Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs')
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/FactoryMethods.xaml.cs | 115 |
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 |