65 lines
2.4 KiB
C#

using Json2CSharpCodeGenerator.Lib;
using Json2CSharpCodeGenerator.Lib.CodeWriters;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Json2CSharpCodeGenerator.Tests;
[TestClass]
public class Test_11_NoListSetter
{
[TestMethod]
public void Run()
{
string path = Path.Combine(AppContext.BaseDirectory, "Test_11_NoListSetter_INPUT.txt");
string resultPath = Path.Combine(AppContext.BaseDirectory, "Test_11_NoListSetter_OUTPUT.txt");
string input = File.ReadAllText(path);
CSharpCodeWriter csharpCodeWriter = new();
JsonClassGenerator jsonClassGenerator = new()
{
MutableClasses =
{
ReadOnlyCollectionProperties = true
},
AttributeLibrary = JsonLibrary.SystemTextJson,
AttributeUsage = JsonPropertyAttributeUsage.Always,
UsePascalCase = true
};
jsonClassGenerator.CodeWriter = csharpCodeWriter;
string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString();
string resultsCompare = File.ReadAllText(resultPath);
Assert.AreEqual(expected: resultsCompare.NormalizeOutput(), actual: returnVal.NormalizeOutput());
Assert.AreEqual(expected: string.Empty, errorMessage);
}
[TestMethod]
public void Run2()
{
string path = Path.Combine(AppContext.BaseDirectory, "Test_11_NoListSetter_INPUT1.txt");
string resultPath = Path.Combine(AppContext.BaseDirectory, "Test_11_NoListSetter_OUTPUT1.txt");
string input = File.ReadAllText(path);
CSharpCodeWriter csharpCodeWriter = new();
JsonClassGenerator jsonClassGenerator = new()
{
MutableClasses =
{
ReadOnlyCollectionProperties = true
},
CollectionType = OutputCollectionType.Array,
AttributeLibrary = JsonLibrary.SystemTextJson,
AttributeUsage = JsonPropertyAttributeUsage.Always,
UsePascalCase = true
};
jsonClassGenerator.CodeWriter = csharpCodeWriter;
string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString();
string resultsCompare = File.ReadAllText(resultPath);
Assert.AreEqual(expected: resultsCompare.NormalizeOutput(), actual: returnVal.NormalizeOutput());
Assert.AreEqual(string.Empty, errorMessage);
}
}