using Kompas.Mcp.Core;
using Kompas.Mcp.Core.Threading;
namespace Kompas.Mcp.Tests.Integration;
///
/// Общая фикстура интеграционных тестов: один STA-диспетчер и одно подключение к КОМПАС
/// на весь набор тестов коллекции (КОМПАС присоединяется/запускается единожды).
///
public sealed class KompasFixture : IDisposable
{
public KompasDispatcher Dispatcher { get; }
public KompasSession Session { get; }
public KompasConnectionInfo Info { get; }
public KompasFixture()
{
Dispatcher = new KompasDispatcher();
Session = new KompasSession(Dispatcher);
Info = Session.ConnectAsync(visible: true).GetAwaiter().GetResult();
}
public void Dispose()
{
Session.Dispose();
Dispatcher.Dispose();
}
}
/// Коллекция, позволяющая делить одно подключение между классами интеграционных тестов.
[CollectionDefinition(Name)]
public sealed class KompasCollection : ICollectionFixture
{
public const string Name = "kompas";
}