public void Extension_GetPropertyDescriptors_Test()
        {
            var sut1 = new TestClass1();
            var sut2 = new TestClass2();

            var propDesc1 = sut1.GetPropertyDescriptors();

            Assert.AreEqual(13, propDesc1.Count);
            var propDesc2 = sut2.GetPropertyDescriptors();

            Assert.AreEqual(11, propDesc2.Count);

            propDesc1 = sut1.GetPropertyDescriptors(pd => { return(pd.IsBrowsable && !pd.IsReadOnly); });
            Assert.AreEqual(10, propDesc1.Count);
        }
        public void Extension_GetStandardValues_Test()
        {
            var sut      = new TestClass1();
            var sutProps = new List <object>(new object[] { sut }).GetDistinctDisplayNames();

            var pds = sut.GetPropertyDescriptors();

            pds.ForEach(pd =>
            {
                var values = sut.GetStandardValues(pd.DisplayName);

                if (pd.DisplayName == "ListValue" || pd.DisplayName == "DynamicProperty")
                {
                    Assert.AreEqual(5, values.Count);
                }
                else
                {
                    Assert.AreEqual(0, values.Count);
                }
            });
        }