File: System\Windows\Forms\Design\DesignBindingPickerTests.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.
 
using System.Drawing;
using static System.Windows.Forms.Design.DesignBindingPicker;
 
namespace System.Windows.Forms.Design.Tests;
 
public class DesignBindingPickerTests : IDisposable
{
    private readonly DesignBindingPicker _picker;
    private readonly BindingPickerTree _treeViewCtrl;
    private readonly BindingPickerLink _addNewCtrl;
    private readonly Panel _addNewPanel;
    private readonly HelpTextLabel _helpTextCtrl;
    private readonly Panel _helpTextPanel;
 
    public DesignBindingPickerTests()
    {
        _picker = new DesignBindingPicker();
        _treeViewCtrl = _picker.TestAccessor().Dynamic._treeViewCtrl;
        _addNewCtrl = _picker.TestAccessor().Dynamic._addNewCtrl;
        _addNewPanel = _picker.TestAccessor().Dynamic._addNewPanel;
        _helpTextCtrl = _picker.TestAccessor().Dynamic._helpTextCtrl;
        _helpTextPanel = _picker.TestAccessor().Dynamic._helpTextPanel;
    }
 
    public void Dispose() => _picker.Dispose();
 
    [WinFormsFact]
    public void Ctor_InitializesControlsAndProperties()
    {
        // Check control hierarchy.
        var controls = _picker.Controls;
 
        controls.Contains(_treeViewCtrl).Should().BeTrue();
        controls.Contains(_addNewPanel).Should().BeTrue();
        controls.Contains(_helpTextPanel).Should().BeTrue();
 
        // Check some property values.
        Assert.Equal(SystemColors.Control, _picker.BackColor);
        Assert.Equal(SR.DesignBindingPickerAccessibleName, _picker.AccessibleName);
        Assert.Equal(_treeViewCtrl, _picker.ActiveControl);
    }
 
    [WinFormsFact]
    public void AddNewPanel_ContainsExpectedControls()
    {
        _addNewPanel.Controls.Contains(_addNewCtrl).Should().BeTrue();
        ContainsType<PictureBox>(_addNewPanel.Controls).Should().BeTrue();
        ContainsType<Label>(_addNewPanel.Controls).Should().BeTrue();
    }
 
    [WinFormsFact]
    public void HelpTextPanel_ContainsExpectedControls()
    {
        _helpTextPanel.Controls.Contains(_helpTextCtrl).Should().BeTrue();
        ContainsType<Label>(_helpTextPanel.Controls).Should().BeTrue();
    }
 
    private static bool ContainsType<T>(Control.ControlCollection collection)
    {
        foreach (var item in collection)
        {
            if (item is T)
                return true;
        }
 
        return false;
    }
}