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;
}