Files
kompas3d-mcp/tests/Kompas.Mcp.Tests/Integration/DocumentTests.cs
T
mikhail f0995a67e6 feat(core): DocumentService — create/open/save/close (API7)
- KompasDocumentType (Part/Assembly/Drawing/Fragment/Specification/Text)
  + маппинг в DocumentTypeEnum и парсинг строк (ru/en)
- DocumentInfo (Name/PathName/Type)
- DocumentService: Create/Open/Save/SaveAs/Close/GetActive через IDocuments
- tests: интеграция документов (create part/fragment, SaveAs .scratch, close) — зелёные

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

43 lines
1.3 KiB
C#

using Kompas.Mcp.Core.Documents;
namespace Kompas.Mcp.Tests.Integration;
/// <summary>Интеграция: жизненный цикл документов.</summary>
[Trait("Category", "Integration")]
[Collection(KompasCollection.Name)]
public sealed class DocumentTests
{
private readonly DocumentService _docs;
public DocumentTests(KompasFixture fx)
=> _docs = new DocumentService(fx.Session, fx.Dispatcher);
[Fact]
public async Task Create_part_saveas_close_roundtrip()
{
var created = await _docs.CreateAsync(KompasDocumentType.Part);
Assert.Equal(KompasDocumentType.Part, created.Type);
var path = TestPaths.NewFile(".m3d");
await _docs.SaveAsAsync(path);
var active = await _docs.GetActiveAsync();
Assert.NotNull(active);
Assert.Equal(path, active!.PathName, ignoreCase: true);
var closed = await _docs.CloseAsync(save: false);
Assert.True(closed);
Assert.True(File.Exists(path));
}
[Fact]
public async Task Create_fragment_reports_type()
{
await _docs.CreateAsync(KompasDocumentType.Fragment);
var active = await _docs.GetActiveAsync();
Assert.NotNull(active);
Assert.Equal(KompasDocumentType.Fragment, active!.Type);
await _docs.CloseAsync(save: false);
}
}