Ejemplo n.º 1
0
        /// <summary>
        /// Tests whether the collected attributes contain <see cref="ProducesAttribute"/>.
        /// </summary>
        /// <param name="controllerActionAttributesTestBuilder">
        /// Instance of <see cref="IControllerActionAttributesTestBuilder{TAttributesTestBuilder}"/> type.
        /// </param>
        /// <param name="ofContentType">Expected content type.</param>
        /// <returns>The same attributes test builder.</returns>
        public static TAttributesTestBuilder SpecifyingProduction <TAttributesTestBuilder>(
            this IControllerActionAttributesTestBuilder <TAttributesTestBuilder> controllerActionAttributesTestBuilder,
            string ofContentType)
            where TAttributesTestBuilder : IControllerActionAttributesTestBuilder <TAttributesTestBuilder>
        {
            var actualBuilder = (BaseAttributesTestBuilder <TAttributesTestBuilder>)controllerActionAttributesTestBuilder;

            actualBuilder.ContainingAttributeOfType <ProducesAttribute>();

            actualBuilder.Validations.Add(attrs =>
            {
                var producesAttribute = actualBuilder.GetAttributeOfType <ProducesAttribute>(attrs);

                ContentTypeValidator.ValidateAttributeContainingOfContentType(
                    producesAttribute,
                    ofContentType,
                    actualBuilder.ThrowNewAttributeAssertionException);
            });

            return(actualBuilder.AttributesTestBuilder);
        }