feat(uns): area + line modals wired into the tree
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
using Shouldly;
|
||||
using Xunit;
|
||||
using ZB.MOM.WW.OtOpcUa.AdminUI.Uns;
|
||||
|
||||
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Tests.Uns;
|
||||
|
||||
/// <summary>
|
||||
/// Verifies the load-for-edit projections on <see cref="UnsTreeService"/> that prefill the
|
||||
/// Area/Line edit modals and carry the concurrency token back for last-write-wins saves.
|
||||
/// </summary>
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class UnsTreeServiceLoadEditTests
|
||||
{
|
||||
private static (UnsTreeService Service, string DbName) Seeded()
|
||||
{
|
||||
var dbName = $"uns-loadedit-{Guid.NewGuid():N}";
|
||||
UnsTreeTestDb.SeedNamed(dbName);
|
||||
return (new UnsTreeService(UnsTreeTestDb.Factory(dbName)), dbName);
|
||||
}
|
||||
|
||||
/// <summary>Loading a seeded area maps its fields, owning cluster, and a non-empty RowVersion.</summary>
|
||||
[Fact]
|
||||
public async Task LoadArea_returns_dto()
|
||||
{
|
||||
var (service, _) = Seeded();
|
||||
|
||||
var dto = await service.LoadAreaAsync("AREA-1");
|
||||
|
||||
dto.ShouldNotBeNull();
|
||||
dto.UnsAreaId.ShouldBe("AREA-1");
|
||||
dto.Name.ShouldBe("assembly");
|
||||
dto.ClusterId.ShouldBe(UnsTreeTestDb.PopulatedClusterId);
|
||||
dto.RowVersion.ShouldNotBeNull();
|
||||
}
|
||||
|
||||
/// <summary>Loading a missing area returns null.</summary>
|
||||
[Fact]
|
||||
public async Task LoadArea_missing_returns_null()
|
||||
{
|
||||
var (service, _) = Seeded();
|
||||
|
||||
(await service.LoadAreaAsync("NOPE")).ShouldBeNull();
|
||||
}
|
||||
|
||||
/// <summary>Loading a seeded line maps its fields, parent area, and a non-empty RowVersion.</summary>
|
||||
[Fact]
|
||||
public async Task LoadLine_returns_dto()
|
||||
{
|
||||
var (service, _) = Seeded();
|
||||
|
||||
var dto = await service.LoadLineAsync("LINE-1");
|
||||
|
||||
dto.ShouldNotBeNull();
|
||||
dto.UnsLineId.ShouldBe("LINE-1");
|
||||
dto.UnsAreaId.ShouldBe("AREA-1");
|
||||
dto.Name.ShouldBe("line-a");
|
||||
dto.RowVersion.ShouldNotBeNull();
|
||||
}
|
||||
|
||||
/// <summary>Loading a missing line returns null.</summary>
|
||||
[Fact]
|
||||
public async Task LoadLine_missing_returns_null()
|
||||
{
|
||||
var (service, _) = Seeded();
|
||||
|
||||
(await service.LoadLineAsync("NOPE")).ShouldBeNull();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user