diff --git a/src/Umbraco.Core/Dynamics/DynamicXml.cs b/src/Umbraco.Core/Dynamics/DynamicXml.cs index 53db732bea..0cfc13e58c 100644 --- a/src/Umbraco.Core/Dynamics/DynamicXml.cs +++ b/src/Umbraco.Core/Dynamics/DynamicXml.cs @@ -10,7 +10,7 @@ using System.Web; namespace Umbraco.Core.Dynamics { - internal class DynamicXml : DynamicObject, IEnumerable + public class DynamicXml : DynamicObject, IEnumerable { public XElement BaseElement { get; set; } diff --git a/src/Umbraco.Tests/DynamicDocument/DynamicXmlTests.cs b/src/Umbraco.Tests/DynamicDocument/DynamicXmlTests.cs new file mode 100644 index 0000000000..b302f27979 --- /dev/null +++ b/src/Umbraco.Tests/DynamicDocument/DynamicXmlTests.cs @@ -0,0 +1,58 @@ +using System; +using System.Xml; +using System.Xml.Linq; +using Microsoft.CSharp.RuntimeBinder; +using NUnit.Framework; +using Umbraco.Core.Dynamics; + +namespace Umbraco.Tests.DynamicDocument +{ + [TestFixture] + public class DynamicXmlTests + { + + /// + /// Test the current Core class + /// + [Test] + public void Find_Test_Core_Class() + { + RunFindTest(x => new DynamicXml(x)); + } + + /// + /// Tests the macroEngines legacy class + /// + [Test] + public void Find_Test_Legacy_Class() + { + RunFindTest(x => new global::umbraco.MacroEngines.DynamicXml(x)); + } + + private void RunFindTest(Func getDynamicXml) + { + var xmlstring = @" + + + +"; + + dynamic dXml = getDynamicXml(xmlstring); + + var result1 = dXml.Find("@name", "test 1"); + var result2 = dXml.Find("@name", "test 2"); + var result3 = dXml.Find("@name", "test 3"); + var result4 = dXml.Find("@name", "dont find"); + + Assert.AreEqual("found 1", result1.value); + Assert.AreEqual("found 2", result2.value); + Assert.AreEqual("found 3", result3.value); + Assert.Throws(() => + { + //this will throw because result4 is not found + var temp = result4.value; + }); + } + + } +} \ No newline at end of file diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 0f24401bad..df5601255e 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -55,6 +55,7 @@ +