// Copyright (c) Microsoft. All rights reserved.
using System;
using System.Threading.Tasks;
namespace AgentConformance.IntegrationTests;
///
/// Base class for all test classes used for testing agents.
///
/// The type of the agent fixture used in these tests.
/// Used to create a new fixture for this test suite.
public abstract class AgentTests(Func createAgentFixture) : IAsyncLifetime
where TAgentFixture : IAgentFixture
{
protected TAgentFixture Fixture { get; private set; } = default!;
public async ValueTask InitializeAsync()
{
this.Fixture = createAgentFixture();
await this.Fixture.InitializeAsync();
}
public async ValueTask DisposeAsync()
{
GC.SuppressFinalize(this);
await this.Fixture.DisposeAsync();
}
}