Skip to content

Exceptions from DataSet Assertions #1530

@jnyrup

Description

@jnyrup

Description

Ran all unit tests in the develop branch and noted that we threw some unexpected exceptions.

When_Columns_do_not_match_and_property_is_not_excluded_it_should_fail throws a NullReferenceException.

FluentAssertions.Data.DataEquivalencyAssertionOptions`1.ShouldExcludeColumn(DataColumn column) in C:\dev\fluentassertions\Src\FluentAssertions\Data\DataEquivalencyAssertionOptions.cs:line 300
FluentAssertions.Equivalency.DataRowEquivalencyStep.CompareFieldValues(IEquivalencyValidationContext context, IEquivalencyValidator parent, DataRow subject, DataRow expectation, DataEquivalencyAssertionOptions`1 dataSetConfig, DataEquivalencyAssertionOptions`1 dataTableConfig, DataEquivalencyAssertionOptions`1 dataRowConfig) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowEquivalencyStep.cs:line 128
FluentAssertions.Equivalency.DataRowEquivalencyStep.Handle(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowEquivalencyStep.cs:line 65
FluentAssertions.Equivalency.EquivalencyValidator.RunStepsUntilEquivalencyIsProven(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 128
FluentAssertions.Equivalency.EquivalencyValidator.AssertEqualityUsing(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 52
FluentAssertions.Equivalency.DataRowCollectionEquivalencyStep.MatchRowsByIndexAndCompare(IEquivalencyValidationContext context, IEquivalencyValidator parent, DataRowCollection subject, DataRowCollection expectation) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowCollectionEquivalencyStep.cs:line 74
FluentAssertions.Equivalency.DataRowCollectionEquivalencyStep.Handle(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowCollectionEquivalencyStep.cs:line 47
FluentAssertions.Equivalency.EquivalencyValidator.RunStepsUntilEquivalencyIsProven(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 128
FluentAssertions.Equivalency.EquivalencyValidator.AssertEqualityUsing(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 52
FluentAssertions.Equivalency.DataTableEquivalencyStep.CompareCollections(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config, Dictionary`2 selectedMembers) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataTableEquivalencyStep.cs:line 158
FluentAssertions.Equivalency.DataTableEquivalencyStep.Handle(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataTableEquivalencyStep.cs:line 62
FluentAssertions.Equivalency.EquivalencyValidator.RunStepsUntilEquivalencyIsProven(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 128
FluentAssertions.Equivalency.EquivalencyValidator.AssertEqualityUsing(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 52
FluentAssertions.Equivalency.EquivalencyValidator.AssertEquality(EquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 36
FluentAssertions.Data.DataTableAssertions`1.BeEquivalentTo(DataTable expectation, Func`2 config, String because, Object[] becauseArgs) in C:\dev\fluentassertions\Src\FluentAssertions\Data\DataTableAssertions.cs:line 258
FluentAssertions.Data.DataTableAssertions`1.BeEquivalentTo(DataTable expectation, String because, Object[] becauseArgs) in C:\dev\fluentassertions\Src\FluentAssertions\Data\DataTableAssertions.cs:line 177
FluentAssertions.Specs.DataEquivalencySpecs.DataTableEquivalencySpecs.<>c__DisplayClass22_0.<When_Columns_do_not_match_and_property_is_not_excluded_it_should_fail>b__0() in C:\dev\fluentassertions\Tests\FluentAssertions.Specs\Equivalency\DataEquivalencySpecs.DataTable.cs:line 429
FluentAssertions.Specialized.ActionAssertions.InvokeSubject() in C:\dev\fluentassertions\Src\FluentAssertions\Specialized\ActionAssertions.cs:line 25
FluentAssertions.Specialized.DelegateAssertions`2.InvokeSubjectWithInterception() in C:\dev\fluentassertions\Src\FluentAssertions\Specialized\DelegateAssertions.cs:line 221

When_Rows_do_not_match_and_property_is_not_excluded_it_should_fail throws an IndexOutOfRangeException.

FluentAssertions.Equivalency.DataRowCollectionEquivalencyStep.MatchRowsByIndexAndCompare(IEquivalencyValidationContext context, IEquivalencyValidator parent, DataRowCollection subject, DataRowCollection expectation) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowCollectionEquivalencyStep.cs:line 67
FluentAssertions.Equivalency.DataRowCollectionEquivalencyStep.Handle(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataRowCollectionEquivalencyStep.cs:line 47
FluentAssertions.Equivalency.EquivalencyValidator.RunStepsUntilEquivalencyIsProven(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 128
FluentAssertions.Equivalency.EquivalencyValidator.AssertEqualityUsing(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 52
FluentAssertions.Equivalency.DataTableEquivalencyStep.CompareCollections(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config, Dictionary`2 selectedMembers) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataTableEquivalencyStep.cs:line 158
FluentAssertions.Equivalency.DataTableEquivalencyStep.Handle(IEquivalencyValidationContext context, IEquivalencyValidator parent, IEquivalencyAssertionOptions config) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\DataTableEquivalencyStep.cs:line 62
FluentAssertions.Equivalency.EquivalencyValidator.RunStepsUntilEquivalencyIsProven(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 128
FluentAssertions.Equivalency.EquivalencyValidator.AssertEqualityUsing(IEquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 52
FluentAssertions.Equivalency.EquivalencyValidator.AssertEquality(EquivalencyValidationContext context) in C:\dev\fluentassertions\Src\FluentAssertions\Equivalency\EquivalencyValidator.cs:line 36
FluentAssertions.Data.DataTableAssertions`1.BeEquivalentTo(DataTable expectation, Func`2 config, String because, Object[] becauseArgs) in C:\dev\fluentassertions\Src\FluentAssertions\Data\DataTableAssertions.cs:line 258
FluentAssertions.Data.DataTableAssertions`1.BeEquivalentTo(DataTable expectation, String because, Object[] becauseArgs) in C:\dev\fluentassertions\Src\FluentAssertions\Data\DataTableAssertions.cs:line 177
FluentAssertions.Specs.DataEquivalencySpecs.DataTableEquivalencySpecs.<>c__DisplayClass32_0.<When_Rows_do_not_match_and_property_is_not_excluded_it_should_fail>b__0() in C:\dev\fluentassertions\Tests\FluentAssertions.Specs\Equivalency\DataEquivalencySpecs.DataTable.cs:line 662
FluentAssertions.Specialized.ActionAssertions.InvokeSubject() in C:\dev\fluentassertions\Src\FluentAssertions\Specialized\ActionAssertions.cs:line 25
FluentAssertions.Specialized.DelegateAssertions`2.InvokeSubjectWithInterception() in C:\dev\fluentassertions\Src\FluentAssertions\Specialized\DelegateAssertions.cs:line 221

@logiclrd do you by any change have time to look at these?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions