Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }