forked from ddrilling/AsbCloudServer
2aa897d3df
1. Добавил Docker Compose 2. Добавил AppFactory 3. Добавлен базовый класс для интеграционных классов 4. Покрыл тестами контроллер AdminDeposit
47 lines
1.9 KiB
C#
47 lines
1.9 KiB
C#
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using System.Threading.Tasks;
|
|
using AsbCloudApp.Data.User;
|
|
using AsbCloudDb;
|
|
using AsbCloudDb.Model;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Xunit;
|
|
|
|
namespace AsbCloudWebApi.Tests.IntegrationTests;
|
|
|
|
public abstract class BaseIntegrationTest : IClassFixture<TestWebApplicationFactory>
|
|
{
|
|
private readonly IAsbCloudDbContext dbContext;
|
|
|
|
protected readonly HttpClient httpClient;
|
|
protected readonly IServiceScope scope;
|
|
|
|
protected BaseIntegrationTest(TestWebApplicationFactory factory)
|
|
{
|
|
scope = factory.Services.CreateScope();
|
|
httpClient = factory.CreateClient();
|
|
dbContext = scope.ServiceProvider.GetRequiredService<IAsbCloudDbContext>();
|
|
|
|
dbContext.Database.EnsureCreatedAndMigrated();
|
|
}
|
|
|
|
protected void SetToken(string token)
|
|
{
|
|
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
|
}
|
|
|
|
//TODO: поправить метод регистрации, сделать этот метод следующим образом:
|
|
//1. Пройти регистрацию
|
|
//2. Залогиниться под новым логином и паролем. Тестить всё под учёткой dev -- это неправильно, но пока так.
|
|
// Пока используется jwt токен dev, пока так захардкожено
|
|
protected Task<UserTokenDto> RegisterUserAsync()
|
|
{
|
|
var authToken = new UserTokenDto
|
|
{
|
|
Token =
|
|
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiZGV2IiwiaWRDb21wYW55IjoiMSIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6InJvb3QiLCJuYmYiOjE3MDIzNjg3NzksImV4cCI6MTczMzkyNjM3OSwiaXNzIjoiYSIsImF1ZCI6ImEifQ.zMJHgoEkfifR28vIPxtABvznf8NFJjk33E9fxNZTwGM"
|
|
};
|
|
|
|
return Task.FromResult(authToken);
|
|
}
|
|
} |