public void GetPropertiesToActivate_IncludesNonPublic() { // Arrange var instance = new TestClassWithPropertyVisiblity(); var typeInfo = instance.GetType().GetTypeInfo(); // Act var propertiesToActivate = PropertyActivator <int> .GetPropertiesToActivate( typeof(TestClassWithPropertyVisiblity), typeof(TestActivateAttribute), (propertyInfo) => new PropertyActivator <int>(propertyInfo, valueAccessor : (val) => val), includeNonPublic : true); // Assert Assert.Equal(5, propertiesToActivate.Length); }
public void GetPropertiesToActivate_ExcludesNonPublic() { // Arrange var instance = new TestClassWithPropertyVisiblity(); var typeInfo = instance.GetType().GetTypeInfo(); var expectedPropertyInfo = typeInfo.GetDeclaredProperty("Public"); // Act var propertiesToActivate = PropertyActivator <int> .GetPropertiesToActivate( typeof(TestClassWithPropertyVisiblity), typeof(TestActivateAttribute), (propertyInfo) => new PropertyActivator <int>(propertyInfo, valueAccessor : (val) => val)); // Assert Assert.Equal(1, propertiesToActivate.Length); Assert.Single(propertiesToActivate, p => p.PropertyInfo == expectedPropertyInfo); }
public void GetPropertiesToActivate_CanCreateCustomPropertyActivators() { // Arrange var instance = new TestClass(); var typeInfo = instance.GetType().GetTypeInfo(); var expectedPropertyInfo = typeInfo.GetDeclaredProperty("IntProperty"); // Act var propertiesToActivate = PropertyActivator <int> .GetPropertiesToActivate( type : typeof(TestClass), activateAttributeType : typeof(TestActivateAttribute), createActivateInfo : (propertyInfo) => new PropertyActivator <int>(expectedPropertyInfo, valueAccessor: (val) => val + 1)); // Assert Assert.Collection( propertiesToActivate, (activator) => { Assert.Equal(expectedPropertyInfo, activator.PropertyInfo); }); }