private string Prepare(string code, string ns, string mainClass) { var gen = new JsonClassGenerator(); gen.Example = code; TextWriter txtStream = new StringWriter(); gen.OutputStream = txtStream; //gen.InternalVisibility = this.radInternal.Checked; gen.CodeWriter = new TypeScriptCodeWriter(); gen.Namespace = ns; //gen.NoHelperClass = this.chkNoHelper.Checked; //gen.SecondaryNamespace = this.radDifferentNamespace.Checked && !string.IsNullOrEmpty(this.edtSecondaryNamespace.Text) ? this.edtSecondaryNamespace.Text : null; //gen.TargetFolder = this.edtTargetFolder.Text; //gen.UseProperties = true; gen.MainClass = mainClass; //gen.UsePascalCase = false; gen.UseNestedClasses = true; //this.radNestedClasses.Checked; //gen.ApplyObfuscationAttributes = this.chkApplyObfuscationAttributes.Checked; gen.SingleFile = true; //this.chkSingleFile.Checked; //gen.ExamplesInDocumentation = true; gen.GenerateClasses(); return(txtStream.ToString()); }
void PasteJson(Clipboard c, string text) { if (string.IsNullOrEmpty(text)) { InsertCSharp(string.Empty); return; } var gen = new JsonClassGenerator { Example = text, MainClass = "RootObject", UseProperties = true, CodeWriter = new CSharpCodeWriter() }; try { using (var sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); var generatedString = sw.ToString(); InsertCSharp(generatedString); } } catch (Exception ex) { Console.WriteLine(ex.Message); MessageService.ShowWarning(string.Format("Invalid JSON: {0}", ex.Message)); } gen = null; }
// POST: api/Entity public IHttpActionResult Post([FromBody] Entity entity) { try { var classGenerator = new JsonClassGenerator(); classGenerator.MainClass = entity.Name; classGenerator.Example = entity.Json; var project = string.IsNullOrEmpty(entity.Project) ? "Global" : entity.Project; classGenerator.Namespace = project + "." + Config.Models; classGenerator.TargetFolder = Path.Combine(Config.ProjectRepository, project, Config.Models); Directory.CreateDirectory(classGenerator.TargetFolder); classGenerator.UseProperties = true; classGenerator.UsePascalCase = true; if (entity.EnableDB) { classGenerator.GenerateIdField = true; } var entities = classGenerator.GenerateClasses(); if (entity.EnableDB) { addDBContext(entity.Project, entities); } return(Ok("Entity created successfully")); } catch (Exception ex) { return(InternalServerError(ex)); } }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); string path1 = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_INPUT_1.txt"; string resultPath1 = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_OUTPUT_1.txt"; string input1 = File.ReadAllText(path1); string errorMessage1 = string.Empty; CSharpCodeWriter csharpCodeWriter1 = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator1 = new JsonClassGenerator(); jsonClassGenerator1.CodeWriter = csharpCodeWriter1; string returnVal1 = jsonClassGenerator1.GenerateClasses(input1, out errorMessage1).ToString(); string resultsCompare1 = File.ReadAllText(resultPath1); Assert.AreEqual(resultsCompare1.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal1.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
private static void GenerateBatch(BatchOptions o) { if (File.Exists(o.ConfigFile)) { var configJson = File.OpenText(o.ConfigFile).ReadToEnd(); var batch = JsonConvert.DeserializeObject <JsonClassGenConfig>(configJson); foreach (var config in batch.Classes) { var fi = new FileInfo(o.ConfigFile); config.Filename = fi.Directory.FullName + Path.DirectorySeparatorChar + config.Filename; if (File.Exists(config.Filename)) { var json = File.OpenText(config.Filename).ReadToEnd(); var info = new FileInfo(config.Filename); var targetFolder = info.Directory.FullName; JsonClassGenerator gen = new JsonClassGenerator() { Namespace = config.Namespace, Example = json, InternalVisibility = batch.Options.Internalvisibility, SingleFile = batch.Options.Singlefile, UsePascalCase = batch.Options.Pascal, UseProperties = batch.Options.Useproperties, TargetFolder = targetFolder, MainClass = config.Mainclass, UseNestedClasses = batch.Options.Nested }; Console.WriteLine("Generating: " + config.Namespace + "." + config.Mainclass); gen.GenerateClasses(); } } } }
public void Run2() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_11_NoListSetter_INPUT1.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_11_NoListSetter_OUTPUT1.txt"; string input = File.ReadAllText(path); CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator() { 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); }
public async Task <IActionResult> Get(Json2CSharpPostRequestDto vm) { try { var gen = new JsonClassGenerator(); gen.UsePascalCase = vm.UsePascalCase; gen.UseProperties = vm.UseProperties; gen.Example = vm.Example; gen.MainClass = "MyJsonObject"; gen.GenerateClasses(); var csharpCodeWriter = new CSharpCodeWriter(); var resultWriter = new StringWriter(); csharpCodeWriter.WriteFileStart(gen, resultWriter); foreach (var type in gen.Types) { csharpCodeWriter.WriteClass(gen, resultWriter, type); } csharpCodeWriter.WriteFileEnd(gen, resultWriter); return(Ok(new Json2CSharpPostResponseDto() { Result = resultWriter.ToString() })); } catch (Exception e) { return(BadRequest()); } }
public void Run() { Assert.Inconclusive(message: "This test is not yet implemented."); return; string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_8_LargeArrayOfObjects_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_8_LargeArrayOfObjects_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); Stopwatch watch = new Stopwatch(); watch.Start(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); watch.Stop(); var seconds = watch.ElapsedMilliseconds / 1000; Assert.IsTrue(false); string resultsCompare = File.ReadAllText(resultPath); //Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
private static string GenerateClassFromJsonArray(string arr) { using (var ms = new MemoryStream()) { using (var tw = new StreamWriter(ms)) { var hash = Math.Abs(arr.GetHashCode()); var mrj = new ModelRuntime(); mrj.ClassName = "Data" + hash; var gen = new JsonClassGenerator(); gen.Example = arr; gen.InternalVisibility = false; gen.CodeWriter = new CSharpCodeWriter(); gen.ExplicitDeserialization = false; gen.Namespace = null; gen.NoHelperClass = true; gen.SecondaryNamespace = null; gen.TargetFolder = null; gen.UseProperties = true; gen.MainClass = mrj.ClassName; gen.UsePascalCase = false; gen.UseNestedClasses = true; gen.ApplyObfuscationAttributes = false; gen.SingleFile = true; gen.ExamplesInDocumentation = false; gen.OutputStream = tw; gen.GenerateClasses(); } return(Encoding.ASCII.GetString(ms.ToArray())); } }
public static void Main(string[] args) { string pathToJson = args[0]; string pathToClass = args[1]; string namespaceName = args[2]; bool useNullableValues = false; if (args.Length > 3) { useNullableValues = bool.Parse(args[3]); } string json = File.ReadAllText(pathToJson); string folderPath = Path.GetDirectoryName(pathToClass); string className = Path.GetFileNameWithoutExtension(pathToClass); JsonClassGenerator generator = new JsonClassGenerator(); generator.Example = json; generator.TargetFolder = folderPath; generator.MainClass = className; generator.Namespace = namespaceName; generator.AlwaysUseNullableValues = useNullableValues; generator.SingleFile = true; // Set UseNestedClasses to false because it doesn't work... generator.UseNestedClasses = false; generator.UseProperties = true; generator.UsePascalCase = true; generator.GenerateClasses(); }
private void GenerateCSharp() { this.copyOutput.Enabled = false; String jsonText = this.jsonInputTextbox.Text; if (String.IsNullOrWhiteSpace(jsonText)) { this.csharpOutputTextbox.Text = String.Empty; return; } JsonClassGenerator generator = new JsonClassGenerator(); this.ConfigureGenerator(generator); try { StringBuilder sb = generator.GenerateClasses(jsonText, errorMessage: out String errorMessage); if (!String.IsNullOrWhiteSpace(errorMessage)) { this.csharpOutputTextbox.Text = "Error:\r\n" + errorMessage; } else { this.csharpOutputTextbox.Text = sb.ToString(); this.copyOutput.Enabled = true; } } catch (Exception ex) { this.csharpOutputTextbox.Text = "Error:\r\n" + ex.ToString(); } }
public string Build(string json, string rootClass) { var gen = new JsonClassGenerator(); gen.Example = json;//"{\"someprop\":\"HELLO\"}"; gen.InternalVisibility = false; gen.CodeWriter = new CSharpCodeWriter(); //gen.ExplicitDeserialization = && gen.CodeWriter is CSharpCodeWriter; gen.Namespace = "TEST"; gen.NoHelperClass = false; //gen.SecondaryNamespace = radDifferentNamespace.Checked && !string.IsNullOrEmpty(edtSecondaryNamespace.Text) ? edtSecondaryNamespace.Text : null; //gen.TargetFolder = edtTargetFolder.Text; gen.UseProperties = true; //radProperties.Checked; gen.MainClass = rootClass; //"DefaultClass";//edtMainClass.Text; gen.UsePascalCase = true; gen.UseNestedClasses = false; gen.ApplyObfuscationAttributes = false; gen.SingleFile = false; gen.TargetFolder = @"C:\Projects\Other\ARestedDevelopment\ARested.Tests\SampleFiles\Gen"; gen.ExamplesInDocumentation = false; var stream = new MemoryStream(); gen.OutputStream = new StreamWriter(stream, Encoding.UTF8); gen.GenerateClasses(); gen.OutputStream.Flush(); stream.Position = 0; TextReader reader = new StreamReader(stream); var text = reader.ReadToEnd(); return(text); }
public JsonResult OnPost() { APIRequest apiRequest = new APIRequest(); if (Request.Form.ContainsKey("UsePascalCase")) { var resultWriter = new StringWriter(); var csharpCodeWriter = new CSharpCodeWriter(); try { Json2CSharpPostRequestDto vm = new Json2CSharpPostRequestDto(); vm.UsePascalCase = bool.Parse(Request.Form["UsePascalCase"]); vm.UseProperties = bool.Parse(Request.Form["UseProperties"]); vm.EscapedDoubleQuote = bool.Parse(Request.Form["EscapedDoubleQuote"]); if (vm.EscapedDoubleQuote) { //Unescape double quote vm.Example = Request.Form["Example"].ToString().Replace("\\\"", "\""); } else { vm.Example = Request.Form["Example"]; } var gen = new JsonClassGenerator(); gen.UsePascalCase = vm.UsePascalCase; gen.UseProperties = vm.UseProperties; gen.Example = vm.Example; gen.MainClass = "MyJsonObject"; gen.GenerateClasses(); csharpCodeWriter.WriteFileStart(gen, resultWriter); foreach (var type in gen.Types) { csharpCodeWriter.WriteClass(gen, resultWriter, type); } csharpCodeWriter.WriteFileEnd(gen, resultWriter); apiRequest.status = 0; apiRequest.data = resultWriter.ToString(); } catch (Exception ex) { apiRequest.status = -1; apiRequest.debugmsg = ex.Message; } } else { //invalid request apiRequest.status = -1; apiRequest.message = "Invalid Request"; } return(new JsonResult(apiRequest)); }
public void GenerateClasses(string nameSpace) { try { var className = Name.SanitiseClassName(); var finalNamespace = nameSpace + "." + className + "Input"; var outputStream = new MemoryStream(); var outputWriter = new StreamWriter(outputStream); var jsg = new JsonClassGenerator { Example = Json, Namespace = finalNamespace, MainClass = className, OutputStream = outputWriter, NoHelperClass = true, UseProperties = true, GeneratePartialClasses = true }; jsg.GenerateClasses(); outputWriter.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var classDef = new StreamReader(outputStream) .ReadToEnd() .Replace("IList<", "List<"); classDef = classDef.Substring(classDef.IndexOf(String.Format("namespace {0}", nameSpace), StringComparison.Ordinal)); NamespacesToAdd.Add(finalNamespace); _generatedClass = new JsonTextGeneratedClass(this) { Namespace = finalNamespace, ClassName = className, ClassDefinition = classDef, Success = true }; } catch (Exception e) { _generatedClass = new JsonTextGeneratedClass(this) { Success = false, Error = e }; } }
public static bool Json2CSharp(string _jsonPath, string _csharpPath) { Encoding encoding = Encoding.UTF8; DirectoryInfo folder = new DirectoryInfo(_jsonPath); FileSystemInfo[] files = folder.GetFileSystemInfos(); int length = files.Length; for (int index = 0; index < length; index++) { if (files[index].Name.EndsWith(".json")) { string csName = files[index].Name; csName = csName.Substring(0, csName.LastIndexOf(".")); string csContent = ""; using (StreamReader textReader = new StreamReader(files[index].FullName, Encoding.UTF8)) { string str = textReader.ReadToEnd();//读取文件 csContent = str; textReader.Close(); } JsonClassGenerator gen = Prepare(csContent, _csharpPath, csName); if (gen == null) { return(false); } try { gen.GenerateClasses(); } catch (Exception ex) { Debug.Log("Unable to generate the code: " + ex.Message); return(false); } // //写入文件 // using (FileStream fileStream = new FileStream(_csharpPath + "/" + csName + ".cs", FileMode.Create, FileAccess.Write)) // { // using (TextWriter textWriter = new StreamWriter(fileStream, encoding)) // { // textWriter.Write(csContent); // } // } } } return(true); }
public void TestDoohickey() { var transformed = Transformer.GetMethodList(_data); string str = "/users/register/{search}"; var parameterList = str.Split('/') .Where(x => x.Contains("{") && x.Contains("}")) .Select(x => x.Replace("{", "").Replace("}", "")) .ToList(); var ctor = string.Join(", ", parameterList.Select(x => string.Format("string {0}", x))); var assign = parameterList.Select(x => string.Format("{0} = {1};", Helpers.NeatTitleCase(x), x)); var methods = parameterList.Select( x => string.Format("[JsonProperty(\"{2}\")]\r\npublic string {0} {{ {1} }}", Helpers.NeatTitleCase(x), "get; set;", x)); //str = string.Join("", str.Split('/').Select(x => x.Length > 0 ? x.Substring(0, 1).ToUpper() + x.Substring(1) : "")) + "Request"; var res = str.Split('/') .Where(x => x.Contains("{") && x.Contains("}")) .Select(x => x.Replace("{", "").Replace("}", "")) .ToList(); var item = Enum.GetName(typeof(HttpStatusCode), 200); foreach (var i in transformed) { foreach (var s in i.Responses) { var generator = new JsonClassGenerator(); using (var ms = new MemoryStream()) { using (var sw = new StreamWriter(ms)) { generator.OutputStream = sw; generator.Example = s.Json; generator.UsePascalCase = true; generator.UseProperties = true; generator.MainClass = "MyRequest"; generator.GenerateClasses(); sw.Flush(); ms.Position = 0; using (var sr = new StreamReader(ms)) { var result = sr.ReadToEnd(); } } } } } }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_5_BASIC_SCENARIO_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_5_BASIC_SCENARIO_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_2_CHECK_RESERVED_KEYWORDS_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_2_CHECK_RESERVED_KEYWORDS_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput()); }
static int Main(string[] args) { var parameters = new OptionSet { { "?|help", "display help information", help => _showHelp = !String.IsNullOrWhiteSpace(help) }, { "n|namespace=", "the namespace for the generated classes", n => _namespace = n }, { "c|class=", "the main class name", cn => _mainClassName = cn }, { "t|target=", "the target output folder", output => _targetFolder = output }, { "p|pascal", "use PascalCase", pc => _pascalCase = !string.IsNullOrWhiteSpace(pc) }, { "sf|single", "generate a single file", sf => _singleFile = !string.IsNullOrWhiteSpace(sf) }, { "i|input=", "input json file to process", json => _inputFilename = json } }; try { parameters.Parse(args); } catch (Exception) { ShowHelp(parameters); return(1); } if (_showHelp) { ShowHelp(parameters); return(0); } var jsonFile = File.ReadAllText(_inputFilename); var gen = new JsonClassGenerator { Namespace = _namespace, TargetFolder = _targetFolder, MainClass = _mainClassName, UsePascalCase = _pascalCase, SingleFile = _singleFile, Example = jsonFile }; using (var sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); } return(0); }
public void AddJsonAttribute() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_3_SETTINGS_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_3_SETTINGS_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; JavaCodeWriter javaCodeWriter = new JavaCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = javaCodeWriter; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_6_SETTINGS_JSONPROPERTYNAME_NETCORE_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_6_SETTINGS_JSONPROPERTYNAME_NETCORE_OUTPUT.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.UseJsonPropertyName = true; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
public void Run_2() { string path1 = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_INPUT_1.txt"; string resultPath1 = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_BracketError_OUTPUT_1.txt"; string input1 = File.ReadAllText(path1); CSharpCodeWriter csharpCodeWriter1 = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator1 = new JsonClassGenerator(); jsonClassGenerator1.CodeWriter = csharpCodeWriter1; string returnVal1 = jsonClassGenerator1.GenerateClasses(input1, out string errorMessage1).ToString(); string resultsCompare1 = File.ReadAllText(resultPath1); Assert.AreEqual(resultsCompare1.NormalizeOutput(), returnVal1.NormalizeOutput()); }
public void RunSetings() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_7_DuplictedClasses_INPUT1.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_7_DuplictedClasses_OUTPUT1.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.UsePascalCase = true; jsonClassGenerator.UseJsonAttributes = true; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", ""), returnVal.Replace(Environment.NewLine, "").Replace(" ", "").Replace("\t", "")); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_3_ReplaceSpecialCharacters_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_3_ReplaceSpecialCharacters_OUTPUT.txt"; string input = File.ReadAllText(path); CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.AttributeLibrary = JsonLibrary.NewtonsoftJson; string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput()); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_3_SETTINGS_FIELDS_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_3_SETTINGS_FIELDS_OUTPUT.txt"; string input = File.ReadAllText(path); CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.MutableClasses.Members = OutputMembers.AsPublicFields; string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput()); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_2_SETTINGS_PASCAL_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_2_SETTINGS_PASCAL_OUTPUT.txt"; string input = File.ReadAllText(path); CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.UsePascalCase = true; string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(expected: resultsCompare.NormalizeOutput(), actual: returnVal.NormalizeOutput()); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_JAVA_RESERVED_KEYWORDS_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_4_JAVA_RESERVED_KEYWORDS_OUTPUT.txt"; string input = File.ReadAllText(path); JavaCodeWriter javaCodeWriter = new JavaCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = javaCodeWriter; jsonClassGenerator.MutableClasses.Members = OutputMembers.AsPublicFields; 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, actual: errorMessage); }
public void Run2() { Assert.Inconclusive(message: "This test is not yet implemented."); return; string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_6_DictionaryTest_INPUT2.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_6_DictionaryTest_OUTPUT2.txt"; string input = File.ReadAllText(path); string errorMessage = string.Empty; CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; string returnVal = jsonClassGenerator.GenerateClasses(input, out errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput()); }
public void Run() { string path = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_6_SETTINGS_JSONPROPERTYNAME_NETCORE_INPUT.txt"; string resultPath = Directory.GetCurrentDirectory().Replace("bin\\Debug", "") + @"Test_1_6_SETTINGS_JSONPROPERTYNAME_NETCORE_OUTPUT.txt"; string input = File.ReadAllText(path); CSharpCodeWriter csharpCodeWriter = new CSharpCodeWriter(); JsonClassGenerator jsonClassGenerator = new JsonClassGenerator(); jsonClassGenerator.CodeWriter = csharpCodeWriter; jsonClassGenerator.AttributeLibrary = JsonLibrary.SystemTextJson; jsonClassGenerator.AttributeUsage = JsonPropertyAttributeUsage.Always; string returnVal = jsonClassGenerator.GenerateClasses(input, out string errorMessage).ToString(); string resultsCompare = File.ReadAllText(resultPath); Assert.AreEqual(resultsCompare.NormalizeOutput(), returnVal.NormalizeOutput()); }
public void TestGenerator() { var json = @"{""employees"": [ { ""firstName"":""John"" , ""lastName"":""Doe"" }, { ""firstName"":""Anna"" , ""lastName"":""Smith"" }, { ""firstName"": ""Peter"" , ""lastName"": ""Jones "" } ] }".Trim(); ICodeWriter writer = new CSharpCodeWriter(); var gen = new JsonClassGenerator(); gen.Example = json; gen.InternalVisibility = false; gen.CodeWriter = writer; gen.ExplicitDeserialization = false; gen.Namespace = "Demo"; gen.NoHelperClass = true; gen.SecondaryNamespace = null; gen.UseProperties = true; gen.UsePascalCase = true; gen.PropertyAttribute = "DataMember"; gen.UseNestedClasses = false; gen.ApplyObfuscationAttributes = false; gen.SingleFile = true; gen.ExamplesInDocumentation = false; gen.TargetFolder = null; gen.SingleFile = true; var result = ""; using (var sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); result = sw.ToString(); } Assert.NotEmpty(result); }