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.");
        }
        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.");
        }