/// <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); }