From 17fdde66d94155fc62a034fa6658995bef6fd6e5 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Tue, 22 Mar 2016 13:02:25 -0700 Subject: Initial import --- Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs (limited to 'Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs') diff --git a/Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs b/Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs new file mode 100644 index 00000000..49c4bb49 --- /dev/null +++ b/Xamarin.Forms.Xaml.UnitTests/TypeExtensionTests.cs @@ -0,0 +1,54 @@ +using System; +using NUnit.Framework; +using System.Xml; + +using Xamarin.Forms.Core.UnitTests; +using System.Reflection; + +namespace Xamarin.Forms.Xaml.UnitTests +{ + + [TestFixture] + public class TypeExtensionTests : BaseTestFixture + { + IXamlTypeResolver typeResolver; + Internals.XamlServiceProvider serviceProvider; + + [SetUp] + public override void Setup () + { + base.Setup (); + var nsManager = new XmlNamespaceManager (new NameTable ()); + nsManager.AddNamespace ("local", "clr-namespace:Xamarin.Forms.Xaml.UnitTests;assembly=Xamarin.Forms.Xaml.UnitTests"); + nsManager.AddNamespace ("sys", "clr-namespace:System;assembly=mscorlib"); + nsManager.AddNamespace ("x", "http://schemas.microsoft.com/winfx/2006/xaml"); + + typeResolver = new Internals.XamlTypeResolver (nsManager, XamlParser.GetElementType, Assembly.GetCallingAssembly ()); + + serviceProvider = new Internals.XamlServiceProvider (null, null) { + IXamlTypeResolver = typeResolver, + }; + } + + [Test] + public void TestxType () + { + var markupString = @"{x:Type sys:String}"; + Assert.AreEqual (typeof(string), (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); + } + + [Test] + public void TestWithoutPrefix () + { + var markupString = @"{x:Type Grid}"; + Assert.AreEqual (typeof(Grid), (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); + } + + [Test] + public void TestWithExplicitTypeName () + { + var markupString = @"{x:Type TypeName=sys:String}"; + Assert.AreEqual (typeof(string), (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); + } + } +} \ No newline at end of file -- cgit v1.2.3