logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class AchievementManifestExporterTests

    Tests for AchievementManifestExporter: the exact bytes each storefront's manifest carries, and every reason an achievement can fail to reach one.

    Inheritance
    object
    AchievementManifestExporterTests
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.Achievements.Tests.Authoring
    Assembly: Tests.dll
    Syntax
    public class AchievementManifestExporterTests
    Remarks

    Golden strings rather than field-by-field assertions, because the deliverable IS the text: a column reordered, a line ending changed or a quote left unescaped is a file an importer rejects, and only a comparison of the whole thing catches all three. The JSON shape has its own suite next door, where the text is also parsed back with a real reader.

    Constructors

    AchievementManifestExporterTests()

    Declaration
    public AchievementManifestExporterTests()

    Methods

    ARowCoercesEveryNullTextToEmpty()

    Declaration
    public void ARowCoercesEveryNullTextToEmpty()

    ARowRefusesToBeBuiltFromNothing()

    Declaration
    public void ARowRefusesToBeBuiltFromNothing()

    Describe_GroupsTheSkippedAchievementsByTheFixTheyNeed()

    Declaration
    public void Describe_GroupsTheSkippedAchievementsByTheFixTheyNeed()

    Describe_SaysHowManyWereExportedWhenNothingWasSkipped()

    Declaration
    public void Describe_SaysHowManyWereExportedWhenNothingWasSkipped()

    Export_EpicCsv_CarriesNoGamerscoreColumn()

    Declaration
    public void Export_EpicCsv_CarriesNoGamerscoreColumn()

    Export_IgnoresNullRows()

    Declaration
    public void Export_IgnoresNullRows()

    Export_KeepsTheArrivalOrderOfTwoAchievementsSharingAnId()

    Declaration
    public void Export_KeepsTheArrivalOrderOfTwoAchievementsSharingAnId()

    Export_OfNoAchievementsWritesTheHeaderAlone()

    Declaration
    public void Export_OfNoAchievementsWritesTheHeaderAlone()

    Export_OfNullWritesTheHeaderAlone()

    Declaration
    public void Export_OfNullWritesTheHeaderAlone()

    Export_OrdersRowsByIdOrdinalWhateverOrderTheyArriveIn()

    Declaration
    public void Export_OrdersRowsByIdOrdinalWhateverOrderTheyArriveIn()

    Export_PlayStationCsv_SkipsAchievementsWithNoTrophyId()

    Declaration
    public void Export_PlayStationCsv_SkipsAchievementsWithNoTrophyId()

    Export_PlayStationCsv_SkipsAndReportsATrophyWithNoGrade()

    PlayStation has no "none" tier, so a trophy with no grade is a row the upload rejects. It has to be reported, never written as none.

    Declaration
    public void Export_PlayStationCsv_SkipsAndReportsATrophyWithNoGrade()

    Export_PlayStationCsv_WritesTheTrophyGradeLowercased()

    Declaration
    public void Export_PlayStationCsv_WritesTheTrophyGradeLowercased()

    Export_ReportsAuthoringErrorsAheadOfAMissingIdentifier()

    A broken achievement that also names no identifier is reported as broken, because that is the fix that has to happen first — typing a Steam name into it would still leave it unexportable.

    Declaration
    public void Export_ReportsAuthoringErrorsAheadOfAMissingIdentifier()

    Export_SkipsAndReportsAnAchievementTheAuthoringRulesReject()

    Declaration
    public void Export_SkipsAndReportsAnAchievementTheAuthoringRulesReject()

    Export_SteamCsv_DoesNotMindAMissingTrophyGrade()

    Declaration
    public void Export_SteamCsv_DoesNotMindAMissingTrophyGrade()

    Export_SteamCsv_EscapesCommasQuotesAndNewlinesInKeys()

    Declaration
    public void Export_SteamCsv_EscapesCommasQuotesAndNewlinesInKeys()

    Export_SteamCsv_KeepsUnicodeKeysIntact()

    Declaration
    public void Export_SteamCsv_KeepsUnicodeKeysIntact()

    Export_SteamCsv_NamesASkippedAchievementThatHasNoIdAtAll()

    Declaration
    public void Export_SteamCsv_NamesASkippedAchievementThatHasNoIdAtAll()

    Export_SteamCsv_QuotesKeysWhoseWhitespaceWouldBeTrimmedAway()

    Declaration
    public void Export_SteamCsv_QuotesKeysWhoseWhitespaceWouldBeTrimmedAway()

    Export_SteamCsv_SkipsAndReportsAchievementsWithNoSteamApiName()

    Declaration
    public void Export_SteamCsv_SkipsAndReportsAchievementsWithNoSteamApiName()

    Export_SteamCsv_WritesANegativeProgressTargetAsItIs()

    Declaration
    public void Export_SteamCsv_WritesANegativeProgressTargetAsItIs()

    Export_SteamCsv_WritesHeaderAndOneRowPerAchievement()

    Declaration
    public void Export_SteamCsv_WritesHeaderAndOneRowPerAchievement()

    Export_XboxCsv_WritesNumberBoundariesInFull()

    Declaration
    public void Export_XboxCsv_WritesNumberBoundariesInFull()

    Export_XboxCsv_WritesPointsAsGamerscore()

    Declaration
    public void Export_XboxCsv_WritesPointsAsGamerscore()

    FileExtensionOf_IsCsvForEveryStorefrontAndJsonForTheDump()

    Declaration
    public void FileExtensionOf_IsCsvForEveryStorefrontAndJsonForTheDump()

    IdentifierFor_ReadsTheColumnEachStorefrontIsKeyedBy()

    Declaration
    public void IdentifierFor_ReadsTheColumnEachStorefrontIsKeyedBy()

    PlatformOf_MapsEachCsvFormatToItsStorefront()

    Declaration
    public void PlatformOf_MapsEachCsvFormatToItsStorefront()

    SkippedIds_ListsTheIdsInTheOrderTheyWereSkipped()

    Declaration
    public void SkippedIds_ListsTheIdsInTheOrderTheyWereSkipped()
    In this article
    © 2026 Serenity. All Rights Reserved