Example #1
0
        public void RefreshTokenController_MustHave_AuthorizeAttribute()
        {
            var controller            = new RefreshTokenController(new Mock <IRefreshTokenService>().Object);
            var hasAuthorizeAttribute = Helper.ControllerHasAttribute <RefreshTokenController, AuthorizeAttribute>(controller);

            Assert.IsTrue(hasAuthorizeAttribute);
        }
Example #2
0
        public void RefreshTokenController_MustHave_AuthorizeAttribute_WithAdminRole()
        {
            var controller         = new RefreshTokenController(new Mock <IRefreshTokenService>().Object);
            var authorizeAttribute = Helper.GetAttribute <RefreshTokenController, AuthorizeAttribute>(controller);

            Assert.IsTrue(authorizeAttribute.Roles.Contains(AppRoles.AdminRole));
        }
        public async Task GetTokensInfoForAccount_When_Exception_Is_Thrown_Logs_Exception_And_Returns_BadRequest()
        {
            // Arrange
            var loggerMock = new Mock <ILogger>();
            RefreshTokenController controller = new RefreshTokenController(loggerMock.Object);
            // Query mock
            var queryMock = new Mock <IGetAllTokensForAccountQuery>();
            var exception = new Exception();

            queryMock.Setup(x => x.Execute(It.IsAny <string>())).ThrowsAsync(exception);

            // Act
            var actionResult = await controller.GetTokensInfoForAccount("some id", queryMock.Object);

            // Assert
            loggerMock.Verify(x => x.LogAsync(It.Is <Log>(l => l.Type == LogType.Error && l.Context == "RefreshTokenController.GetTokensInfoForAccount"), default), Times.Once);
            Assert.IsInstanceOf <BadRequestObjectResult>(actionResult);
            var badRequestResult = (BadRequestObjectResult)actionResult;

            Assert.AreEqual(400, badRequestResult.StatusCode);
            Assert.IsInstanceOf <Message>(badRequestResult.Value);
            var errorMessage = (Message)badRequestResult.Value;

            Assert.AreEqual("Something went wrong.", errorMessage.Text);
        }
        public async Task GetTokensInfoForAccount_When_Called_Returns_Ok_With_List_Of_All_Tokens_For_Accound()
        {
            // Arrange
            ILogger logger = new Mock <ILogger>().Object;
            RefreshTokenController controller = new RefreshTokenController(logger);
            string accountId = "some id";
            // Query mock
            var queryMock     = new Mock <IGetAllTokensForAccountQuery>();
            var accountTokens = new List <AccountTokenModel>()
            {
                new AccountTokenModel()
                {
                }, new AccountTokenModel()
                {
                }
            };

            queryMock.Setup(x => x.Execute(accountId)).ReturnsAsync(accountTokens);

            // Act
            var actionResult = await controller.GetTokensInfoForAccount(accountId, queryMock.Object);

            // Assert
            Assert.IsInstanceOf <OkObjectResult>(actionResult);
            var okResult = (OkObjectResult)actionResult;

            Assert.IsInstanceOf <Page <AccountTokenModel> >(okResult.Value);
            var resultPage = (Page <AccountTokenModel>)okResult.Value;

            Assert.AreEqual(accountTokens, resultPage.List);
            Assert.AreEqual(resultPage.List.Count(), resultPage.TotalItems);
        }
        public void Ctor_When_Called_Sets_Logger()
        {
            // Arrange
            ILogger logger = new Mock <ILogger>().Object;

            // Act
            RefreshTokenController controller = new RefreshTokenController(logger);

            // Assert
            Assert.AreEqual(logger, controller.Logger);
        }
        public async Task GetTokensInfoForAccount_When_Called_With_Null_AccountId_Returns_BadRequest()
        {
            // Arrange
            ILogger logger = new Mock <ILogger>().Object;
            RefreshTokenController controller = new RefreshTokenController(logger);
            var query = new Mock <IGetAllTokensForAccountQuery>().Object;

            // Act
            var actionResult = await controller.GetTokensInfoForAccount(null as string, query);

            // Assert
            Assert.IsInstanceOf <BadRequestObjectResult>(actionResult);
            var badRequestResult = (BadRequestObjectResult)actionResult;

            Assert.IsInstanceOf <Message>(badRequestResult.Value);
            var errorMessage = (Message)badRequestResult.Value;

            Assert.AreEqual("Something went wrong.", errorMessage.Text);
        }
Example #7
0
        public void SetUp()
        {
            DaysToExpire            = 3;
            AccessToken             = "4wjRDjmSi9YfgFYAVM2QWjJxY8w1Ao6U7S6ZWX9VDCQ";
            Size                    = 32;
            UserId                  = 91;
            _userService            = new Mock <IUserService>();
            _refreshTokenService    = new Mock <IRefreshTokenService>();
            _tokenService           = new Mock <ITokenService>();
            _refreshTokenController = new RefreshTokenController(_tokenService.Object, _refreshTokenService.Object, _userService.Object);

            _applicationUserDTO = new ApplicationUserDTO()
            {
                Id          = 91,
                FirstName   = "Volodya",
                LastName    = "Khydzik",
                City        = "Lviv",
                Country     = "Lviv",
                Email       = "*****@*****.**",
                PhoneNumber = "0672530997",
                DateOfBirth = "20.07.2000"
            };

            _refreshTokenDTO = new RefreshTokenDTO()
            {
                Id           = 1,
                IsActive     = true,
                UserId       = 91,
                RefreshToken = "4wjRDjmSi9YfgFYAVM2QWjJxY8w1Ao6U7S6ZWX9VDCQ =",
                DaysToExpire = DateTime.Now.AddDays(3)
            };

            _refreshTokenModel = new RefreshTokenModel()
            {
                RefreshToken = "4wjRDjmSi9YfgFYAVM2QWjJxY8w1Ao6U7S6ZWX9VDCQ="
            };

            _refreshTokenService.Setup(service => service.UpdateRefreshTokenAsync(_refreshTokenDTO.Id, _refreshTokenDTO.RefreshToken, _refreshTokenDTO.UserId, DaysToExpire, true)).Returns(Task.CompletedTask);
            _tokenService.Setup(service => service.GenerateAccessToken(_applicationUserDTO, _refreshTokenModel.RefreshToken)).Returns(() => { return(AccessToken); });
            _refreshTokenService.Setup(service => service.GenerateRefreshToken(Size)).Returns(() => { return(_refreshTokenModel.RefreshToken); });
        }