Beispiel #1
0
        public void WhenCalling_UsersExists_WithValidUserId_RepositoryMethodCalled(int userId)
        {
            //arrange
            MockUserRepository.Setup(s => s.UserExistsAsync(userId)).Returns(Task.FromResult(true));

            //act
            var result = GetService().UserExistsAsync(userId);

            //assert
            MockUserRepository.Verify(s => s.UserExistsAsync(userId), Times.Once);
        }
        public async Task Post_WhenUserNotValid_Returns_Unauthorized_Status()
        {
            // Arrange
            var requestModel = new PostTokenRequestModel
            {
                Username = "******",
                Audience = "integration test",
                Password = "******"
            };

            MockUserRepository.Setup(m => m.GetUserAsync(requestModel.Username, WellKnownUserIds.TokenApi)).ReturnsAsync(null as UserDto);

            // Act
            var response = await HttpClient.PostAsync("api/token", Stringify(requestModel));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
        }
Beispiel #3
0
        private void MockUserRepository_ReadSingle_ReturnsUser(Int32 groupCount)
        {
            User userDto = new User
            {
                FirstName    = "FirstName",
                LastName     = "LastName",
                EmailAddress = "*****@*****.**",
                Groups       = new FieldValueList <Group>()
            };

            for (Int32 i = 1; i <= groupCount; i++)
            {
                Group group = new Group
                {
                    Name = $"Group{i}"
                };
                userDto.Groups.Add(group);
            }

            MockUserRepository
            .Setup(x => x.ReadSingle(It.IsAny <Int32>()))
            .Returns(userDto);
        }
        public async Task Post_WhenCredentialsNotValid_Returns_Unauthorized_Status()
        {
            // Arrange
            var requestModel = new PostTokenRequestModel
            {
                Username = "******",
                Audience = "integration test",
                Password = "******"
            };

            var mockUserDto = new UserDto {
                Id = Guid.NewGuid()
            };

            MockUserRepository.Setup(m => m.GetUserAsync(requestModel.Username, WellKnownUserIds.TokenApi)).ReturnsAsync(mockUserDto);
            MockCredentialValidator.Setup(m => m.ValidateAsync(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <Guid>())).ReturnsAsync(false);

            // Act
            var response = await HttpClient.PostAsync("api/token", Stringify(requestModel));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
        }
        public async Task Post_Returns_Ok_Status_And_Token()
        {
            // Arrange
            var requestModel = new PostTokenRequestModel
            {
                Username = "******",
                Audience = "integration test",
                Password = "******"
            };

            var mockUserDto = new UserDto {
                Id = Guid.NewGuid()
            };

            MockUserRepository.Setup(m => m.GetUserAsync(requestModel.Username, WellKnownUserIds.TokenApi)).ReturnsAsync(mockUserDto);
            MockUserRepository.Setup(m => m.GetRegisteredApplicationAsync(requestModel.Username, requestModel.Audience)).ReturnsAsync(new RegisteredApplicationDto {
                RegisteredOwner = "userId"
            });
            MockCredentialValidator.Setup(m => m.ValidateAsync(mockUserDto.Id, requestModel.Password, It.IsAny <Guid>())).ReturnsAsync(true);

            // Act
            var response = await HttpClient.PostAsync("api/token", Stringify(requestModel));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);

            var content = await response.Content.ReadAsStringAsync();

            var responseModel = JsonConvert.DeserializeObject <PostTokenResponseModel>(content);

            responseModel.Token.Should().NotBeNullOrEmpty();
            responseModel.Issuer.Should().Be("http://www.techniqly.com/token/v1");

            DateTimeOffset.FromUnixTimeSeconds(responseModel.ValidFrom).LocalDateTime.Should().BeBefore(DateTime.Now);
            DateTimeOffset.FromUnixTimeSeconds(responseModel.ValidTo).LocalDateTime.Should().BeAfter(DateTime.Now).And.BeBefore(DateTime.Now.AddDays(30));
        }
Beispiel #6
0
 private void MockUserRepository_ReadSingle_ThrowsException()
 {
     MockUserRepository
     .Setup(x => x.ReadSingle(It.IsAny <Int32>()))
     .Throws <Exception>();
 }
Beispiel #7
0
 private void MockUserRepositoryQueryWithUserData(QueryResultSet <User> userQueryResultSet)
 {
     MockUserRepository
     .Setup(x => x.Query(It.IsAny <Query <User> >(), It.IsAny <Int32>()))
     .Returns(userQueryResultSet);
 }