using Omika.App.Local.Abstractions; using Omika.App.Local.Models; using Omika.Core.Contracts.Mobile.License; namespace Omika.Tests.Mobile.Local; /// /// Stub réutilisable de : retourne un /// bootstrap configurable (défaut null) et ne fait aucun appel réseau. /// public sealed class StubSessionService : IMobileSessionService { public LocalBootstrapState? Bootstrap { get; set; } public Task HasValidSessionAsync(CancellationToken cancellationToken = default) => Task.FromResult(true); public Task HasExpiredSessionAsync(CancellationToken cancellationToken = default) => Task.FromResult(false); public Task ActivateAsync(string codeClient, string numeroLicence, CancellationToken cancellationToken = default) => Task.FromResult(new LicenseResponse { IsValid = true }); public Task ValidateAsync(CancellationToken cancellationToken = default) => Task.FromResult(new LicenseResponse { IsValid = true }); public Task GetBootstrapAsync(CancellationToken cancellationToken = default) => Task.FromResult(Bootstrap); public Task GetAccessTokenAsync(CancellationToken cancellationToken = default) => Task.FromResult(null); public Task EnsureDevelopmentSessionAsync(CancellationToken cancellationToken = default) => Task.CompletedTask; public Task ClearSessionAsync(CancellationToken cancellationToken = default) => Task.CompletedTask; }