public async Task TypeConvertFromPropertyAttribute()
        {
            const string value = "value";
            var          obj   = new ConversionClass2();

            var           provider = new ReflectionEditorProvider();
            IObjectEditor editor   = await provider.GetObjectEditorAsync(obj);

            Assume.That(editor.Properties.Count, Is.EqualTo(1));

            await editor.SetValueAsync(editor.Properties.Single(), new ValueInfo <string> {
                Value  = value,
                Source = ValueSource.Local
            });

            Assert.That(obj.Property, Is.Not.Null);
            Assert.That(obj.Property.Property, Is.EqualTo(value));
        }
        public async Task TypeConverterToPropertyAttribute()
        {
            const string value = "value";
            var          obj   = new ConversionClass2 {
                Property = new TestClass2 {
                    Property = value
                }
            };

            var           provider = new ReflectionEditorProvider();
            IObjectEditor editor   = await provider.GetObjectEditorAsync(obj);

            Assume.That(editor.Properties.Count, Is.EqualTo(1));

            ValueInfo <string> info = await editor.GetValueAsync <string> (editor.Properties.Single());

            Assert.That(info.Value, Is.EqualTo(value));
            Assert.That(info.Source, Is.EqualTo(ValueSource.Local));
        }