Service-layer test migration map

This records the removed legacy test method identifiers from baseline dca3123d and their current focused replacements. Matching identifiers retained in a renamed fixture continue to cover the same behavior. Parameterized tests consolidate several previous operation-specific methods; test counts alone are not the coverage comparison.

The following table was checked against the current source during PR 2522 remediation. It also records deliberate changes (stale-context rejection and validated endpoint options).

Removed method Current executable coverage Disposition
GetFlightSearchAirportsAsync_NotLoggedIn_ReturnsNull_DoesNotThrow FlightSearchServiceTests.cs — SignedOut_AllProtectedFlightOperationsSkipAuthAndApi Same behavior, focused owner.
FlightSearchAsync_NotLoggedIn_ReturnsNull_DoesNotThrow FlightSearchServiceTests.cs — SignedOut_AllProtectedFlightOperationsSkipAuthAndApi Same behavior, focused owner.
FindFlightInfoAsync_NotLoggedIn_ReturnsNull_DoesNotThrow FlightSearchServiceTests.cs — SignedOut_AllProtectedFlightOperationsSkipAuthAndApi Same behavior, focused owner.
FindFlightInfoAsync_NotLoggedIn_ReportsSignedOut_NotAFailure FlightSearchServiceTests.cs — SignedOut_AllProtectedFlightOperationsSkipAuthAndApi Same behavior, focused owner.
FindFlightsInfoAsync_NotLoggedIn_ReturnsNull_DoesNotThrow FlightSearchServiceTests.cs — SignedOut_AllProtectedFlightOperationsSkipAuthAndApi Same behavior, focused owner.
EmptyApiBaseUrl_ReturnsFailure_WithoutThrowingOrSendingARequest DynamicContentApiClientEndpointTests.cs — MissingApiBaseUrl_ReturnsFailure_WithoutThrowingOrSendingARequest Endpoint options now represent absence as null; options validation separately rejects invalid URLs.
ImportDutyPeriodsFromLastDateAsync_ExceptionAlreadyReportedByRestService_DoesNotReportAgain FTDTDataSyncHelper_DoubleReportTests.cs — ImportDutyPeriodsFromLastDateAsync_ExceptionAlreadyReportedByTransport_DoesNotReportAgain Same behavior, focused owner.
GetMenuItems_VersionBumpedMidFetch_ReturnsFetchedDataWithoutCommittingOrCaching MenuService_MenuCacheFallbackTests.cs — GetMenuItems_VersionBumpedMidFetch_RejectsResultWithoutCommittingOrCaching Deliberate safety change: reject stale context instead of returning outgoing member data.
GetAirlineJumpseatPoliciesAsync_ExhaustedRetries_ReportsOnceAndStampsException FlightCatalogServiceTests.cs — RealAdapters_ExhaustedGet503_ReportsExactlyOnceAcrossOuterCatch Parameterized operations cover Jumpseat policies, airlines and subscriptions through real adapters.
GetJumpseatAirlinesAsync_ExhaustedRetries_ReportsOnceAndStampsException FlightCatalogServiceTests.cs — RealAdapters_ExhaustedGet503_ReportsExactlyOnceAcrossOuterCatch Parameterized operations cover Jumpseat policies, airlines and subscriptions through real adapters.
GetAllSubscriptionsForUserAsync_ExhaustedRetries_ReportsOnceAndStampsException FlightCatalogServiceTests.cs — RealAdapters_ExhaustedGet503_ReportsExactlyOnceAcrossOuterCatch Parameterized operations cover Jumpseat policies, airlines and subscriptions through real adapters.
RegisterPushTokenAsync_StillRetryable_DoesNotReport NotificationsFailureReportingTests.cs — RegisterPushTokenAsync_TransportFailure_DoesNotReportExpectedNetworkNoise Same behavior, focused owner.
FlightSearchAsync_CancelledAfterCompletion_DisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_CallerCancellationNeverRetries_AndDisposesLateResponse Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FlightSearchAsync_Success_DisposesResponseAndRequestContent FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FlightSearchAsync_NonSuccess_Throws_AndDisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightInfoAsync_Success_DisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightInfoAsync_NonSuccess_Throws_AndDisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightsInfoAsync_Success_DisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightsInfoAsync_NonSuccess_Throws_AndDisposesResponse FlightSearchApiClientTests.cs — ReadOnlyPost_DisposesResponseAndOutgoingContent_WithoutRetryingHttpErrors Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
DownloadDocumentItem_Success_DisposesResponse DocumentsApiClientTests.cs — Download_PostsExactPascalCaseSourceAndFileId_AndReadsBase64Bytes Same behavior, focused owner.
FlightSearchAsync_SocketException_IsRetried_AndSucceeds FlightSearchApiClientTests.cs — ReadOnlyPost_OneSocketFailureThenSuccess_MakesTwoAttempts Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FlightSearchAsync_UserCancellation_IsNotRetried FlightSearchApiClientTests.cs — ReadOnlyPost_CallerCancellationNeverRetries_AndDisposesLateResponse Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightInfoAsync_SocketException_IsRetried_AndSucceeds FlightSearchApiClientTests.cs — ReadOnlyPost_OneSocketFailureThenSuccess_MakesTwoAttempts Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightInfoAsync_UserCancellation_IsNotRetried FlightSearchApiClientTests.cs — ReadOnlyPost_CallerCancellationNeverRetries_AndDisposesLateResponse Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightsInfoAsync_SocketException_IsRetried_AndSucceeds FlightSearchApiClientTests.cs — ReadOnlyPost_OneSocketFailureThenSuccess_MakesTwoAttempts Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
FindFlightsInfoAsync_UserCancellation_IsNotRetried FlightSearchApiClientTests.cs — ReadOnlyPost_CallerCancellationNeverRetries_AndDisposesLateResponse Parameterized operation covers search, single lookup and batch lookup; success/error disposal is asserted.
GetDocumentListAsync_ServerError_ThenSuccess_IsRetried DocumentsApiClientTests.cs — CatalogueTransientStatusThenSuccess_IsRetriedOnce Same behavior, focused owner.
GetDocumentListAsync_PersistentServiceUnavailable_ExhaustsRetries DocumentsApiClientTests.cs — CataloguePersistent503_PreservesThreeAttemptCeiling Same behavior, focused owner.
GetDocumentListAsync_ClientError_IsNotRetried DocumentsApiClientTests.cs — CatalogueClientFailure_DoesNotRetry Same behavior, focused owner.
GetDocumentListAsync_WithToken_UserCancellation_IsNotRetried DocumentsApiClientTests.cs — CatalogueCallerCancellation_IsNotRetried Same behavior, focused owner.
GetDocumentListAsync_WithToken_SocketException_IsRetried_AndSucceeds DocumentsApiClientTests.cs — CatalogueSocketFailure_IsRetriedWithoutASecondRetryOwner Same behavior, focused owner.

Deleted fixture ownership

Historical fixture Current owner
DataManager_AuthGuardTests FlightSearchServiceTests
DataManager_DocumentListCancellationTests DocumentCatalogTests, DocumentFileLifecycleTests
DataManager_GetMemberAsync_ReportGuardTests MemberServiceTests, MemberApiClientTests
DataManager_PrefetchDocumentsTests DocumentPrefetchService_SelectionTests / DocumentPrefetchService_TaggedTests
RestService_DataManager_DoubleReportTests FlightCatalogServiceTests, NotificationsFailureReportingTests
RestService_DisposalTests FlightSearchApiClientTests, DocumentsApiClientTests
RestService_GetMemberResultTests MemberApiClientTests
RestService_RetryTests FlightSearchApiClientTests, DocumentsApiClientTests, MecApiClientTests, NetworkRetryExhaustionTests

Phase 0's additional intermediate DataManager_CacheContextTests and DataManager_AuthFallbackPolicyTests were superseded by CacheContextSafetyTests, CachedRemoteQueryTests, MecServiceTests, DocumentFileLifecycleTests, NotificationsServiceTests, FlightCatalogServiceTests, and FlightSearchServiceTests. Authentication_LogoutCacheContextTests exercises actual cache/document logout participants. The raw-boundary and source/IL tests now live under UnitTest/Architecture/.

Review remediation restores bounded JWT, notification and document retries previously omitted by the extraction. Updated tests exercise those corrected contracts; they do not preserve the single-attempt assertions flagged in F38, F50 and F57.

Review remediation renames (Phase 7 tip 6633bb59 → PR 2527)

Nine test names present at 6633bb59 are absent after the remediation. Eight are deliberate contract changes answering a finding; the ninth is a source-text guard whose behaviour has executable coverage.

Removed method Current executable coverage Disposition
NetworkFailure_IsOneAttempt_AndRemainsTransportClassifiable AuthRestClientTests.cs — NetworkFailure_ExhaustsTwoTransportAttempts_AndRemainsTransportClassifiable F57: the JWT exchange retries transport failures again; one retry (two sends), not legacy's three, because a lost reply to a rejected password still counts toward lockout.
PushRegistration_UsesExactSdkPayloadAndRoute_AndDoesNotRetryWrites NotificationsApiClientTests.cs — PushRegistration_UsesExactSdkPayloadAndRoute_AndRetriesIdempotentUpsert F38: the registration upsert is idempotent and retries.
TransientAttemptsAlreadyExhausted_401DoesNotReceiveExtraAttemptBudget AuthenticatedRequestProviderTests.cs — TransientAttemptsAlreadyExhausted_StillPermitsOneIndependentAuthRecovery F13: one auth recovery is independent of the transient budget.
ThrownCancellation_NeverBecomesTransportFallback CachedRemoteQueryTests.cs — TransportTimeout_WithoutCancellation_ReturnsPersistedFallback F18: a deadline timeout is distinct from caller cancellation and may fall back.
SwrBackgroundAndForegroundRefresh_ShareTheSameFetch CachedRemoteQueryTests.cs — ExplicitRefresh_ReplacesAnOlderBackgroundFetch_AndOldResultCannotOverwriteIt F16: an explicit refresh supersedes a background fetch instead of joining it.
DownloadFailure_IsNeverReplayedOrUsedToForceRefresh DocumentsApiClientTests.cs — DownloadFailure_UsesBoundedReadPostRetryOrOneAuthRecovery F50: the read-only download POST is replay-safe.
LogoutDuringFavoriteRemoval_RejectsOldMutationCompletion CacheContextSafetyTests.MenuAndFavorites.cs — LogoutDuringFavoriteRemoval_PreservesServerSuccessWithoutOldMemo F07: a committed server mutation is preserved; only the stale memo is refused.
FifteenSecondDeadline_BoundsTokenAcquisitionThatDoesNotObserveCancellation DynamicContentApiClientTransportTests.cs — PublicFeed_NeverWaitsForTokenRefresh The public feed no longer acquires a token, so the bound it tested no longer applies; the replacement waits 2 s, not 20 s.
RetryIncompleteWavesIfNeededAsync_RetriesIncompleteWaves (AB#2761 source-text guard, CacheContentService_BackgroundingTests) CacheContentService_OrchestrationTests.cs — the RetryIncompleteWavesIfNeededAsync cases Behavioural coverage replaces the source-text assertion.