Skip to content

Add EditAndReplayAsync to Oracle, compliance test, and fix EFCore test setup#2280

Merged
jeremydmiller merged 5 commits intomainfrom
cw-working
Mar 10, 2026
Merged

Add EditAndReplayAsync to Oracle, compliance test, and fix EFCore test setup#2280
jeremydmiller merged 5 commits intomainfrom
cw-working

Conversation

@jeremydmiller
Copy link
Member

Summary

  • Add EditAndReplayAsync to Oracle IMessageStore.DeadLetters — implements the missing interface method that updates the body of a dead letter envelope and marks it as replayable in a single operation
  • Centralize can_edit_and_replay_dead_letter_envelope test — moved from Oracle-specific tests into MessageStoreCompliance so all 13 persistence providers (PostgreSQL, SQL Server, Oracle, SQLite, MySQL, RavenDb, CosmosDb + variants) are covered
  • Fix EFCoreTests schema setup failuresEFCorePersistenceContext and Bug_252_codegen_issue now drop the mt_items schema before host startup so Weasel migrations can cleanly apply NOT NULL constraints without conflicting with stale data from previous test runs

Test plan

  • All 13 MessageStoreCompliance implementations pass can_edit_and_replay_dead_letter_envelope
  • EFCoreTests: 116/117 passing (sole failure is pre-existing flaky Bug_1846 timing test, passes in isolation)
  • Oracle EditAndReplayAsync verified: reads dead letter, replaces body, re-serializes, updates body + replayable flag

🤖 Generated with Claude Code

jeremydmiller and others added 5 commits March 9, 2026 19:25
… before replay

Supports updating the serialized message body inside a dead letter envelope and marking
it as replayable in a single operation. Implemented across all persistence providers
(RDBMS, RavenDb, CosmosDb) with no-op stubs for NullMessageStore and MultiTenantedMessageStore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
StopAsync only stops background services but does not dispose the DI
container, so NpgsqlDataSource and other resources leak their connection
pools. This fixes 58 test files across all test projects.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… test schema setup

Implement the missing IDeadLetters.EditAndReplayAsync method on the Oracle
message store and add a centralized compliance test in MessageStoreCompliance
so all persistence providers are covered.

Fix EFCoreTests failures by dropping the mt_items schema before host startup,
ensuring Weasel migrations can cleanly create/alter columns without conflicting
with stale data from previous test runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Unregister the listener and set status before calling TrySetException,
so that with RunContinuationsAsynchronously the listener is cleaned up
before any awaiter continuation resumes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WebApplication implements IAsyncDisposable, not IDisposable in .NET 9.
Use DisposeAsync() instead of Dispose() to fix compilation errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant