public void CreateFromNullXElementShouldFail() { var ex = Assert.Throws <ArgumentNullException>(() => DynamicXElementReader.CreateInstance(default(XElement))); Assert.IsNotNull(ex); Assert.AreEqual("element", ex.ParamName); }
public void CanCastToInt() { var elem = XElement.Parse("<root>123</root>"); var dyn = DynamicXElementReader.CreateInstance(elem); int casted = dyn; Assert.AreEqual(123, casted); }
public void CanCastToString() { var elem = XElement.Parse("<root>123</root>"); var dyn = DynamicXElementReader.CreateInstance(elem); string casted = dyn; Assert.AreEqual("123", casted); }
public void CanCreateDynamicReader() { var elem = new XElement("Root"); dynamic dyn = DynamicXElementReader.CreateInstance(elem); Assert.IsNotNull(dyn); Assert.IsNotNullOrEmpty(dyn.ToString()); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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())); }
public void CreateInstanceFailureTest() { dynamic actual = DynamicXElementReader.CreateInstance(null); }