#if v2_49_0
using Adaptation._Tests.Shared;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;

namespace Adaptation._Tests.CreateSelfDescription.Development.v2_49_0;

[TestClass]
public class MESAFIBACKLOG : EAFLoggingUnitTesting
{

#pragma warning disable CA2254
#pragma warning disable IDE0060

    internal static string DummyRoot { get; private set; }
    internal static MESAFIBACKLOG EAFLoggingUnitTesting { get; private set; }

    static MESAFIBACKLOG() => DummyRoot = @"\\messdv002.na.infineon.com\Candela\EC_Characterization_Si\Dummy";

    public MESAFIBACKLOG() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
    {
        if (EAFLoggingUnitTesting is null)
            throw new Exception();
    }

    public MESAFIBACKLOG(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
    {
    }

    [ClassInitialize]
    public static void ClassInitialize(TestContext testContext)
    {
        EAFLoggingUnitTesting ??= new MESAFIBACKLOG(testContext);
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
        string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
        File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
        File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
    }

    [ClassCleanup()]
    public static void ClassCleanup()
    {
        EAFLoggingUnitTesting.Logger?.LogInformation("Cleanup");
        EAFLoggingUnitTesting?.Dispose();
    }

#if DEBUG
    [Ignore]
#endif
    [TestMethod]
    public void Development__v2_49_0__MESAFIBACKLOG__json()
    {
        string check = "*.json";
        MethodBase methodBase = new StackFrame().GetMethod();
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
        _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
    }

}
#endif