public void GetFilteredTypesShouldReturnAllBasicTypesWithNoFilter() { var expected = new HashSet <Type>(SerializableTypeDrawer.GetDerivedTypes(null)); var property = GetProperty(nameof(NoTypeFilter)); var actual = new HashSet <Type>(SerializableTypeDrawer.GetFilteredTypes(property, null)); Assert.AreEqual(expected, actual); }
public void GetFilteredTypesWithNullFilterDelegateShouldReturnTypesMatchingDelegate() { var expected = new HashSet <Type>(NullFilter(SerializableTypeDrawer.GetDerivedTypes(null)) ?? new Type[0]); var field = GetFieldInfo <SerializableTypeDrawerTest>(x => x.NullTypeFilter); var attribute = (TypeFilterAttribute)Attribute.GetCustomAttribute(field, typeof(TypeFilterAttribute)); var property = GetProperty(nameof(NullTypeFilter)); var actual = new HashSet <Type>(SerializableTypeDrawer.GetFilteredTypes(property, attribute)); Assert.AreEqual(expected, actual); }
public void GetFilteredTypesWithDerivedFromAttributeShouldReturnOnlyTypesDerivedFromDeclaredType() { var expected = new HashSet <Type>(SerializableTypeDrawer.GetDerivedTypes(typeof(A))); var field = GetFieldInfo <SerializableTypeDrawerTest>(x => x.DerivedFromTypeFilter); var attribute = (TypeFilterAttribute)Attribute.GetCustomAttribute(field, typeof(TypeFilterAttribute)); var property = GetProperty(nameof(DerivedFromTypeFilter)); var actual = new HashSet <Type>(SerializableTypeDrawer.GetFilteredTypes(property, attribute)); Assert.AreEqual(expected, actual); }