Files
vegasco/tests/WebApi.Tests.System/Test.cs

57 lines
1.8 KiB
C#
Raw Normal View History

using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
namespace WebApi.Tests.System;
[Collection(SharedTestCollection.Name)]
public class Test
{
private readonly SharedTestContext _context;
public Test(SharedTestContext context)
{
_context = context;
}
//[Fact]
public async Task Test1()
{
var loginUrl = _context.DockerComposeFixture.LoginContainer.GetServiceUrl();
var baseUrl = new Uri(loginUrl!, UriKind.Absolute);
var relativeUrl = new Uri($"/realms/{Constants.Login.Realm}/protocol/openid-connect/token", UriKind.Relative);
var uri = new Uri(baseUrl, relativeUrl);
var request = new HttpRequestMessage(HttpMethod.Post, uri);
var data = new Dictionary<string, string>
{
{ "grant_type", "password" },
{ "audience", Constants.Login.ClientId },
{ "username", Constants.Login.Username },
{ "password", Constants.Login.Password }
};
request.Content = new FormUrlEncodedContent(data);
request.Headers.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Constants.Login.ClientId}:{Constants.Login.ClientSecret}")));
using var client = new HttpClient();
using var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
var tokenResponse = JsonSerializer.Deserialize<TokenResponse>(content);
var appUrl = _context.DockerComposeFixture.AppContainer.GetServiceUrl();
baseUrl = new Uri(appUrl!, UriKind.Absolute);
relativeUrl = new Uri("/v1/cars", UriKind.Relative);
uri = new Uri(baseUrl, relativeUrl);
request = new HttpRequestMessage(HttpMethod.Get, uri);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse!.AccessToken);
using var response2 = await client.SendAsync(request);
var content2 = await response2.Content.ReadAsStringAsync();
}
}