fix(galaxy): degrade all parent-cycle members to root (review)
This commit is contained in:
@@ -431,6 +431,23 @@ public sealed class GalaxyDiscovererTests
|
||||
builder.Folders.Single(f => f.BrowseName == "selfie").ParentBrowseName.ShouldBeNull();
|
||||
}
|
||||
|
||||
/// <summary>A mutual parent cycle (A→B, B→A) degrades EVERY member to the root — neither
|
||||
/// folder nests under the other, and discovery stays finite (no infinite recursion / crash).</summary>
|
||||
[Fact]
|
||||
public async Task Mutual_cycle_degrades_both_to_root()
|
||||
{
|
||||
var src = new FakeHierarchySource([
|
||||
Node(1, 2, "a", "a", Attr("PV")), // A's parent is B
|
||||
Node(2, 1, "b", "b", Attr("PV")), // B's parent is A
|
||||
]);
|
||||
var builder = new FakeBuilder();
|
||||
|
||||
await new GalaxyDiscoverer(src).DiscoverAsync(builder, CancellationToken.None);
|
||||
|
||||
builder.Folders.Single(f => f.BrowseName == "a").ParentBrowseName.ShouldBeNull();
|
||||
builder.Folders.Single(f => f.BrowseName == "b").ParentBrowseName.ShouldBeNull();
|
||||
}
|
||||
|
||||
/// <summary>A child object's attributes are added into the child's own folder, not the parent's.</summary>
|
||||
[Fact]
|
||||
public async Task Variables_land_in_their_owner_folder()
|
||||
|
||||
Reference in New Issue
Block a user