public void TestxNull () { var markupString = "{x:Null}"; var serviceProvider = new Internals.XamlServiceProvider (null, null); var result = (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider); Assert.IsNull (result); }
public void TestxNull() { var markupString = "{x:Null}"; var serviceProvider = new Internals.XamlServiceProvider(null, null); var result = (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider); Assert.IsNull(result); }
public void InvalidExpressions(string expression) { var serviceProvider = new Internals.XamlServiceProvider(null, null); serviceProvider.IXamlTypeResolver = typeResolver; serviceProvider.IProvideValueTarget = new MockValueProvider("Bar", new ReverseConverter()); Assert.Throws <XamlParseException>(() => (new MarkupExtensionParser()).ParseExpression(ref expression, serviceProvider)); }
public void ThrowOnMarkupExtensionNotFound() { var markupString = "{local:Missing}"; var serviceProvider = new Internals.XamlServiceProvider(null, null) { IXamlTypeResolver = typeResolver, }; Assert.Throws <XamlParseException>(() => (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); }
public void TestExtensionWithParameters() { var markupString = "{local:AppendMarkupExtension Value0=Foo, Value1=Bar}"; var serviceProvider = new Internals.XamlServiceProvider(null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider); Assert.That(result, Is.InstanceOf <string>()); Assert.AreEqual("FooBar", result); }
public void TestLookupWithSuffix() { var markupString = "{local:Baa}"; var serviceProvider = new Internals.XamlServiceProvider(null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider); Assert.That(result, Is.InstanceOf <string>()); Assert.AreEqual("BaaExtension", result); }
public void TestLookupOrder() { //The order of lookup is to look for the Extension-suffixed class name first and then look for the class name without the Extension suffix. var markupString = "{local:Fuu}"; var serviceProvider = new Internals.XamlServiceProvider(null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider); Assert.That(result, Is.InstanceOf <string>()); Assert.AreEqual("FuuExtension", result); }
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, }; }
public void TestServiceProvider() { var markupString = "{local:AccessServiceProviderExtension}"; var serviceProvider = new Internals.XamlServiceProvider(null, null) { IProvideValueTarget = new Internals.XamlValueTargetProvider(null, null, null, null), IXamlTypeResolver = typeResolver, IRootObjectProvider = new Internals.XamlRootObjectProvider(null), }; var result = (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider); Assert.That(result, Is.InstanceOf <string>()); Assert.AreEqual("TrueTrueTrue", result); }
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, }; }
public void TestxStatic() { //{x:Static Member=prefix:typeName.staticMemberName} //{x:Static prefix:typeName.staticMemberName} //The code entity that is referenced must be one of the following: // - A constant // - A static property // - A field // - An enumeration value // All other cases should throw var serviceProvider = new Internals.XamlServiceProvider(null, null) { IXamlTypeResolver = typeResolver, }; //Static property var markupString = @"{x:Static Member=""local:MockxStatic.MockStaticProperty""}"; Assert.AreEqual("Property", (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //constant markupString = @"{x:Static Member=""local:MockxStatic.MockConstant""}"; Assert.AreEqual("Constant", (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //field markupString = @"{x:Static Member=""local:MockxStatic.MockField""}"; Assert.AreEqual("Field", (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //enum markupString = @"{x:Static Member=""local:MockEnum.Second""}"; Assert.AreEqual(MockEnum.Second, (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //throw on InstanceProperty markupString = @"{x:Static Member=""local:MockxStatic.InstanceProperty""}"; Assert.Throws <XamlParseException> (() => (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //quotes are optional markupString = @"{x:Static Member=local:MockxStatic.MockStaticProperty}"; Assert.AreEqual("Property", (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); //Member is optional markupString = @"{x:Static local:MockxStatic.MockStaticProperty}"; Assert.AreEqual("Property", (new MarkupExtensionParser()).ParseExpression(ref markupString, serviceProvider)); }
public void TestxStatic () { //{x:Static Member=prefix:typeName.staticMemberName} //{x:Static prefix:typeName.staticMemberName} //The code entity that is referenced must be one of the following: // - A constant // - A static property // - A field // - An enumeration value // All other cases should throw var serviceProvider = new Internals.XamlServiceProvider (null, null) { IXamlTypeResolver = typeResolver, }; //Static property var markupString = @"{x:Static Member=""local:MockxStatic.MockStaticProperty""}"; Assert.AreEqual ("Property", (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //constant markupString = @"{x:Static Member=""local:MockxStatic.MockConstant""}"; Assert.AreEqual ("Constant", (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //field markupString = @"{x:Static Member=""local:MockxStatic.MockField""}"; Assert.AreEqual ("Field", (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //enum markupString = @"{x:Static Member=""local:MockEnum.Second""}"; Assert.AreEqual (MockEnum.Second, (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //throw on InstanceProperty markupString = @"{x:Static Member=""local:MockxStatic.InstanceProperty""}"; Assert.Throws<XamlParseException> (()=> (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //quotes are optional markupString = @"{x:Static Member=local:MockxStatic.MockStaticProperty}"; Assert.AreEqual ("Property", (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); //Member is optional markupString = @"{x:Static local:MockxStatic.MockStaticProperty}"; Assert.AreEqual ("Property", (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); }
public void ThrowOnMarkupExtensionNotFound () { var markupString = "{local:Missing}"; var serviceProvider = new Internals.XamlServiceProvider (null, null) { IXamlTypeResolver = typeResolver, }; Assert.Throws<XamlParseException> (()=> (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider)); }
public void TestExtensionWithParameters () { var markupString = "{local:AppendMarkupExtension Value0=Foo, Value1=Bar}"; var serviceProvider = new Internals.XamlServiceProvider (null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider); Assert.That (result, Is.InstanceOf<string> ()); Assert.AreEqual ("FooBar", result); }
public void TestServiceProvider () { var markupString = "{local:AccessServiceProviderExtension}"; var serviceProvider = new Internals.XamlServiceProvider (null, null) { IProvideValueTarget = new Internals.XamlValueTargetProvider (null, null, null, null), IXamlTypeResolver = typeResolver, IRootObjectProvider = new Internals.XamlRootObjectProvider(null), }; var result = (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider); Assert.That (result, Is.InstanceOf<string> ()); Assert.AreEqual ("TrueTrueTrue", result); }
public void TestLookupWithSuffix () { var markupString = "{local:Baa}"; var serviceProvider = new Internals.XamlServiceProvider (null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider); Assert.That (result, Is.InstanceOf<string> ()); Assert.AreEqual ("BaaExtension", result); }
public void TestLookupOrder () { //The order of lookup is to look for the Extension-suffixed class name first and then look for the class name without the Extension suffix. var markupString = "{local:Fuu}"; var serviceProvider = new Internals.XamlServiceProvider (null, null) { IXamlTypeResolver = typeResolver, }; var result = (new MarkupExtensionParser ()).ParseExpression (ref markupString, serviceProvider); Assert.That (result, Is.InstanceOf<string> ()); Assert.AreEqual ("FuuExtension", result); }