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); }
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()); } }
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); }
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); }