Namespace Serenity.UnityAchievements.Tests.Infrastructure
Classes
AchievementIconLookupTests
PlayMode tests for AchievementIconLookup: the one thing the engine-free registry cannot carry. An icon is a UnityEngine.Sprite, so the listing has to recover it from the authored assets, and it must follow the registry's own rule about which of two assets claiming an id is live.
AchievementPlatformDefinitionTests
PlayMode tests for the four shipped storefront definition assets and the gateways they build.
AchievementPlatformGatewayFactoryTests
PlayMode tests for AchievementPlatformGatewayFactory and AchievementPlatformGatewayRegistry: a project with no storefront gets a working no-op, a registered factory is consulted first, and a definition that fails is skipped rather than propagated.
AchievementToastActionTests
PlayMode tests for AchievementToastAction: the popup an unlock raises, the setting that suppresses it, and the two ordinary states — an unknown achievement and an uninstalled module — in which it must do nothing at all rather than fail.
UnityAchievementDefinitionSourceTests
PlayMode tests for UnityAchievementDefinitionSource: what it hands the registry builder, what it hands the evaluator, and what it does with an asset it cannot use.
UnityAchievementDefinitionTests
PlayMode tests for UnityAchievementDefinition: the identity contract every Serenity settings asset carries, the conversion into the runtime AchievementDefinition and the reasons it can refuse, and the engine-free snapshot the authoring rules read.
UnityAchievementEvaluatorRunnerTests
PlayMode tests for UnityAchievementEvaluatorRunner: that a frame ticks the time-driven trees, that the recovery pass fires on the backoff schedule and cannot overlap itself, that a failing pass backs off and reports once, and that tearing the host down unsubscribes everything.
UnityAchievementPlayerIdentityProviderTests
PlayMode tests for UnityAchievementPlayerIdentityProvider: the device identity a zero-config project runs on, the signed-in player a custom-identity project supplies, and the fallback that keeps a not-yet-signed-in project off the empty key.
UnityAchievementRowTranslationTests
PlayMode tests for the one thing a pooled row gets wrong for free: a label whose localization key
changes after the updater component has already started. The component only translates in its own
Start, so a row reused for a second achievement would show the raw key — the defect these tests
pin shut.
UnityAchievementScreenshotCapturerTests
PlayMode tests for UnityAchievementScreenshotCapturer: that a capture yields PNG bytes no wider than the configured maximum, that requests made in the same frame share one readback, and that a torn-down capturer answers its pending requests instead of leaving the unlock path awaiting forever.
UnityAchievementScreenshotLoaderTests
PlayMode tests for UnityAchievementScreenshotLoader: that a stored screenshot round-trips back into a sprite of the right size, that a key with nothing behind it is remembered as such instead of re-read on every list rebuild, that a key the module did not write is refused outright, and that the cache does not grow without bound.
UnityAchievementSettingsTests
PlayMode tests for UnityAchievementSettings: that a freshly created asset ships exactly the shared AchievementSettingsDefaults, and the explicit IAchievementSettings / IFoundationSettings projections the runtime reads it through.
UnityAchievementsViewTests
PlayMode tests for UnityAchievementsView against a real procedural panel: what the listing renders for locked, unlocked and concealed achievements, how it reacts to the achievement signals while shown, and the cancel-returns-to-the-opener path it shares with the leaderboard view. Inheriting UnityEngine.InputSystem.InputTestFixture isolates and resets the input system per test.