Commit Graph

2 Commits

Author SHA1 Message Date
mikhail 8afad88241 test: per-test очистка документов через IntegrationTestBase (CloseAllAsync)
Базовый класс IntegrationTestBase (IAsyncLifetime) закрывает все открытые
документы КОМПАС после КАЖДОГО теста (DocumentService.CloseAllAsync) — чтобы не
копились вкладки-пустышки и упавший Assert не оставлял открытый документ. Все
интеграционные тест-классы переведены на него (: base(fx)); индивидуальные
finally CloseAsync сохранены как первичная очистка.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 13:38:48 +03:00
mikhail 0038790902 feat(core): STA dispatcher + KOMPAS connection session (S3)
- KompasDispatcher: выделенный STA-поток + очередь задач, InvokeAsync<T>,
  inline-выполнение вложенных вызовов, корректный Dispose
- NativeMethods: attach к запущенному COM (CLSIDFromProgID + GetActiveObject,
  замена отсутствующего в .NET 8 Marshal.GetActiveObject)
- KompasSession: подключение через API5 (KompasObject) -> API7 (IApplication),
  attach/launch, версия/редакция, освобождение COM на STA-потоке
- tests: 5 unit-тестов диспетчера + 3 интеграционных теста подключения (зелёные)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 23:42:52 +03:00