Open
Description
Description
Comparing DataTables where a column in the expectation containing a dbnull value passes comparison regardless of the value in the same column in the subject.
Complete minimal example reproducing the issue
// Arrange
var expected = new DataTable();
expected.Columns.AddRange(new[]
{
new DataColumn("Column1", typeof(string)),
new DataColumn("Column2", typeof(string)),
new DataColumn("Column3", typeof(string))
});
expected.Rows.Add("test", null, "1" );
// Act
var actual = new DataTable();
actual.Columns.AddRange(new[]
{
new DataColumn("Column1", typeof(string)),
new DataColumn("Column2", typeof(string)),
new DataColumn("Column3", typeof(string))
});
actual.Rows.Add("test", "fail", "1");
// Assert
actual.Should().BeEquivalentTo(expected);
Expected behavior:
The test to fail because "Column2" in the expectation is null while it has a value of "fail" in the subject
Actual behavior:
The test passes. Reversing the order leads to the test failing as expected, i.e.,
// Assert
expected.Should().BeEquivalentTo(actual);
fails.
Versions
- Which version of Fluent Assertions are you using? 6.7.0
- Which .NET runtime and version are you targeting? .NET 6
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.