Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }