コード例 #1
0
        private static PropertyDescriptor[] GetListAccessorsForAddresses(BrowsableViewModelList <EmployeeVM> list)
        {
            PropertyDescriptorCollection employeeProperties          = list.GetItemProperties(null);
            PropertyDescriptor           addressesPropertyDescriptor = employeeProperties["Addresses"];

            return(new[] { addressesPropertyDescriptor });
        }
コード例 #2
0
        private static PropertyDescriptor[] GetListAccessorsForSimpleTypeProperty(BrowsableViewModelList <EmployeeVM> list)
        {
            var employeeProperties           = list.GetItemProperties(null);
            var simpleTypePropertyDescriptor = employeeProperties["SimpleTypeProperty"];

            return(new[] { simpleTypePropertyDescriptor });
        }
コード例 #3
0
        public void Constructor_WithEnumerable_PopulatesCollection()
        {
            IEnumerable <EmployeeVM> source = new[] { new EmployeeVM(), new EmployeeVM() };
            var list = new BrowsableViewModelList <EmployeeVM>(source);

            CollectionAssert.AreEqual(source.ToArray(), list);
        }
コード例 #4
0
        public void GetItemProperties_WhenListAccessorsIsNull_AlwaysReturnsSameInstance()
        {
            var list   = new BrowsableViewModelList <EmployeeVM>();
            var first  = list.GetItemProperties(listAccessors: null);
            var second = list.GetItemProperties(listAccessors: null);

            Assert.AreSame(first, second);
        }
コード例 #5
0
        public void GetItemProperties_WhenListAccessorsContainsDescendantPropertyAccessor_AlwaysReturnsSameInstance()
        {
            var list = new BrowsableViewModelList <EmployeeVM>();

            var first  = list.GetItemProperties(GetListAccessorsForManagerAddress(list));
            var second = list.GetItemProperties(GetListAccessorsForManagerAddress(list));

            Assert.AreSame(first, second);
        }
コード例 #6
0
        public void GetItemProperties_WhenListAccessorsContainsSimpleType_ReturnsPropertyDescriptorsOfThatType()
        {
            var list             = new BrowsableViewModelList <EmployeeVM>();
            var actualProperties = list.GetItemProperties(listAccessors: GetListAccessorsForSimpleTypeProperty(list));

            var expectedProperties = TypeDescriptor.GetProperties(typeof(SimpleType));

            CollectionAssert.AreEqual(GetExpectations(expectedProperties), GetExpectations(actualProperties));
        }
コード例 #7
0
        public void GetItemProperties_WhenListAccessorsContainsCollectionPropertyDescriptor_ReturnsPropertyDescriptorsOfItemClassDescriptor()
        {
            var list             = new BrowsableViewModelList <EmployeeVM>();
            var actualProperties = list.GetItemProperties(listAccessors: GetListAccessorsForAddresses(list));

            var expectedProperties = AddressVM.ClassDescriptor.Properties;

            CollectionAssert.AreEqual(GetExpectations(expectedProperties), GetExpectations(actualProperties));
        }
コード例 #8
0
        public void GetItemProperties_WhenListAccessorsIsNull_ReturnsPropertyDescriptorsOfClassDescriptor()
        {
            var list             = new BrowsableViewModelList <EmployeeVM>();
            var actualProperties = list.GetItemProperties(listAccessors: null);

            var expectedProperties = EmployeeVM.ClassDescriptor.Properties;

            CollectionAssert.AreEqual(GetExpectations(expectedProperties), GetExpectations(actualProperties));
        }
コード例 #9
0
        public void Add_OnEmptyCollection_AddsItem()
        {
            var list    = new BrowsableViewModelList <EmployeeVM>();
            var newItem = new EmployeeVM();

            list.Add(newItem);

            CollectionAssert.AreEqual(new[] { newItem }, list);
        }
コード例 #10
0
        public void Constructor_WithItemArray_PopulatesCollection()
        {
            var item1 = new EmployeeVM();
            var item2 = new EmployeeVM();

            var list = new BrowsableViewModelList <EmployeeVM>(item1, item2);

            CollectionAssert.AreEqual(new[] { item1, item2 }, list);
        }
コード例 #11
0
        public void Add_OnPopulatedCollection_AddsItem()
        {
            var initialItem = new EmployeeVM();
            var list        = new BrowsableViewModelList <EmployeeVM>(initialItem);
            var newItem     = new EmployeeVM();

            list.Add(newItem);

            CollectionAssert.AreEqual(new[] { initialItem, newItem }, list);
        }
コード例 #12
0
        public void TypeDescriptorGetProperties_ReturnsCorrectProperties()
        {
            var list = new BrowsableViewModelList <ParentVM>(new ParentVM());
            var selectionPropertyNames = TypeDescriptor
                                         .GetProperties(typeof(SingleSelectionVM <SelectionSource>))
                                         .Cast <PropertyDescriptor>()
                                         .Select(x => x.Name)
                                         .ToArray();

            CollectionAssert.Contains(selectionPropertyNames, "SelectedItem");
        }
コード例 #13
0
        public void BrowsableViewModelList_ReturnsCorrectProperties()
        {
            var list                    = new BrowsableViewModelList <ParentVM>(new ParentVM());
            var allProperties           = list.GetItemProperties(null);
            var singleSelectionProperty = allProperties
                                          .Cast <PropertyDescriptor>()
                                          .Single(x => x.Name == "Selection");

            var selectionPropertyNames = list
                                         .GetItemProperties(new[] { singleSelectionProperty })
                                         .Cast <PropertyDescriptor>()
                                         .Select(x => x.Name)
                                         .ToArray();

            CollectionAssert.Contains(selectionPropertyNames, "SelectedItem");
        }
コード例 #14
0
        public void GetItemProperties_ForAViewModelCollectionPropertyOfAnObjectWithoutClassDescriptorAttribute_ReturnsViewModelProperties()
        {
            var list = new BrowsableViewModelList <ViewModelWithClassDescriptorVM>();

            PropertyDescriptorCollection withDescProperties = list.GetItemProperties(null);
            PropertyDescriptor           withoutAttributePropertyDescriptor = withDescProperties["ViewModelWithoutAttribute"];

            PropertyDescriptor withAttributePropertyDescriptor = list
                                                                 .GetItemProperties(new[] { withoutAttributePropertyDescriptor })["ViewModelCollectionWithAttribute"];


            PropertyDescriptorCollection withAttributeProperties = list
                                                                   .GetItemProperties(new[] { withoutAttributePropertyDescriptor, withAttributePropertyDescriptor });

            var expectedProperties = ViewModelWithClassDescriptorVM.ClassDescriptor.Properties;

            CollectionAssert.AreEqual(GetExpectations(expectedProperties), GetExpectations(withAttributeProperties));
        }