예제 #1
0
        public async Task CanRenewTokenTrainerUser()
        {
            var client = SystemTestExtension.GetTokenAuthorizeHttpClient(_factory);

            // The endpoint or route of the controller action.
            var command = new AuthenticateTrainerUserCommand
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            var json = JsonConvert.SerializeObject(command);
            var authenticateResponse = await client.PostAsync("/TrainerUser/Authenticate", new StringContent(json, Encoding.UTF8, StringConstants.ApplicationJson));

            var firstToken = JsonConvert.DeserializeObject <AuthenticateResponseModel>(await authenticateResponse.Content.ReadAsStringAsync()).Token;

            //Second request to renewToken

            var renewToken         = JsonConvert.SerializeObject(firstToken);
            var renewTokenResponse = await client.PostAsync("/TrainerUser/RenewToken", new StringContent(renewToken, Encoding.UTF8, StringConstants.ApplicationJson));

            // Must be successful.
            renewTokenResponse.EnsureSuccessStatusCode();

            Assert.True(renewTokenResponse.IsSuccessStatusCode);
            Assert.Equal(HttpStatusCode.Created, renewTokenResponse.StatusCode);
        }
예제 #2
0
        public async Task <IActionResult> Authenticate([FromBody] AuthenticateTrainerUserCommand command)
        {
            try
            {
                command.HostName = HonoHost;
                var model = await Mediator.Send(command);

                var(user, stringToken) = _trainerUserService.GenerateToken(model);

                return(Ok(new { User = user, Token = stringToken }));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
예제 #3
0
        public static HttpClient GetTokenAuthorizeHttpClient(CustomWebApplicationFactory <Startup> factory)
        {
            var client = factory.CreateClient();
            var authenticateTrainerUserCommand = new AuthenticateTrainerUserCommand
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            var content      = JsonConvert.SerializeObject(authenticateTrainerUserCommand);
            var httpResponse = client.PostAsync("/TrainerUser/Authenticate", new StringContent(content, Encoding.UTF8, StringConstants.ApplicationJson)).Result;

            var token = JsonConvert.DeserializeObject <Dictionary <string, object> >(httpResponse.Content.ReadAsStringAsync().Result)["token"];

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.ToString());

            return(client);
        }
예제 #4
0
        public async Task CanLoginTrainerUser()
        {
            var authorizedClient = SystemTestExtension.GetTokenAuthorizeHttpClient(_factory);

            // The endpoint or route of the controller action.
            var command = new AuthenticateTrainerUserCommand
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            var json = JsonConvert.SerializeObject(command);

            var httpResponse = await authorizedClient.PostAsync("/TrainerUser/Authenticate", new StringContent(json, Encoding.UTF8, StringConstants.ApplicationJson));

            // Must be successful.
            httpResponse.EnsureSuccessStatusCode();

            Assert.True(httpResponse.IsSuccessStatusCode);
            Assert.Equal(HttpStatusCode.OK, httpResponse.StatusCode);
        }