public void GetAttributesForParameter_NoAttributes() { // Arrange & Act var attributes = ModelAttributes.GetAttributesForParameter( typeof(MethodWithParamAttributesType) .GetMethod(nameof(MethodWithParamAttributesType.Method)) .GetParameters()[0]); // Assert Assert.Empty(attributes.Attributes); Assert.Empty(attributes.ParameterAttributes); Assert.Null(attributes.TypeAttributes); Assert.Null(attributes.PropertyAttributes); }
public void GetAttributesForParameter_NoAttributes() { // Arrange & Act var attributes = ModelAttributes.GetAttributesForParameter( typeof(MethodWithParamAttributesType) .GetMethod(nameof(MethodWithParamAttributesType.Method)) .GetParameters()[0]); // Assert // Not exactly "no attributes" due to SerializableAttribute on object. Assert.IsType <SerializableAttribute>(Assert.Single(attributes.Attributes)); Assert.Empty(attributes.ParameterAttributes); Assert.Null(attributes.PropertyAttributes); Assert.Equal(attributes.Attributes, attributes.TypeAttributes); }
public void GetAttributesForParameter_SomeAttributes() { // Arrange & Act var attributes = ModelAttributes.GetAttributesForParameter( typeof(MethodWithParamAttributesType) .GetMethod(nameof(MethodWithParamAttributesType.Method)) .GetParameters()[1]); // Assert Assert.IsType <RequiredAttribute>(attributes.Attributes[0]); Assert.IsType <RangeAttribute>(attributes.Attributes[1]); Assert.IsType <RequiredAttribute>(attributes.ParameterAttributes[0]); Assert.IsType <RangeAttribute>(attributes.ParameterAttributes[1]); Assert.Null(attributes.TypeAttributes); Assert.Null(attributes.PropertyAttributes); }
public void GetAttributesForParameter_IncludesTypeAttributes() { // Arrange var parameters = typeof(MethodWithParamAttributesType) .GetMethod(nameof(MethodWithParamAttributesType.Method)) .GetParameters(); // Act var attributes = ModelAttributes.GetAttributesForParameter(parameters[2]); // Assert Assert.Collection(attributes.Attributes, attribute => Assert.IsType <BindRequiredAttribute>(attribute), attribute => Assert.IsType <ClassValidator>(attribute)); Assert.IsType <BindRequiredAttribute>(Assert.Single(attributes.ParameterAttributes)); Assert.Null(attributes.PropertyAttributes); Assert.IsType <ClassValidator>(Assert.Single(attributes.TypeAttributes)); }
public void GetAttributesForParameter_SomeAttributes() { // Arrange & Act var attributes = ModelAttributes.GetAttributesForParameter( typeof(MethodWithParamAttributesType) .GetMethod(nameof(MethodWithParamAttributesType.Method)) .GetParameters()[1]); // Assert Assert.Collection( // Take(2) to ignore ComVisibleAttribute, SerializableAttribute, ... on int. attributes.Attributes.Take(2), attribute => Assert.IsType <RequiredAttribute>(attribute), attribute => Assert.IsType <RangeAttribute>(attribute)); Assert.Collection( attributes.ParameterAttributes, attribute => Assert.IsType <RequiredAttribute>(attribute), attribute => Assert.IsType <RangeAttribute>(attribute)); Assert.Null(attributes.PropertyAttributes); Assert.Collection( // Take(1) because the attribute or attributes after SerializableAttribute are framework-specific. attributes.TypeAttributes.Take(1), attribute => Assert.IsType <SerializableAttribute>(attribute)); }