File: System\Windows\Forms\Design\ImageIndexEditorTests.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.Drawing;
using System.Drawing.Design;
using Moq;
 
namespace System.Windows.Forms.Design.Tests;
 
public class ImageIndexEditorTests
{
    private readonly ImageIndexEditor _editor = new();
    private ITypeDescriptorContext? _context = new Mock<ITypeDescriptorContext>().Object;
 
    [Theory]
    [BoolData]
    public void GetPaintValueSupported_WhenContextIsNullOrNot_ReturnsTrue(bool hasContext)
    {
        _context = hasContext ? _context : null;
 
        bool result = _editor.GetPaintValueSupported(_context);
 
        result.Should().BeTrue();
    }
 
    [Theory]
    [InlineData(null)]
    [InlineData("Text")]
    [InlineData(1)]
    public void PaintValue_WithStringOrIntOrNull_DoesNotThrow(object? value)
    {
        using Bitmap bitmap = new(10, 10);
        using var graphics = Graphics.FromImage(bitmap);
        PaintValueEventArgs paintValueEventArgs = new(_context, value, graphics, new Rectangle(0, 0, 10, 10));
 
        Action action = () => _editor.PaintValue(paintValueEventArgs);
 
        action.Should().NotThrow();
    }
}