f89ad951ae
Выноска на виде через API7 ISymbols2DContainer.Leaders. Стрелка указывает в (x,y), текст на полке у (textX,textY). shelfDirection: auto|right|left|up|down. - DrawingService.AddLeaderAsync + GetViewLeaderCountAsync - ShelfDirection (enum + Parse/ToKompas), переиспользует DrawingAnnotationResult - 13 unit + 7 интеграционных тестов (всего 328 зелёных), сборка Release чистая КЛЮЧ (спайк): новая выноска имеет 0 ответвлений — сначала (IBranchs)bl.AddBranchByPoint(0,x,y) (остриё), ИНАЧЕ КОМПАС падает RPC_E_SERVERFAULT; затем SetBranchTextPosition (полка), (ILeader)bl.TextOnShelf.Str (текст), Update. Ревью спека Codex+pi/glm-5.1+pi/kimi-k2.6 учтено (QI as?? throw, read-back ?? empty, RequireDistinctPoints, RU-алиасы, критический порядок). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
1.2 KiB
C#
33 lines
1.2 KiB
C#
using Kompas.Mcp.Core.Drawings;
|
|
|
|
namespace Kompas.Mcp.Tests;
|
|
|
|
[Trait("Category", "Unit")]
|
|
public sealed class ShelfDirectionsTests
|
|
{
|
|
[Theory]
|
|
[InlineData("auto", ShelfDirection.Auto)]
|
|
[InlineData("right", ShelfDirection.Right)]
|
|
[InlineData("left", ShelfDirection.Left)]
|
|
[InlineData("up", ShelfDirection.Up)]
|
|
[InlineData("down", ShelfDirection.Down)]
|
|
[InlineData(" RIGHT ", ShelfDirection.Right)]
|
|
[InlineData("авто", ShelfDirection.Auto)]
|
|
[InlineData("вправо", ShelfDirection.Right)]
|
|
[InlineData("влево", ShelfDirection.Left)]
|
|
[InlineData("вверх", ShelfDirection.Up)]
|
|
[InlineData("вниз", ShelfDirection.Down)]
|
|
public void Parse_maps_known(string value, ShelfDirection expected)
|
|
=> Assert.Equal(expected, ShelfDirections.Parse(value));
|
|
|
|
[Fact]
|
|
public void Parse_throws_on_unknown()
|
|
=> Assert.Throws<ArgumentException>(() => ShelfDirections.Parse("diagonal"));
|
|
|
|
[Fact]
|
|
public void Parse_throws_on_null()
|
|
=> Assert.Throws<ArgumentNullException>(() => ShelfDirections.Parse(null!));
|
|
|
|
// ToKompas (→ ksShelfDirectionEnum) — граница проекта; для Auto бросает (проверяется косвенно).
|
|
}
|