// using Microsoft.Extensions.Caching.Memory;
// using Microsoft.Extensions.Configuration;
// using Microsoft.Extensions.DependencyInjection;
// using OI.Metrology.Archive.Repositories;
// using OI.Metrology.Shared.Models;
// using OI.Metrology.Shared.Repositories;
// using OI.Metrology.Tests.Models;
// using Serilog;
// using System.Reflection;
// using System.Text.Json;

// namespace OI.Metrology.Tests;

// [TestClass]
// public class UnitTestArchive
// {

//     private readonly ILogger _Logger;
//     private readonly AppSettings _AppSettings;
//     private readonly string _WorkingDirectory;
//     private readonly IMemoryCache? _MemoryCache;
//     private readonly IConfigurationRoot _ConfigurationRoot;

//     public UnitTestArchive()
//     {
//         ILogger logger;
//         AppSettings appSettings;
//         string workingDirectory;
//         IConfigurationRoot configurationRoot;
//         LoggerConfiguration loggerConfiguration = new();
//         Assembly assembly = Assembly.GetExecutingAssembly();
//         IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
//             .AddEnvironmentVariables()
//             .AddJsonFile("appsettings.Development.json");
//         configurationRoot = configurationBuilder.Build();
//         appSettings = Models.Binder.AppSettings.Get(configurationRoot);
//         workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
//         Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
//         _ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
//         Log.Logger = loggerConfiguration.CreateLogger();
//         logger = Log.ForContext<UnitTestArchive>();
//         logger.Information("Complete");
//         ServiceCollection services = new();
//         ServiceProvider serviceProvider = services.BuildServiceProvider();
//         _ = services.AddMemoryCache();
//         _MemoryCache = serviceProvider.GetService<IMemoryCache>();
//         _Logger = logger;
//         _AppSettings = appSettings;
//         _WorkingDirectory = workingDirectory;
//         _ConfigurationRoot = configurationRoot;
//     }

//     [TestMethod]
//     public void TestMethodNull()
//     {
//         Assert.IsFalse(_Logger is null);
//         Assert.IsFalse(_AppSettings is null);
//         Assert.IsFalse(_WorkingDirectory is null);
//         Assert.IsFalse(_ConfigurationRoot is null);
//     }

//     [TestMethod]
//     public void TestMethodArchive()
//     {
//         Assert.IsFalse(_Logger is null);
//         Assert.IsFalse(_AppSettings is null);
//         Assert.IsFalse(_WorkingDirectory is null);
//         Assert.IsFalse(_ConfigurationRoot is null);
//     }

//     [TestMethod]
//     public void TestMethodArchiveJson()
//     {
//         string json;
//         string jsonFile = Path.Combine(AppContext.BaseDirectory, "RdsMaxRepo.json");
//         Assert.IsTrue(File.Exists(jsonFile));
//         json = JsonSerializer.Serialize(_AppSettings);
//         IRdsMaxRepo rdsMaxRepo = new RdsMaxRepo(json, _MemoryCache);
//         json = File.ReadAllText(jsonFile);
//         Shared.DataModels.RDS.Max[]? collection = JsonSerializer.Deserialize<Shared.DataModels.RDS.Max[]>(json);
//         if (collection is null)
//             throw new NullReferenceException(nameof(collection));
//         List<string[]> data = rdsMaxRepo.Convert(collection);
//         Assert.IsTrue(data.Any());
//     }

// }