diff --git a/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/ImageListActionListTests.cs b/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/ImageListActionListTests.cs new file mode 100644 index 00000000000..b8a073bd259 --- /dev/null +++ b/src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/ImageListActionListTests.cs @@ -0,0 +1,88 @@ +// 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.Design; +using System.Drawing; + +namespace System.Windows.Forms.Design.Tests; + +public sealed class ImageListActionListTests : IDisposable +{ + private readonly ImageListDesigner _imageListDesigner; + private readonly ImageList _imageList; + private readonly ImageListActionList _actionList; + public ImageListActionListTests() + { + _imageListDesigner = new(); + _imageList = new(); + _imageListDesigner.Initialize(_imageList); + _actionList = new(_imageListDesigner); + } + + public void Dispose() + { + _imageListDesigner.Dispose(); + _imageList.Dispose(); + } + + [Fact] + public void Constructor_ShouldInitializeDesigner() + { + _actionList.Should().NotBeNull(); + _actionList.Should().BeOfType(); + _actionList.Component.Should().Be(_imageListDesigner.Component); + } + + [Fact] + public void ColorDepth_Get_ShouldReturnColorDepth() + { + _actionList.ColorDepth.Should().Be(ColorDepth.Depth32Bit); + } + + [Fact] + public void ColorDepth_Set_ShouldUpdateColorDepth() + { + _actionList.ColorDepth = ColorDepth.Depth16Bit; + _actionList.ColorDepth.Should().Be(ColorDepth.Depth16Bit); + } + + [Fact] + public void ImageSize_Get_ShouldReturnImageSize() + { + Size size = new(16, 16); + _actionList.ImageSize.Should().Be(size); + } + + [Fact] + public void ImageSize_Set_ShouldUpdateImageSize() + { + Size size = new(32, 32); + _actionList.ImageSize = size; + _actionList.ImageSize.Should().Be(size); + } + + [Fact] + public void GetSortedActionItems_ShouldReturnExpectedItems() + { + DesignerActionItemCollection items = _actionList.GetSortedActionItems(); + items.Should().NotBeNull(); + items.Should().BeOfType(); + + items[0].Should().BeOfType(); + items[0].DisplayName.Should().Be(SR.ImageListActionList_ImageSizeDisplayName); + items[0].Category.Should().Be(SR.PropertiesCategoryName); + items[0].Description.Should().Be(SR.ImageListActionList_ImageSizeDescription); + + items[1].Should().BeOfType(); + items[1].DisplayName.Should().Be(SR.ImageListActionList_ColorDepthDisplayName); + items[1].Category.Should().Be(SR.PropertiesCategoryName); + items[1].Description.Should().Be(SR.ImageListActionList_ColorDepthDescription); + + items[2].Should().BeOfType(); + items[2].DisplayName.Should().Be(SR.ImageListActionList_ChooseImagesDisplayName); + items[2].Category.Should().Be(SR.LinksCategoryName); + items[2].Description.Should().Be(SR.ImageListActionList_ChooseImagesDescription); + } +}