// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
namespace EpicGames.OIDC;
///
/// An in-memory token store without encryption, intended for testing
///
// ReSharper disable once ClassNeverInstantiated.Global
public class InMemoryTokenStore : ITokenStore
{
private readonly Dictionary _providerToRefreshToken = new ();
///
public virtual bool TryGetRefreshToken(string oidcProvider, out string refreshToken)
{
if (!_providerToRefreshToken.TryGetValue(oidcProvider, out string? result))
{
refreshToken = "";
return false;
}
refreshToken = result;
return true;
}
///
public virtual void AddRefreshToken(string providerIdentifier, string refreshToken)
{
_providerToRefreshToken[providerIdentifier] = refreshToken;
}
///
public virtual void Save()
{
// No need - data exists only in-memory
}
///
/// Dispose method
///
///
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// no resources to release
}
}
///
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}