internal static void MapTabbedLayoutGroup( IModelTabbedGroup modelTabbedGroup, LayoutTabbedGroupItem tabbedGroupItemNode ) { modelTabbedGroup.Direction = tabbedGroupItemNode.Direction; if (tabbedGroupItemNode.MultiLine is not null) { modelTabbedGroup.MultiLine = tabbedGroupItemNode.MultiLine ?? modelTabbedGroup.MultiLine; } }
public static void LayoutTabbedGroupItemChildTests() => Describe(nameof(LayoutTabbedGroupItem), () => { Describe("Children", () => { It("When adding a child, parent is set", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); parentNode.Add(childNode); childNode.ShouldSatisfyAllConditions( () => childNode.Parent.ShouldNotBeNull(), () => childNode.Parent.ShouldBe(parentNode) ); }); It("When adding a child, it is in collection", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); parentNode.Add(childNode); parentNode.ShouldContain(childNode); }); It("When setting the parent, it is in collection", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); childNode.Parent = parentNode; parentNode.ShouldContain(childNode); }); It("When unsetting the parent, it is removed from collection", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); childNode.Parent = parentNode; childNode.Parent = null; parentNode.ShouldNotContain(childNode); }); It("When removing a child, it is removed from collection", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); parentNode.Add(childNode); parentNode.Remove(childNode); parentNode.ShouldNotContain(childNode); }); It("When removing a child, it's parent is unset", () => { var parentNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); parentNode.Add(childNode); parentNode.Remove(childNode); childNode.Parent.ShouldBeNull(); }); It("When setting a new parent, tree structure is correct", () => { var rootNode = new LayoutTabbedGroupItem(); var childNode1 = new LayoutTabGroupItem(); var childNode2 = new LayoutTabGroupItem(); rootNode.Add(childNode1); rootNode.Add(childNode2); childNode2.Parent = childNode1; rootNode.ShouldSatisfyAllConditions( () => rootNode.Parent.ShouldBeNull(), () => childNode1.Parent.ShouldBe(rootNode), () => childNode2.Parent.ShouldBe(childNode1), () => rootNode.ShouldContain(childNode1), () => childNode1.ShouldContain(childNode2), () => childNode2.ShouldBeEmpty() ); }); It("settings parent twice has no effect", () => { var rootNode = new LayoutTabbedGroupItem(); var childNode = new LayoutTabGroupItem(); rootNode.Add(childNode); childNode.ShouldSatisfyAllConditions( () => childNode.Parent.ShouldBe(rootNode) ); }); It("clear unsets the parents", () => { var rootNode = new LayoutTabbedGroupItem(); var childNode1 = new LayoutTabGroupItem(); var childNode2 = new LayoutTabGroupItem(); var childNode3 = new LayoutTabGroupItem(); var childNode4 = new LayoutTabGroupItem(); rootNode.Add(childNode1); rootNode.Add(childNode2); rootNode.Add(childNode3); rootNode.Add(childNode4); rootNode.Clear(); rootNode.ShouldSatisfyAllConditions( () => rootNode.ShouldBeEmpty(), () => childNode1.Parent.ShouldBeNull(), () => childNode2.Parent.ShouldBeNull(), () => childNode3.Parent.ShouldBeNull(), () => childNode4.Parent.ShouldBeNull() ); }); It("when using with expression sets parent", () => { var rootNode = new LayoutTabbedGroupItem(); var childNode1 = new LayoutTabGroupItem(); var childNode2 = new LayoutTabGroupItem(); rootNode = rootNode with { Children = new() { childNode1, childNode2, new() } }; rootNode.ShouldSatisfyAllConditions( () => childNode1.Parent.ShouldBe(rootNode), () => childNode2.Parent.ShouldBe(rootNode), () => rootNode.Count().ShouldBe(3) ); });