File: System\ComponentModel\Design\DesignerCommandSetTests.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 Moq;
 
namespace System.ComponentModel.Design.Tests;
 
public class DesignerCommandSetTests
{
    [Fact]
    public void DesignerCommandSet_Ctor_Default()
    {
        DesignerCommandSet set = new();
        Assert.Null(set.ActionLists);
        Assert.Null(set.Verbs);
    }
 
    [Theory]
    [StringWithNullData]
    public void DesignerCommandSet_GetCommands_Invoke_ReturnsNull(string name)
    {
        DesignerCommandSet set = new();
        Assert.Null(set.GetCommands(name));
    }
 
    [Fact]
    public void DesignerCommandSet_Verbs_OverriddenGetCommands_ReturnsExpected()
    {
        DesignerVerbCollection collection = [];
        Mock<DesignerCommandSet> mockSet = new(MockBehavior.Strict);
        mockSet
            .Setup(s => s.GetCommands("Verbs"))
            .Returns(collection);
        Assert.Same(collection, mockSet.Object.Verbs);
    }
 
    [Fact]
    public void DesignerCommandSet_Verbs_InvalidOverriddenGetCommands_ThrowsInvalidCastException()
    {
        Mock<DesignerCommandSet> mockSet = new(MockBehavior.Strict);
        mockSet
            .Setup(s => s.GetCommands("Verbs"))
            .Returns(Array.Empty<object>());
        Assert.Throws<InvalidCastException>(() => mockSet.Object.Verbs);
    }
 
    [Fact]
    public void DesignerCommandSet_ActionLists_OverriddenGetCommands_ReturnsExpected()
    {
        DesignerActionListCollection collection = [];
        Mock<DesignerCommandSet> mockSet = new(MockBehavior.Strict);
        mockSet
            .Setup(s => s.GetCommands("ActionLists"))
            .Returns(collection);
        Assert.Same(collection, mockSet.Object.ActionLists);
    }
 
    [Fact]
    public void DesignerCommandSet_ActionLists_InvalidOverriddenGetCommands_ThrowsInvalidCastException()
    {
        Mock<DesignerCommandSet> mockSet = new(MockBehavior.Strict);
        mockSet
            .Setup(s => s.GetCommands("ActionLists"))
            .Returns(Array.Empty<object>());
        Assert.Throws<InvalidCastException>(() => mockSet.Object.ActionLists);
    }
}