public void CurrentUser_LoggedIn_SetsValues()
        {
            string userId   = Guid.NewGuid().ToString();
            string userName = Guid.NewGuid().ToString();
            string email    = Guid.NewGuid().ToString();

            ApothecaBaseController controller = CreateController(userId, userName, email);

            UserInfo userInfo = controller.CurrentUser;

            Assert.AreEqual(userId, userInfo.AuthId);
            Assert.AreEqual(userName, userInfo.Name);
            Assert.AreEqual(email, userInfo.Email);
        }
        public void IsCurrentUser_PrincipalWithNoClaims_ReturnsFalse()
        {
            ApothecaBaseController controller = new ApothecaBaseController();
            var user = new ClaimsPrincipal(new ClaimsIdentity());

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            Assert.IsFalse(controller.IsCurrentUser);
        }
        private ApothecaBaseController CreateController(string userId = "11111", string userName = "******", string email = "*****@*****.**")
        {
            var controller = new ApothecaBaseController();

            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, userId),
                new Claim(ClaimTypes.Name, userName),
                new Claim(ClaimTypes.Email, email),
            }, "mock"));

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            return(controller);
        }
        public void CurrentUser_NotLoggedIn_ThrowsNullReferenceException()
        {
            ApothecaBaseController controller = new ApothecaBaseController();

            Assert.Throws <NullReferenceException>(() => { var user = controller.CurrentUser; });
        }
        public void IsCurrentUser_PrincipalWithClaims_ReturnsTrue()
        {
            ApothecaBaseController controller = CreateController();

            Assert.IsTrue(controller.IsCurrentUser);
        }
        public void IsCurrentUser_NoPrincipal_ReturnsFalse()
        {
            ApothecaBaseController controller = new ApothecaBaseController();

            Assert.IsFalse(controller.IsCurrentUser);
        }