public void XliffElement_GetSetPropertyValue() { TestAncestorXliffElement ancestor; TestXliffElement element; TestXliffElement parent; const string propertyName = "Property"; element = new TestXliffElement(); Console.WriteLine("Test with default value."); Assert.AreEqual(100, element.CallGetPropertyValue(propertyName), "Value is incorrect."); Console.WriteLine("Test with new value."); element.CallSetPropertyValue(200, propertyName); Assert.AreEqual(200, element.CallGetPropertyValue(propertyName), "Value is incorrect."); Console.WriteLine("Test with parent inherited value."); parent = new TestXliffElement(); parent.ParentInheritedProperty = 302; element.Parent = parent; Assert.AreEqual(parent.ParentInheritedProperty, element.CallGetPropertyValue("ParentInheritedProperty"), "Value is incorrect."); Console.WriteLine("Test with ancestor inherited value."); parent = new TestXliffElement(); element.Parent = parent; ancestor = new TestAncestorXliffElement(); ancestor.AncestorInheritedProperty = 500; parent.Parent = ancestor; Assert.AreEqual(ancestor.AncestorInheritedProperty, element.CallGetPropertyValue("AncestorInheritedProperty"), "Value is incorrect."); Console.WriteLine("Test with ancestor inherited value with a different name."); parent = new TestXliffElement(); element.Parent = parent; ancestor = new TestAncestorXliffElement(); ancestor.Property = 600; parent.Parent = ancestor; Assert.AreEqual(ancestor.Property, element.CallGetPropertyValue("AncestorInheritedPropertyDifferentName"), "Value is incorrect."); Console.WriteLine("Test with callback inherited value."); Assert.AreEqual(40, element.CallGetPropertyValue("CallbackInheritedProperty"), "Value is incorrect."); }