fluentassertions / fluentassertions/fluentassertions.datasets

Comparing datatables with dbnull in expectation doesn't cause test to fail when subject has a value

Aperta
#2 9 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
C#
Stelle
1
Fork
4
Merge medio
8h 19m
PR unite (30g)
3

Descrizione

### 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

```csharp
// 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.,

```csharp
// 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.