Inheritance: IUserData
        /// <summary>
        /// Quickly generate a fake Claims Principal.
        /// </summary>
        /// <remarks>This is mainly for unit tests.</remarks>
        /// <param name="userData">Optional: some user data. Otherwise, some default fake data is created.</param>
        /// <returns>ClaimsPrincipal with either the provided UserData or some default UserData.</returns>
        public static IPrincipal FakeClaimsPrincipal(UserData userData = null)
        {
            if (userData == null)
            {
                userData = new UserData
                           {
                               DisplayName = "Leah.Culver",
                               PictureUri = "http://i.imgur.com/hVuuJ.png",
                               UserId = "users/1"
                           };
            }

            var identity = new ClaimsIdentity(userData.ToClaims(), "Forms");
            return new ClaimsPrincipal(identity);
        }
        // Reference: http://nerddinnerbook.s3.amazonaws.com/Part12.htm
        //            Yes .. Nerd Dinner to the rescue! and we come full circle...
        public static void SetUpControllerContext(ControllerBase controller,
                                                  string userId = null,
                                                  string displayName = null)
        {
            Condition.Requires(controller);

            // Some fake Authentication stuff.
            // TODO: Replace with CLAIMS.
            var userData = new UserData
                {
                    UserId = userId,
                    DisplayName = displayName
                };
            var customIdentity = new ClaimsIdentity(userData.ToClaims(), "Forms");
            var customPrincipal = new ClaimsPrincipal(customIdentity);

            var mockControllerContext = new Mock<ControllerContext>();
            mockControllerContext.Setup(x => x.HttpContext.User).Returns(customPrincipal);

            controller.ControllerContext = mockControllerContext.Object;
        }
        public ActionResult Authenticate()
        {
            var userData = new UserData
            {
                UserId = "users/1",
                DisplayName = "Leah Culver",
                PictureUri = "/Content/LeahCulverAvatar.png"
            };
            _customFormsAuthentication.SignIn(userData);

            return RedirectToAction("Index", "Home", new { area = "" });
        }