Namespace Serenity.Achievements.Tests.Sync
Classes
AchievementCopilotScriptTests
Tests for AchievementCopilotScript: gating fidelity against the same acceptance rules AchievementPushPlanExecutor already enforces, new-vs-existing classification, icon instructions only for accepted icons with bytes, and determinism.
AchievementIconImageLimitsTests
Tests for AchievementIconImageLimits: a file that declares too much, or nothing readable, is refused from its header alone.
AchievementIconPayloadTests
Tests for AchievementIconPayload: null-coalescing construction and defensive copying of PngBytes.
AchievementPushBatchTests
Tests for AchievementPushBatch: null-coalescing construction and defensive copying of the given lists.
AchievementPushGuardTests
What a push owes before it sends anything, because the storefront checks nothing: a name it cannot use, a name two project achievements share, and a name the storefront itself lists twice.
AchievementPushOutcomeTests
Tests for AchievementPushOutcome: null-coalescing construction and defensive copying of the given lists.
AchievementPushPlanExecutorTests
Tests for AchievementPushPlanExecutor: ordering, which items produce work at all, per-field gating by acceptance (icons, localized text, and scalars), and pass-through of whatever platform identity extras the caller supplied.
AchievementPushTextBaselineTests
Tests for AchievementPushTextBaseline: a push saves the platform's current texts with the authored text laid over them only for the locales in scope, so a save never narrows what the platform holds.
AchievementStorefrontIconTests
The file extension a storefront names for an icon is data from the network: only the two image formats a pull writes survive, so no extension can reach a file path as anything else.
AchievementStorefrontSnapshotJsonTests
Round-trip and malformed-input tests for AchievementStorefrontSnapshotJson — the wire shape a sync connector reads and writes, and the permanent import/export format for a storefront snapshot.
AchievementStorefrontSnapshotTests
Tests for AchievementStorefrontSnapshot: deterministic record ordering and defensive copying of the lists handed to its constructor.
AchievementSyncApplyReportTests
Tests for AchievementSyncApplyReport: counts, severity flags, and the deterministic rendering an Serenity.Achievements.Infrastructure.Editor.Sync.AchievementSyncAssetWriter preview/apply run depends on to compare byte-for-byte.
AchievementSyncCapabilitiesTests
Tests for AchievementSyncCapabilities: the field/direction support matrix and locale restriction lookup the sync UI drives its checkboxes and disabled buttons from.
AchievementSyncIconPullTests
What a pull offers for icons: a missing one is an ordinary row, an existing one is only offered and never swept up by an accept-all, and nothing is offered the storefront or the connector cannot back.
AchievementSyncKeyAdoptionPlanTests
Tests for the key-adoption row AchievementSyncPlanner offers a pull on a matched achievement that holds literal text: when it appears, what it carries, and when it never does.
AchievementSyncKeyCollisionsTests
Which achievements of one pull would file their text under the same localization key, and what the author is told about them.
AchievementSyncLocaleNoticesTests
What a push says about the languages that cannot travel: the project's languages the storefront has no counterpart for, and the achievement that holds its text literally.
AchievementSyncMissingLocalesTests
Tests for the languages a pull points out: the ones the storefront holds text in that the project's collection has no table for — and the cases where the plan stays quiet.
AchievementSyncPlannerTests
Tests for AchievementSyncPlanner: field-by-field diffing, one-sided records, identity conflicts, unsupported fields and locales, icon comparison, deterministic ordering, and the plan's summary counts.
AchievementSyncPulledTextNoticesTests
A pulled text holding characters a game's text pipeline may read as markup is pointed out, never changed.
AchievementSyncPushLocaleScopeTests
Tests for AchievementSyncPushLocaleScope: an empty locale choice on a push means every authored locale, never none.
AchievementSyncRecordTests
Tests for AchievementSyncRecord: null-coalescing construction and defensive copying of PlatformExtras.
AchievementSyncReviewSelectionTests
Tests for AchievementSyncReviewSelection: which field changes an author has accepted, keyed by achievement, field and locale rather than by list position.
AchievementSyncSelectionChangeKindTests
An acceptance counts only for the kind of change it was given for, so an icon taken in one run never arrives already ticked as an offered row of the next.
AchievementSyncStorefrontCopyTests
The push-after-pull rule: an icon a pull brought in is the storefront's own recompressed copy, so a push leaves it alone while the storefront still serves that copy, instead of recompressing it again.
CopilotWalkthroughProgressTests
Tests for CopilotWalkthroughProgress: field/icon tick tracking and completion counting.
LocalizedTextSetTests
Tests for LocalizedTextSet: deterministic enumeration, value equality, lookups, and locale-code validation.