public void GetSetValueTest()
        {
            string cityname = "Brisbane";
            var a = new Address()
            {
                City = new City() { Name = cityname, State = State.QLD }
            };
            Person p = new Person
            {
                Address = a
            };
            string propname = "Address.City.Name";
            var npd = new NestedPropertyDescriptor(typeof(Person), propname);

            // Get the value
            Assert.Equal(p.Address.City.Name, npd.GetValue(p));
            Assert.Equal(cityname, npd.GetValue(p));

            // Set the city name
            cityname = "Gold Coast";

            npd.SetValue(p, cityname);
            Assert.Equal(p.Address.City.Name, npd.GetValue(p));
            Assert.Equal(cityname, npd.GetValue(p));
        }
        public void GetSetValueTest()
        {
            string cityname = "Brisbane";
            var    a        = new Address()
            {
                City = new City()
                {
                    Name = cityname, State = State.QLD
                }
            };
            Person p = new Person
            {
                Address = a
            };
            string propname = "Address.City.Name";
            var    npd      = new NestedPropertyDescriptor(typeof(Person), propname);

            // Get the value
            Assert.Equal(p.Address.City.Name, npd.GetValue(p));
            Assert.Equal(cityname, npd.GetValue(p));

            // Set the city name
            cityname = "Gold Coast";

            npd.SetValue(p, cityname);
            Assert.Equal(p.Address.City.Name, npd.GetValue(p));
            Assert.Equal(cityname, npd.GetValue(p));
        }