diff --git a/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/FlowPanelDesignerTests.cs b/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/FlowPanelDesignerTests.cs new file mode 100644 index 00000000000..c4b29c65f18 --- /dev/null +++ b/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/FlowPanelDesignerTests.cs @@ -0,0 +1,59 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using Moq; +using System.ComponentModel; +using System.ComponentModel.Design; +using System.Windows.Forms.Design.Behavior; + +namespace System.Windows.Forms.Design.Tests; + +public sealed class FlowPanelDesignerTests +{ + private FlowPanelDesigner SetupDesignerWithPanel() + { + Mock mockHost = new(); + Mock mockContainer = new(); + mockHost.Setup(host => host.Container).Returns(mockContainer.Object); + + Panel panel = new(); + mockContainer.Object.Add(panel); + + FlowPanelDesigner designer = new(); + designer.Initialize(panel); + + return (designer); + } + + [Fact] + public void ParticipatesWithSnapLines_ShouldAlwaysReturnFalse() + { + var designer = SetupDesignerWithPanel(); + + designer.ParticipatesWithSnapLines.Should().BeFalse(); + } + + [Fact] + public void SnapLines_ShouldNotContainPaddingSnapLines() + { + var designer = SetupDesignerWithPanel(); + + var snapLines = designer.SnapLines as IList; + + snapLines.Should().NotBeNull(); + snapLines.Should().NotContain(line => line.Filter is object && line.Filter.Contains(SnapLine.Padding)); + } + + [Fact] + public void SnapLines_ShouldReturnNonPaddingSnapLines() + { + var designer = SetupDesignerWithPanel(); + + var snapLines = designer.SnapLines as IList; + + snapLines.Should().NotBeNull(); + snapLines.Should().Contain(line => line.Filter == null || !line.Filter.Contains(SnapLine.Padding)); + } +}