File: System\Windows\Forms\Design\ListControlUnboundActionListTests.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 System.ComponentModel;
using System.ComponentModel.Design;
using Moq;
 
namespace System.Windows.Forms.Design.Tests;
 
public sealed class ListControlUnboundActionListTests : IDisposable
{
    private readonly ComponentDesigner _designer;
    private readonly Mock<IComponent> _componentMock;
    private readonly ListControlUnboundActionList _actionList;
 
    public ListControlUnboundActionListTests()
    {
        _designer = new();
        _componentMock = new();
        _designer.Initialize(_componentMock.Object);
        _actionList = new(_designer);
    }
 
    public void Dispose() => _designer.Dispose();
 
    [Fact]
    public void Constructor_ShouldInitializeDesigner() => _actionList.Should().NotBeNull();
 
    [Fact]
    public void GetSortedActionItems_ShouldReturnCorrectItems()
    {
        DesignerActionItemCollection items = _actionList.GetSortedActionItems();
 
        items.Should().NotBeNull();
        items.Count.Should().Be(1);
        items[0].Should().BeOfType<DesignerActionMethodItem>();
        DesignerActionMethodItem methodItem = (DesignerActionMethodItem)items[0];
        methodItem.DisplayName.Should().Be(SR.ListControlUnboundActionListEditItemsDisplayName);
        methodItem.Category.Should().Be(SR.ItemsCategoryName);
        methodItem.Description.Should().Be(SR.ListControlUnboundActionListEditItemsDescription);
    }
 
    [Fact]
    public void InvokeItemsDialog_ShouldThrowException()
    {
        Action action = _actionList.InvokeItemsDialog;
        action.Should().Throw<Exception>();
    }
}