/// <summary>
        /// Gets an img tag of the Gravatar for the supplied specifications.
        /// </summary>
        /// <param name="htmlHelper">The HtmlHelper object that does the rendering.</param>
        /// <param name="email">The email address whose Gravatar should be rendered.</param>
        /// <param name="size">The size of the rendered Gravatar.</param>
        /// <param name="defaultImage">The default image to display if no Gravatar exists for the specified <paramref name="email"/>.</param>
        /// <param name="maxRating">The maximum Gravatar rating to allow for rendered Gravatars.</param>
        /// <param name="htmlAttributes">Additional attributes to include in the rendered tag.</param>
        /// <returns>An HTML string of the rendered img tag.</returns>
        public static MvcHtmlString Gravatar(
            this HtmlHelper htmlHelper,
            string email,
            int? size,
            string defaultImage,
            Rating? maxRating,
            IDictionary<string, string> htmlAttributes
        ) {            
            var gravatar = new Gravatar();
            gravatar.DefaultImage = defaultImage;
            if (size.HasValue) gravatar.Size = size.Value;
            if (maxRating.HasValue) gravatar.MaxRating = maxRating.Value;

            return MvcHtmlString.Create(gravatar.Render(email, htmlAttributes));
        }
        public void Gravatar_ReturnsRenderedHtml() {
            var email = "*****@*****.**";
            var size = 110;
            var defaultImage = "pathtodefault.img";
            var maxRating = GravatarRating.R;
            var attributes = new Dictionary<string, object>
            {
                { "name1", "val1" },
                { "name2", "val2" }
            };

            var gravatarHtml = GravatarHtml.Gravatar(null, email, size, maxRating, defaultImage, false, false, attributes);

            var gravatar = new Gravatar();
            gravatar.Size = size;
            gravatar.Rating = maxRating;
            gravatar.Default = defaultImage;

            Assert.AreEqual(MvcHtmlString.Create(gravatar.Render(email, htmlAttributes: attributes)).ToString(), gravatarHtml.ToString());
        }
        public void Gravatar_ReturnsRenderedHtml()
        {
            var email        = "*****@*****.**";
            var size         = 110;
            var defaultImage = "pathtodefault.img";
            var maxRating    = GravatarRating.R;
            var attributes   = new Dictionary <string, object>
            {
                { "name1", "val1" },
                { "name2", "val2" }
            };

            var gravatarHtml = GravatarHtml.Gravatar(null, email, size, maxRating, defaultImage, false, false, attributes);

            var gravatar = new Gravatar();

            gravatar.Size    = size;
            gravatar.Rating  = maxRating;
            gravatar.Default = defaultImage;

            Assert.AreEqual(MvcHtmlString.Create(gravatar.Render(email, htmlAttributes: attributes)).ToString(), gravatarHtml.ToString());
        }
        /// <summary>
        /// Gets an img tag of the Gravatar for the supplied specifications.
        /// </summary>
        /// <param name="htmlHelper">The HtmlHelper object that does the rendering.</param>
        /// <param name="email">The email address whose Gravatar should be rendered.</param>
        /// <param name="size">The size of the rendered Gravatar.</param>
        /// <param name="defaultImage">The default image to display if no Gravatar exists for the specified <paramref name="email"/>.</param>
        /// <param name="maxRating">The maximum Gravatar rating to allow for rendered Gravatars.</param>
        /// <param name="htmlAttributes">Additional attributes to include in the rendered tag.</param>
        /// <returns>An HTML string of the rendered img tag.</returns>
        public static MvcHtmlString Gravatar(
            this HtmlHelper htmlHelper,
            string email,
            int?size,
            string defaultImage,
            Rating?maxRating,
            IDictionary <string, string> htmlAttributes
            )
        {
            var gravatar = new Gravatar();

            gravatar.DefaultImage = defaultImage;
            if (size.HasValue)
            {
                gravatar.Size = size.Value;
            }
            if (maxRating.HasValue)
            {
                gravatar.MaxRating = maxRating.Value;
            }

            return(MvcHtmlString.Create(gravatar.Render(email, htmlAttributes)));
        }