public void GetTypeDescriptorGetPropertiesWrappedPropertyDescriptor_ShouldSerializeValue_Success()
        {
            var provider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(ClassWithMetadataOnAnotherClass));
            PropertyDescriptorCollection properties = provider.GetTypeDescriptor(typeof(ClassWithMetadataOnAnotherClass), null).GetProperties();
            PropertyDescriptor           descriptor = properties[nameof(ClassWithMetadataOnAnotherClass.FirstName)];

            var component = new ClassWithMetadataOnAnotherClass();

            Assert.True(descriptor.ShouldSerializeValue(component));
        }
        public void GetTypeDescriptorGetPropertiesWrappedPropertyDescriptor_AddValueChanged_Success()
        {
            var provider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(ClassWithMetadataOnAnotherClass));
            PropertyDescriptorCollection properties = provider.GetTypeDescriptor(typeof(ClassWithMetadataOnAnotherClass), null).GetProperties();
            PropertyDescriptor           descriptor = properties[nameof(ClassWithMetadataOnAnotherClass.FirstName)];

            var          component = new ClassWithMetadataOnAnotherClass();
            int          callCount = 0;
            EventHandler handler   = (sender, e) => callCount++;

            descriptor.AddValueChanged(component, handler);
            descriptor.SetValue(component, "value");
            Assert.Equal(1, callCount);
        }
        public void GetTypeDescriptorGetPropertiesWrappedPropertyDescriptor_ResetValue_Success()
        {
            var provider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(ClassWithMetadataOnAnotherClass));
            PropertyDescriptorCollection properties = provider.GetTypeDescriptor(typeof(ClassWithMetadataOnAnotherClass), null).GetProperties();
            PropertyDescriptor           descriptor = properties[nameof(ClassWithMetadataOnAnotherClass.FirstName)];

            var component = new ClassWithMetadataOnAnotherClass
            {
                FirstName = "value"
            };

            descriptor.ResetValue(component);
            Assert.Equal("value", descriptor.GetValue(component));
            Assert.Equal("value", component.FirstName);
        }