using Json2CSharpCodeGenerator.Lib;
using Json2CSharpCodeGenerator.Lib.CodeWriters;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Json2CSharpCodeGenerator.Tests;

[TestClass]
public class Test_4_BracketError
{
    [TestMethod]
    public void Run_1()
    {
        string path = Path.Combine(AppContext.BaseDirectory, "Test_4_BracketError_INPUT.txt");
        string resultPath = Path.Combine(AppContext.BaseDirectory, "Test_4_BracketError_OUTPUT.txt");
        string input = File.ReadAllText(path);

        CSharpCodeWriter csharpCodeWriter = new();
        JsonClassGenerator jsonClassGenerator = new()
        {
            CodeWriter = csharpCodeWriter
        };

        string returnVal = jsonClassGenerator.GenerateClasses(input, out _).ToString();
        string resultsCompare = File.ReadAllText(resultPath);
        Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput());
    }

    [TestMethod]
    public void Run_2()
    {
        string path1 = Path.Combine(AppContext.BaseDirectory, "Test_4_BracketError_INPUT_1.txt");
        string resultPath1 = Path.Combine(AppContext.BaseDirectory, "Test_4_BracketError_OUTPUT_1.txt");
        string input1 = File.ReadAllText(path1);

        CSharpCodeWriter csharpCodeWriter1 = new();
        JsonClassGenerator jsonClassGenerator1 = new()
        {
            CodeWriter = csharpCodeWriter1
        };

        string returnVal1 = jsonClassGenerator1.GenerateClasses(input1, out _).ToString();
        string resultsCompare1 = File.ReadAllText(resultPath1);
        Assert.AreEqual(resultsCompare1.NormalizeOutput(), returnVal1.NormalizeOutput());
    }
}