Skip to content

Богачев Матвей Лаб.3 Группа 6511 #151

Closed
Matosik wants to merge 50 commits into
itsecd:mainfrom
Matosik:Lab3
Closed

Богачев Матвей Лаб.3 Группа 6511 #151
Matosik wants to merge 50 commits into
itsecd:mainfrom
Matosik:Lab3

Conversation

@Matosik
Copy link
Copy Markdown

@Matosik Matosik commented May 14, 2026

ФИО: Богачев Матвей
Номер группы: 6511
Номер лабораторной: 3
Номер варианта: 3
Краткое описание предметной области: Транспортное средство
Краткое описание добавленных фич: Добавлена очередь сообщений и объектное хранилище. Написаны тесты

-класс транспортное средство
- изменена информация о студенте на странице
Удалены пустые строки которые выжигают глаза, изза которых весь мир рухнет
summary
@github-actions github-actions Bot added In progress Код в процессе проверки Lab 3 Лабораторная №3. Интеграционное тестирование labels May 14, 2026
@github-actions github-actions Bot requested a review from danlla May 14, 2026 10:01
Comment on lines +1 to +62
using Amazon.Runtime;
using Amazon.S3;
using Amazon.SimpleNotificationService;
using Amazon.SQS;
using Testcontainers.LocalStack;
using Testcontainers.Redis;

namespace Vehicle.Test.Integration;

/// <summary>
/// Базовый класс для интеграционных тестов.
/// Поднимает LocalStack (S3 + SNS + SQS) и Redis через Testcontainers.
/// </summary>
public abstract class IntegrationTestBase : IAsyncLifetime
{
protected LocalStackContainer LocalStack { get; private set; } = null!;
protected RedisContainer Redis { get; private set; } = null!;
protected IAmazonS3 S3Client { get; private set; } = null!;
protected IAmazonSimpleNotificationService SnsClient { get; private set; } = null!;
protected IAmazonSQS SqsClient { get; private set; } = null!;

protected string LocalStackUrl => LocalStack.GetConnectionString();
protected string RedisConnectionString => Redis.GetConnectionString();

public virtual async Task InitializeAsync()
{
LocalStack = new LocalStackBuilder()
.WithEnvironment("SERVICES", "s3,sns,sqs")
.WithEnvironment("DEFAULT_REGION", "us-east-1")
.Build();

Redis = new RedisBuilder().Build();

await Task.WhenAll(
LocalStack.StartAsync(),
Redis.StartAsync());

var credentials = new BasicAWSCredentials("test", "test");

S3Client = new AmazonS3Client(credentials, new AmazonS3Config
{
ServiceURL = LocalStackUrl,
ForcePathStyle = true
});

SnsClient = new AmazonSimpleNotificationServiceClient(credentials,
new AmazonSimpleNotificationServiceConfig { ServiceURL = LocalStackUrl });

SqsClient = new AmazonSQSClient(credentials,
new AmazonSQSConfig { ServiceURL = LocalStackUrl });
}

public virtual async Task DisposeAsync()
{
S3Client.Dispose();
SnsClient.Dispose();
SqsClient.Dispose();
await Task.WhenAll(
LocalStack.DisposeAsync().AsTask(),
Redis.DisposeAsync().AsTask());
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если не ошибаюсь, на лекциях явно говорилось, что для интеграционных тестов нужно использовать aspire и даже было показано как, нужно переделать

Тем более сейчас проходит только 1 тест:

Image

@Matosik Matosik requested a review from danlla May 19, 2026 17:47
@danlla danlla added Approved Лабораторная зачтена and removed In progress Код в процессе проверки labels May 20, 2026
@danlla danlla closed this May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved Лабораторная зачтена Lab 3 Лабораторная №3. Интеграционное тестирование

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants