logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    In this article
    © 2026 Serenity. All Rights Reserved