public async Task <IReadOnlyCollection <IPropertyInfo> > GetPropertiesForTypeAsync(ITypeInfo type) { Type realType = ReflectionEditorProvider.GetRealType(type); if (realType == null) { return(Array.Empty <IPropertyInfo>()); } return(ReflectionEditorProvider.GetPropertiesForType(realType)); }
public async Task <IReadOnlyCollection <IPropertyInfo> > GetPropertiesForTypeAsync(ITypeInfo type) { Type realType = ReflectionEditorProvider.GetRealType(type); if (realType == null) { return(Array.Empty <IPropertyInfo> ()); } if (typeof(MockControl).IsAssignableFrom(realType)) { object item = await CreateObjectAsync(type); IObjectEditor editor = ChooseEditor(item); return(editor.Properties); } return(ReflectionEditorProvider.GetPropertiesForType(realType)); }
public async Task ResourceProperties() { object target = new object(); var property = GetBasicProperty(); var editor = GetBasicEditor(target, property.Object); var resources = new MockResourceProvider(); var source = new BindingSource("Resources", BindingSourceType.Resource); var bindings = GetBasicBindingProvider(target, property.Object, sources: new [] { source }); bindings.Setup(bp => bp.GetResourcesAsync(source, target)) .Returns <BindingSource, object> (async(bs, t) => { var rs = await resources.GetResourcesAsync(target, CancellationToken.None); return(rs.ToLookup(r => r.Source)); }); var vm = new CreateBindingViewModel( new TargetPlatform(new MockEditorProvider(editor.Object), resources, bindings.Object), editor.Object, property.Object); Assume.That(vm.SelectedBindingSource, Is.EqualTo(source)); Assume.That(vm.SourceResources, Is.Not.Null); await vm.SourceResources.Task; while (vm.SelectedObjects.Count == 0) { await Task.Delay(1); } var binding = (MockBinding)vm.SelectedObjects.First(); vm.SelectedResource = vm.SourceResources.Value.First().OfType <Resource <CommonSolidBrush> >().First(); Assert.That(binding.SourceParameter, Is.EqualTo(vm.SelectedResource)); Assume.That(vm.PropertyRoot, Is.Not.Null); await vm.PropertyRoot.Task; Assert.That(vm.PropertyRoot.Value.TargetType, Is.EqualTo(typeof(CommonSolidBrush).ToTypeInfo())); CollectionAssert.AreEqual(ReflectionEditorProvider.GetPropertiesForType(typeof(CommonSolidBrush)), vm.PropertyRoot.Value.Children.Select(pe => pe.Property)); }