Adds code coverage to FormatStringDialog (#12185)

Adds code coverage for FormatStringDialog

Related #10773

## Proposed changes

- Adds code coverage for `FormatStringDialog`.

## Customer Impact

- None

## Regression?

- No

## Risk

- Minimal

## Test methodology

- Unit tests

## Test environment(s)

- 9.0.100-rc.1.24452.12

Co-authored-by: Ricardo Bossan (BEYONDSOFT CONSULTING INC) (from Dev Box) <v-rbossan@microsoft.com>
This commit is contained in:
Ricardo Bossan 2024-09-25 16:00:00 -03:00 коммит произвёл GitHub
Родитель c4ce33d8ff
Коммит d4e6f9ddb2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 111 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,111 @@
// 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 Moq;
namespace System.Windows.Forms.Design.Tests;
public class FormatStringDialogTests : IDisposable
{
private readonly FormatStringDialog _formatStringDialog;
private readonly Mock<ITypeDescriptorContext> _context = new(MockBehavior.Strict);
public FormatStringDialogTests() => _formatStringDialog = new(_context.Object);
public void Dispose() => _formatStringDialog.Dispose();
[Fact]
public void Ctor_WithContext_DoesNotThrow()
{
Action action = () =>
{
FormatStringDialog dialog = new (_context.Object);
dialog.Dispose();
};
action.Should().NotThrow();
}
[Fact]
public void FormatStringDialog_HasProperRTLConfiguration()
{
if (SR.RTL == "RTL_False")
{
_formatStringDialog.RightToLeft.Should().Be(RightToLeft.No);
_formatStringDialog.RightToLeftLayout.Should().Be(false);
}
else
{
_formatStringDialog.RightToLeft.Should().Be(RightToLeft.Yes);
_formatStringDialog.RightToLeftLayout.Should().Be(true);
}
}
[Fact]
public void SetsDataGridViewCellStyle_DoesNotThrow()
{
Action action = () => _formatStringDialog.DataGridViewCellStyle = new();
action.Should().NotThrow();
}
[Fact]
public void Dirty_ReturnsDefault() => _formatStringDialog.Dirty.Should().Be(false);
[Fact]
public void SetsListControl_DoesNotThrow()
{
Action action = () =>
{
using ListBox listControl = new();
_formatStringDialog.ListControl = listControl;
};
action.Should().NotThrow();
}
[Fact]
public void End_DoesNotThrow()
{
Action action = FormatStringDialog.End;
action.Should().NotThrow();
}
[Fact]
public void FormatControlFinishedLoading_AdjustsButtonPositionsCorrectly()
{
dynamic? okButtonField = _formatStringDialog.TestAccessor().Dynamic._okButton;
dynamic? cancelButtonField = _formatStringDialog.TestAccessor().Dynamic._cancelButton;
dynamic? formatControlField = _formatStringDialog.TestAccessor().Dynamic._formatControl1;
int okButtonLeftOriginalState = okButtonField.Left;
int cancelButtonLeftOriginalState = cancelButtonField.Left;
int GetRightSideOffset(Control ctl)
{
int result = ctl.Width;
Control? control = ctl;
while (control is not null)
{
result += control.Left;
control = control.Parent;
}
return result;
}
int formatControlRightSideOffset = GetRightSideOffset(formatControlField);
int cancelButtonRightSideOffset = GetRightSideOffset(cancelButtonField);
_formatStringDialog.FormatControlFinishedLoading();
((object)okButtonField.Top).Should().Be(formatControlField.Bottom + 5);
((object)cancelButtonField.Top).Should().Be(formatControlField.Bottom + 5);
((object)okButtonField.Left).Should().Be(okButtonLeftOriginalState + formatControlRightSideOffset - cancelButtonRightSideOffset);
((object)cancelButtonField.Left).Should().Be(cancelButtonLeftOriginalState + formatControlRightSideOffset - cancelButtonRightSideOffset);
}
}