File: System\Windows\Forms\Design\FlowPanelDesignerTests.cs
Web Access
Project: src\src\System.Windows.Forms.Design\tests\UnitTests\System.Windows.Forms.Design.Tests.csproj (System.Windows.Forms.Design.Tests)
// 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<IDesignerHost> mockHost = new();
        Mock<IContainer> 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<SnapLine>;
 
        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<SnapLine>;
 
        snapLines.Should().NotBeNull();
        snapLines.Should().Contain(line => line.Filter == null || !line.Filter.Contains(SnapLine.Padding));
    }
}