Skip to content

test(tests): add Northwind aggregate specification coverage#233

Open
ncipollina wants to merge 2 commits into
mainfrom
test/tests-northwind-aggregate-spec
Open

test(tests): add Northwind aggregate specification coverage#233
ncipollina wants to merge 2 commits into
mainfrom
test/tests-northwind-aggregate-spec

Conversation

@ncipollina
Copy link
Copy Markdown
Contributor

Summary

Adds DynamoDB coverage for EF Core's NorthwindAggregateOperatorsQueryTestBase. The new specification test class mirrors the existing Northwind where/select pattern: supported aggregate/operator cases execute against the shared DynamoDB Northwind fixture with PartiQL baselines, while unsupported query shapes are explicitly skipped with the centralized skip reason.

Changes

  • Added NorthwindAggregateOperatorsQueryDynamoTest with overrides for all inherited aggregate-operator specification tests.
  • Captured PartiQL baselines for supported cases using Fixture.AssertSql(...).
  • Marked unsupported aggregate/query shapes with SkipReason.QueryShapeNotSupported so current provider limits are explicit.

Validation

  • dotnet build
  • dotnet test --project tests/EntityFrameworkCore.DynamoDb.SpecificationTests/EntityFrameworkCore.DynamoDb.SpecificationTests.csproj --no-build --filter "FullyQualifiedName~NorthwindAggregateOperatorsQueryDynamoTestDefault" -- --no-progress
    • 266 total
    • 109 succeeded
    • 157 skipped
    • 0 failed

Notes for Reviewers

This PR is test-only. The skipped cases reflect currently unsupported DynamoDB provider query shapes discovered by first running the full inherited suite unskipped, then classifying failures against existing provider capabilities.

@github-actions github-actions Bot added the type: test Test changes label May 20, 2026
@ncipollina
Copy link
Copy Markdown
Contributor Author

Addressed the required skip-reason fix in 3aefe7c:

  • Switched First, First_Predicate, Where_First, FirstOrDefault, FirstOrDefault_Predicate, and Where_FirstOrDefault from SkipReason.QueryShapeNotSupported to SkipReason.OrderedResultSetNotSupported.

I also investigated Contains_with_local_collection_empty_inline by temporarily unskipping it. It still fails during translation before SQL generation:

Contains translation supports in-memory collection membership only (for example, ids.Contains(entity.Id)).

So I left that case skipped as QueryShapeNotSupported; the closure variant remains covered and passing with the WHERE 1 = 0 baseline.

Validation after the fix:

  • dotnet build
  • dotnet test --project tests/EntityFrameworkCore.DynamoDb.SpecificationTests/EntityFrameworkCore.DynamoDb.SpecificationTests.csproj --no-build --filter "FullyQualifiedName~NorthwindAggregateOperatorsQueryDynamoTestDefault" -- --no-progress
    • 266 total
    • 109 succeeded
    • 157 skipped
    • 0 failed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: test Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant