File: System\Windows\Forms\AccessibleObjects\UpDownBase.UpDownBaseAccessibleObjectTests.cs
Web Access
Project: src\src\test\unit\System.Windows.Forms\System.Windows.Forms.Tests.csproj (System.Windows.Forms.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Windows.Forms.Tests.AccessibleObjects;
 
public class UpDownBase_UpDownBaseAccessibleObjectTests : IDisposable
{
    private readonly TestUpDownBase _upDown;
    private readonly UpDownBase.UpDownBaseAccessibleObject _accObj;
 
    public UpDownBase_UpDownBaseAccessibleObjectTests()
    {
        _upDown = new();
        _accObj = new(_upDown);
    }
 
    public void Dispose() => _upDown.Dispose();
 
    [WinFormsFact]
    public void GetChild_WithValidIndices_ReturnsExpectedChildren()
    {
        _accObj.GetChild(0).Should().BeSameAs(_upDown.TextBox.AccessibilityObject.Parent);
        _accObj.GetChild(1).Should().BeSameAs(_upDown.UpDownButtonsInternal.AccessibilityObject.Parent);
    }
 
    [WinFormsTheory]
    [InlineData(-1)]
    [InlineData(2)]
    [InlineData(100)]
    public void GetChild_WithInvalidIndices_ReturnsNull(int index) =>
        _accObj.GetChild(index).Should().BeNull();
 
    [WinFormsFact]
    public void GetChildCount_WithCustomParents_ReturnsTwo() =>
        _accObj.GetChildCount().Should().Be(2);
 
    [WinFormsFact]
    public void Role_WithCustomParents_ReturnsSpinButton() =>
        _accObj.Role.Should().Be(AccessibleRole.SpinButton);
 
    private class TestUpDownBase : UpDownBase
    {
        public TestUpDownBase() : base() { }
 
        public override void DownButton() => throw new NotImplementedException();
        public override void UpButton() => throw new NotImplementedException();
        protected override void UpdateEditText() => throw new NotImplementedException();
    }
}