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