using System.Security.Claims; using Hotline.Configurations; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; namespace Hotline.Tests.Mock; public class OptionsSnapshotMock : IOptionsSnapshot { private readonly IHttpContextAccessor _contextAccessor; private readonly IConfiguration _configuration; public OptionsSnapshotMock(IHttpContextAccessor contextAccessor, IConfiguration configuration) { _contextAccessor = contextAccessor; _configuration = configuration; } public AppConfiguration Value { get { var appConfiguration = _configuration.GetRequiredSection(nameof(AppConfiguration)).Get(); if (_contextAccessor != null && _contextAccessor.HttpContext != null) appConfiguration.AppScope = _contextAccessor.HttpContext.User.FindFirstValue("AppScope"); return appConfiguration; } } public AppConfiguration Get(string? name) { throw new NotImplementedException(); } }