Esempio n. 1
0
        public async Task AuthenticateQueryHandler_ShouldReturnUser_WhenTokenIsValid()
        {
            // Arrange
            const string expectedToken = "some.access.token";

            IHeaderDictionary headers = new HeaderDictionary
            {
                { "Authorization", expectedToken }
            };

            IEnumerable <User> expectedUser = new []
            {
                new User {
                    UserId = 1
                }
            };

            IQueryable <User> userQueryableMock = expectedUser
                                                  .AsQueryable()
                                                  .BuildMock()
                                                  .Object;

            _httpContextAccessorMock
            .Setup(m => m.HttpContext.Request.Headers)
            .Returns(headers);

            _unitOfWorkMock
            .Setup(m => m.Users.GetById(It.IsAny <int>()))
            .Returns(userQueryableMock);

            AuthenticateQuery.Handler handler =
                new AuthenticateQuery.Handler(_unitOfWorkMock.Object, _mapperMock, _httpContextAccessorMock.Object, _userProviderMock.Object);

            // Act
            AuthenticatedUserResource user = await handler.Handle(new AuthenticateQuery());

            // Assert
            Assert.NotNull(user);
            Assert.Equal(1, user.UserId);
            Assert.Equal(expectedToken, user.Token);
        }
Esempio n. 2
0
        public async Task AuthenticateQueryHandler_ShouldReturnNull_WhenNameIdentifierClaimIsInvalid()
        {
            // Arrange
            const string expectedToken = "some.access.token";

            Claim expectedNameIdentifierClaim = new Claim(ClaimTypes.NameIdentifier, "8979");

            IHeaderDictionary headers = new HeaderDictionary
            {
                { "Authorization", expectedToken }
            };

            IEnumerable <User> expectedUser = Enumerable.Empty <User>();

            IQueryable <User> userQueryableMock = expectedUser
                                                  .AsQueryable()
                                                  .BuildMock()
                                                  .Object;

            _httpContextAccessorMock
            .Setup(m => m.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier))
            .Returns(expectedNameIdentifierClaim);

            _httpContextAccessorMock
            .Setup(m => m.HttpContext.Request.Headers)
            .Returns(headers);

            _unitOfWorkMock
            .Setup(m => m.Users.GetById(It.IsAny <int>()))
            .Returns(userQueryableMock);

            AuthenticateQuery.Handler handler =
                new AuthenticateQuery.Handler(_unitOfWorkMock.Object, _mapperMock, _httpContextAccessorMock.Object, _userProviderMock.Object);

            // Act
            AuthenticatedUserResource user = await handler.Handle(new AuthenticateQuery());

            // Assert
            Assert.Null(user);
        }