public async Task ValidateToken_CorrectToken_ResponseSuccessStatusAsync(NewUserDto data)
        {
            await Task.Delay(1000);

            data.Username = data.Password = data.Username + "cheburek";
            var client = Factory.CreateClient();
            await UserCreator.CreateUserAsync(Factory, _contentProvider, data, client);

            var authData = new AuthorizationDto
            {
                Username = data.Username,
                Password = data.Password
            };
            var getTokenPath    = GetControllerActionPath("GetToken");
            var validatePath    = GetControllerActionPath("ValidateToken");
            var authDataContent = _contentProvider.GetJsonStringContent(authData);

            var response = await client.PostAsync(getTokenPath, authDataContent);

            response.EnsureSuccessStatusCode();
            var result = await response.Content.ReadAsAsync <TokenDto>();

            var query = $"?token={result.access_token}";

            response = await client.GetAsync(validatePath + query);

            response.EnsureSuccessStatusCode();
        }
        public async Task <ServiceResponse <CreateUserResponse> > CreateUserAsync(CreateUserRequest request)
        {
            var userToRegister = new ApplicationUser()
            {
                LastName  = request.LastName,
                FirstName = request.FirstName,
                Email     = request.Email,
                UserName  = request.Email
            };

            await UserCreator.CreateUserAsync(UserManager, userToRegister, request.Password, request.Roles);

            var generatedEmailConfirmationToken =
                await UserManager.GenerateEmailConfirmationTokenAsync(userToRegister);

            var sendEmailResult = await _emailService.SendEmailAfterRegistrationAsync(userToRegister, generatedEmailConfirmationToken, request.UrlToIncludeInEmail, request.Language);

            var emailErrors = new List <string>();

            if (sendEmailResult.ResponseType != HttpStatusCode.OK)
            {
                emailErrors = sendEmailResult.Errors.ToList();
            }

            var userDtoToReturn = Mapper.Map <ApplicationUser, CreateUserResponse>(userToRegister);

            userDtoToReturn.Roles = request.Roles;

            return(emailErrors.Any() ?
                   new ServiceResponse <CreateUserResponse>(HttpStatusCode.Created, emailErrors, userDtoToReturn)
                : new ServiceResponse <CreateUserResponse>(HttpStatusCode.Created, userDtoToReturn));
        }
Example #3
0
        public async Task GetUser_AllPropertiesFilled_RepositoryUsernameEqualsRequestedAsync(NewUserDto data)
        {
            await UserCreator.CreateUserAsync(Factory, _contentProvider, data, Client);

            var currentUserPath = GetControllerActionPath(data.Username);

            var response = await Client.GetAsync(currentUserPath);

            var result = await response.Content.ReadAsAsync <UserDto>();

            Assert.Equal(data.Username, result.Username);
        }
Example #4
0
        public async Task GetAllUsers_AllPropertiesFilled_RepositoryUsernameEqualsRequestedAsync(NewUserDto data)
        {
            await UserCreator.CreateUserAsync(Factory, _contentProvider, data, Client);

            var path = GetControllerActionPath();

            var response = await Client.GetAsync(path);

            response.EnsureSuccessStatusCode();
            var result = await response.Content.ReadAsAsync <IEnumerable <UserDto> >();

            Assert.Contains(data.Username, result.Select(dto => dto.Username));
        }
Example #5
0
        public async Task Delete_DeleteExistingUser_GetAfterDeleteReturnNotFoundAsync(NewUserDto data)
        {
            await UserCreator.CreateUserAsync(Factory, new ContentProvider(), data, Client);

            var currentUserPath = GetControllerActionPath(data.Username);

            var response = await Client.DeleteAsync(currentUserPath);

            response.EnsureSuccessStatusCode();

            response = await Client.GetAsync(currentUserPath);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
Example #6
0
        private async Task <TokenDto> GetToken(NewUserDto data)
        {
            await UserCreator.CreateUserAsync(Factory, _contentProvider, data, Client);

            var authData = new AuthorizationDto
            {
                Username = data.Username,
                Password = data.Password
            };
            var getTokenPath    = GetControllerActionPath("GetToken");
            var authDataContent = _contentProvider.GetJsonStringContent(authData);

            var response = await Client.PostAsync(getTokenPath, authDataContent);

            response.EnsureSuccessStatusCode();
            var result = await response.Content.ReadAsAsync <TokenDto>();

            return(result);
        }
        public async Task Update_UpdateAmount_ResultAmountEqualsUpdateRequestedAsync(NewUserDto data)
        {
            await UserCreator.CreateUserAsync(Factory, _contentProvider, data, Client);

            var concreteUserPath = GetControllerActionPath(data.Username);
            var mapper           = Factory.Services.GetService <IMapper>();
            var updateData       = mapper.Map <UserDto>(data);

            updateData.Amount = 100;
            var updateContent = _contentProvider.GetJsonStringContent(updateData);

            var response = await Client.PutAsync(concreteUserPath, updateContent);

            response.EnsureSuccessStatusCode();

            response = await Client.GetAsync(concreteUserPath);

            var result = await response.Content.ReadAsAsync <UserDto>();

            Assert.Equal(updateData.Amount, result.Amount);
        }
Example #8
0
        public async Task <ServiceResponse <RegisterResponse> > RegisterAsync(RegisterRequest request)
        {
            var userToRegister = new ApplicationUser()
            {
                LastName  = request.LastName,
                FirstName = request.FirstName,
                Email     = request.Email,
                UserName  = request.Email
            };

            if (request.Roles.Contains(Role.Administrator))
            {
                throw new RestException(HttpStatusCode.Forbidden);
            }
            await UserCreator.CreateUserAsync(UserManager, userToRegister, request.Password, request.Roles);

            //var generatedEmailConfirmationToken =
            //    await UserManager.GenerateEmailConfirmationTokenAsync(userToRegister);

            //var sendEmailResult = await _emailService.SendEmailAfterRegistrationAsync(userToRegister, generatedEmailConfirmationToken, request.UrlToIncludeInEmail, request.Language);

            //var emailErrors = new List<string>();

            //if (sendEmailResult.ResponseType != HttpStatusCode.OK)
            //    emailErrors = sendEmailResult.Errors.ToList();

            var token = await _jwtGenerator.CreateTokenAsync(userToRegister);

            var response = new RegisterResponse
            {
                Token        = token.Token,
                RefreshToken = token.RefreshToken
            };

            //if (emailErrors.Any())
            //    return new ServiceResponse<RegisterResponse>(HttpStatusCode.OK, emailErrors, response);

            return(new ServiceResponse <RegisterResponse>(HttpStatusCode.OK, response));
        }