Exemplo n.º 1
0
            public void CreateFromNullXElementShouldFail()
            {
                var ex = Assert.Throws <ArgumentNullException>(() => DynamicXElementReader.CreateInstance(default(XElement)));

                Assert.IsNotNull(ex);
                Assert.AreEqual("element", ex.ParamName);
            }
Exemplo n.º 2
0
            public void CanCastToInt()
            {
                var elem   = XElement.Parse("<root>123</root>");
                var dyn    = DynamicXElementReader.CreateInstance(elem);
                int casted = dyn;

                Assert.AreEqual(123, casted);
            }
Exemplo n.º 3
0
            public void CanCastToString()
            {
                var    elem   = XElement.Parse("<root>123</root>");
                var    dyn    = DynamicXElementReader.CreateInstance(elem);
                string casted = dyn;

                Assert.AreEqual("123", casted);
            }
Exemplo n.º 4
0
            public void CanCreateDynamicReader()
            {
                var     elem = new XElement("Root");
                dynamic dyn  = DynamicXElementReader.CreateInstance(elem);

                Assert.IsNotNull(dyn);
                Assert.IsNotNullOrEmpty(dyn.ToString());
            }
Exemplo n.º 5
0
            public void CanCastToDouble()
            {
                var    elem   = XElement.Parse(string.Format("<root>{0}</root>", 123.1234567));
                var    dyn    = DynamicXElementReader.CreateInstance(elem);
                double casted = dyn;

                Assert.AreEqual(123.1234567, casted);
            }
Exemplo n.º 6
0
            public void CanNavigateToChildElement()
            {
                var      elem  = XElement.Parse("<root><item><subitem>123</subitem></item></root>");
                var      dyn   = DynamicXElementReader.CreateInstance(elem);
                XElement child = dyn.item.subitem;

                Assert.AreEqual("subitem", child.Name.LocalName);
                Assert.AreEqual("123", child.Value);
            }
Exemplo n.º 7
0
            public void CanCastToTimeSpan()
            {
                var      time   = TimeSpan.FromMinutes(120.5);
                var      elem   = XElement.Parse(string.Format("<root>{0}</root>", time));
                var      dyn    = DynamicXElementReader.CreateInstance(elem);
                TimeSpan casted = dyn;

                Assert.AreEqual(time, casted);
            }
Exemplo n.º 8
0
            public void NavigationToAbsentElementShouldFail()
            {
                var elem = XElement.Parse("<root>123</root>");
                var dyn  = DynamicXElementReader.CreateInstance(elem);
                // ReSharper disable UnusedVariable
                var ex = Assert.Throws <InvalidOperationException>(() => { var notUsed = dyn.NotExists; });

                // ReSharper restore UnusedVariable
                Assert.IsNotNull(ex);
                Assert.AreEqual("Element 'NotExists' not found among subelements of 'root'", ex.Message);
            }
Exemplo n.º 9
0
            public void CanReadAttributes()
            {
                var elem = XElement.Parse(string.Format("<root str='123' int='123' double='{0}'></root>", 123.1234567));
                var dyn  = DynamicXElementReader.CreateInstance(elem);

                string strVal    = dyn["str"];
                int    intVal    = dyn["int"];
                double doubleVal = dyn["double"];

                Assert.AreEqual("123", strVal);
                Assert.AreEqual(123, intVal);
                Assert.AreEqual(123.1234567, doubleVal);
            }
Exemplo n.º 10
0
            public void NavigationToNotExistingChildElementByIndexShouldFail()
            {
                var elem = new XElement("root", new XElement("item", "item1"));

                var dyn = DynamicXElementReader.CreateInstance(elem);

                // ReSharper disable UnusedVariable
                var ex = Assert.Throws <ArgumentOutOfRangeException>(() => { var notUsed = dyn.item[3]; });

                // ReSharper restore UnusedVariable

                Assert.IsNotNull(ex);
            }
Exemplo n.º 11
0
            public void CanNavigateToChildElementByIndex()
            {
                var item1 = new XElement("item", "item1");
                var item2 = new XElement("item", "item2");
                var elem  = new XElement("root", item1, item2);

                var dyn = DynamicXElementReader.CreateInstance(elem);

                XElement dynItem1 = dyn.item[0];
                XElement dynItem2 = dyn.item[1];

                Assert.AreEqual(item1, dynItem1);
                Assert.AreEqual(item2, dynItem2);
            }
Exemplo n.º 12
0
        public void EqualsMethodTest()
        {
            // ToString method should call underlying element.ToString method
            XElement element1        = new XElement("name", "value");
            XElement element2        = new XElement("name", "value");
            dynamic  dynamicElement1 = DynamicXElementReader.CreateInstance(element1);
            dynamic  dynamicElement2 = DynamicXElementReader.CreateInstance(element2);

            Console.WriteLine("Equals: " + dynamicElement1.Equals(dynamicElement2));
            Assert.That(element1.Equals(element2),
                        Is.EqualTo(dynamicElement1.Equals(dynamicElement2)));

            Console.WriteLine("Hashcodes: element1: {0}, element2: {1}", element1.GetHashCode(), element2.GetHashCode());
            Assert.That(element1.GetHashCode(), Is.EqualTo(dynamicElement1.GetHashCode()));
            Assert.That(element2.GetHashCode(), Is.EqualTo(dynamicElement2.GetHashCode()));
        }
Exemplo n.º 13
0
 public void CreateInstanceFailureTest()
 {
     dynamic actual = DynamicXElementReader.CreateInstance(null);
 }