chore(sonar): wrap independent assertions in Assert.Multiple (NUnit2045)

Driven by `dotnet format analyzers --diagnostics NUnit2045`. The fixer
groups consecutive independent `Assert.That(...)` calls into
`Assert.Multiple(() => { ... })`, so a failing assertion no longer
short-circuits the block — every failure inside the group is reported,
which gives much better diagnostics on multi-property tests.

Audit confirmed no Assert.Throws / Assert.Fail / Assert.Catch / Assert.Pass
/ Assert.DoesNotThrow got pulled inside a Multiple block (those need to
short-circuit). All 1180 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Thom Lamb
2026-05-27 11:59:47 -05:00
co-authored by Claude Opus 4.7
parent 505ada5017
commit 67512d23e1
47 changed files with 2132 additions and 1113 deletions
@@ -27,9 +27,12 @@ public class QueryBreakdownMapperTests
// Assert
Assert.That(entity, Is.Not.Null);
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.CreatedAt, Is.LessThanOrEqualTo(DateTime.UtcNow));
Assert.Multiple(() =>
{
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.CreatedAt, Is.LessThanOrEqualTo(DateTime.UtcNow));
});
}
[Test]
@@ -46,11 +49,14 @@ public class QueryBreakdownMapperTests
// Act
var entity = _mapper.MapToEntity(queryBreakdown);
// Assert
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.WhereClause, Is.EqualTo("Active = 1"));
Assert.That(entity.OrderByClause, Is.EqualTo("Name ASC"));
Assert.Multiple(() =>
{
// Assert
Assert.That(entity.SelectClause, Is.EqualTo("ID, Name"));
Assert.That(entity.FromClause, Is.EqualTo("Users"));
Assert.That(entity.WhereClause, Is.EqualTo("Active = 1"));
Assert.That(entity.OrderByClause, Is.EqualTo("Name ASC"));
});
}
[Test]
@@ -72,9 +78,12 @@ public class QueryBreakdownMapperTests
// Assert
Assert.That(queryBreakdown, Is.Not.Null);
Assert.That(queryBreakdown.SelectClause?.Clause, Is.EqualTo("ID, Name"));
Assert.That(queryBreakdown.FromClause?.Clause, Is.EqualTo("Users"));
Assert.That(queryBreakdown.WhereClause?.Clause, Is.EqualTo("Active = 1"));
Assert.Multiple(() =>
{
Assert.That(queryBreakdown.SelectClause?.Clause, Is.EqualTo("ID, Name"));
Assert.That(queryBreakdown.FromClause?.Clause, Is.EqualTo("Users"));
Assert.That(queryBreakdown.WhereClause?.Clause, Is.EqualTo("Active = 1"));
});
}
[Test]
@@ -110,11 +119,14 @@ public class QueryBreakdownMapperTests
var entity = _mapper.MapToEntity(originalQuery);
var restoredQuery = _mapper.MapToDomainModel(entity);
// Assert
Assert.That(restoredQuery.SelectClause?.Clause, Is.EqualTo(originalQuery.SelectClause?.Clause));
Assert.That(restoredQuery.FromClause?.Clause, Is.EqualTo(originalQuery.FromClause?.Clause));
Assert.That(restoredQuery.WhereClause?.Clause, Is.EqualTo(originalQuery.WhereClause?.Clause));
Assert.That(restoredQuery.OrderByClause?.Clause, Is.EqualTo(originalQuery.OrderByClause?.Clause));
Assert.Multiple(() =>
{
// Assert
Assert.That(restoredQuery.SelectClause?.Clause, Is.EqualTo(originalQuery.SelectClause?.Clause));
Assert.That(restoredQuery.FromClause?.Clause, Is.EqualTo(originalQuery.FromClause?.Clause));
Assert.That(restoredQuery.WhereClause?.Clause, Is.EqualTo(originalQuery.WhereClause?.Clause));
Assert.That(restoredQuery.OrderByClause?.Clause, Is.EqualTo(originalQuery.OrderByClause?.Clause));
});
}
[Test]
@@ -127,10 +139,16 @@ public class QueryBreakdownMapperTests
// Act
var (entity, parameters, withClauses) = _mapper.MapToEntityWithRelations(queryBreakdown);
// Assert
Assert.That(entity, Is.Not.Null);
Assert.That(parameters, Is.Not.Empty);
Assert.That(parameters.First().ParameterName, Is.EqualTo("UserId"));
Assert.That(withClauses, Is.Empty);
Assert.Multiple(() =>
{
// Assert
Assert.That(entity, Is.Not.Null);
Assert.That(parameters, Is.Not.Empty);
});
Assert.Multiple(() =>
{
Assert.That(parameters.First().ParameterName, Is.EqualTo("UserId"));
Assert.That(withClauses, Is.Empty);
});
}
}
@@ -58,8 +58,11 @@ public class QueryBreakdownRepositoryTests
// Assert
Assert.That(retrieved, Is.Not.Null);
Assert.That(retrieved?.SelectClause?.Clause, Is.EqualTo("ID, Name"));
Assert.That(retrieved?.FromClause?.Clause, Is.EqualTo("Users"));
Assert.Multiple(() =>
{
Assert.That(retrieved?.SelectClause?.Clause, Is.EqualTo("ID, Name"));
Assert.That(retrieved?.FromClause?.Clause, Is.EqualTo("Users"));
});
}
[Test]
@@ -117,9 +120,12 @@ public class QueryBreakdownRepositoryTests
bool deleted = await _repository.DeleteAsync(id);
var retrieved = await _repository.GetByIdAsync(id);
// Assert
Assert.That(deleted, Is.True);
Assert.That(retrieved, Is.Null);
Assert.Multiple(() =>
{
// Assert
Assert.That(deleted, Is.True);
Assert.That(retrieved, Is.Null);
});
}
[Test]