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

namespace Json2CSharpCodeGenerator.Tests;

[TestClass]
public class Test_1_2_SETTINGS_PASCAL
{
    [TestMethod]
    public void Run()
    {
        string path = Path.Combine(AppContext.BaseDirectory, "Test_1_2_SETTINGS_PASCAL_INPUT.txt");
        string resultPath = Path.Combine(AppContext.BaseDirectory, "Test_1_2_SETTINGS_PASCAL_OUTPUT.txt");
        string input = File.ReadAllText(path);

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

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