Namespace Serenity.Achievements.Tests.Infrastructure
Classes
AchievementPointsSummaryTests
Unit tests for AchievementPointsSummary: the "earned / maximum" line the achievements screen prints, and the completion fraction a bar over it reads.
AchievementRecordMappingTests
Pins what AchievementRecordMapping does with a row it did not write: a document backend that omitted a null, an older row that predates a column, a hand-provisioned table that spells one differently. Losing the value is acceptable; throwing would lose the whole player's history.
AchievementRowContentMapperTests
Unit tests for AchievementRowContentMapper: what a player is shown for a locked, an unlocked and a still-concealed achievement, and how progress, points and unlock dates are rendered.
AchievementRowSorterTests
Unit tests for AchievementRowSorter: every filter slice, every ordering mode, and the two rules that cut across them — concealed rows last, and stable order for rows a mode cannot tell apart.
AchievementScreenshotKeyTests
Pins the layout, the escaping and — above all — the parsing of the key an unlock record persists.
AchievementSignalSubscriptionBinderTests
Behavioral tests for AchievementSignalSubscriptionBinder: one subscription per distinct signal type however many achievements listen for it, routing into the evaluator, warning once about a name that no longer resolves, and unsubscribing on dispose.
BlobAchievementScreenshotStoreTests
Pins what the blob-backed screenshot store guarantees the unlock path: a key that reads back the exact bytes, a reset that clears one player without touching another, no orphaned PNG a reset cannot find, and a store failure that costs the screenshot rather than the unlock.
BlobScreenshotUnlockFlowTests
The whole screenshot path over the real blob-backed store: an unlock, a capture, the bytes in the blob store, the key on the unlock record, and the signal that says so. The capturer is faked because it is the only part that needs an engine; everything below it is the shipped composition.
StructuredStoreAchievementAdapterTests
StructuredStoreAchievementAdapter-specific tests: revision-ordered upserts, the unlock-date preservation an all-fields upsert would otherwise lose, player scoping across the two tables, and exception re-wrapping/propagation.