|
// 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;
}
}
|