public void TypeNameWithoutGenericTypes() { var tp = new TypeName("Int32"); Assert.AreEqual("Int32", SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, tp)); Assert.AreEqual("Int32", SourceCodeGenerator.Write(SourceCodeLanguage.VB, tp)); }
public string Build() { var objectsCodeStringBuilder = new StringBuilder(); var schemaTuples = new List <SchemaInfoTuple>(); foreach (var keyValue in _jsonSchemaDictionary) { JSchema jsonSchema = JSchema.Parse(keyValue.Value); schemaTuples.Add(new SchemaInfoTuple(jsonSchema, keyValue.Key)); } var schemaGenerator = new SourceCodeGenerator <CSharpObjectDefinition>(schemaTuples); objectsCodeStringBuilder.AppendLine(schemaGenerator.Generate()); var sourceCode = $@" using System; using System.Collections.Generic; using System.Text; namespace Theia {{ {objectsCodeStringBuilder} }} "; return(sourceCode); }
public void InterfaceMethodBasicFeature() { var md = new InterfaceMethod("GetNumber"); Assert.AreEqual("void GetNumber();" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
protected override void RunStartedCore(Dictionary <string, string> replacementsDictionary) { ContextDiscovery discovery = new ContextDiscovery(_dte); discovery.DiscoverCore(out ProjectItemOrProject projectItemorProject); SourceText text = SourceCodeGenerator.GenerateXamlPropertyRuleSourceText(RootName); string codeBehindText = XamlPropertyRuleGenerator.GenerateCodeBehindContent(RootName, RootNamespace); string filePath = null; string codeBehindPath = null; if (projectItemorProject.IsProject) { string directory = Path.GetDirectoryName(projectItemorProject.Project.FullName); filePath = Path.Combine(directory, $"{RootName}.xaml"); codeBehindPath = Path.Combine(directory, $"{RootName}.xaml.cs"); } else { filePath = Path.Combine(projectItemorProject.ProjectItem.FileNames[0], $"{RootName}.xaml"); codeBehindPath = Path.Combine(projectItemorProject.ProjectItem.FileNames[0], $"{RootName}.xaml.cs"); } File.WriteAllText(codeBehindPath, codeBehindText); File.WriteAllText(filePath, text.ToString(), Encoding.ASCII); ProjectItem projectItem = projectItemorProject.ProjectItem.ProjectItems.AddFromFile(filePath); SetXamlPropertyRuleBuildProperties(projectItem); }
public void PropertySetModifierPrivate() { var p = new Property("Int32", "Age"); p.Get.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); p.Set.Modifier = AccessModifier.Private; p.Set.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "_Age = value;")); var sw = new StringWriter(); var cs = new CSharpSourceCodeGenerator(sw); cs.Write(p); Assert.AreEqual("public Int32 Age" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " private set" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " _Age = value;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, p)); }
public void InterfacePropertyGetFeature() { var p = new InterfaceProperty(new TypeName("String"), "DisplayName", true, false); Assert.AreEqual("String DisplayName { get; }" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, p)); }
public void CodeBlockBasicFeature() { var cb = new CodeBlock(SourceCodeLanguage.CSharp, "Int32 x = 12;"); Assert.AreEqual("Int32 x = 12;" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, cb)); }
protected override void RunStartedCore(Dictionary <string, string> replacementsDictionary) { string name = replacementsDictionary["$rootname$"]; string rootnamespace = replacementsDictionary["$rootnamespace$"]; ContextDiscovery discovery = new ContextDiscovery(_dte); discovery.DiscoverCore(out ProjectItemOrProject projectItemorProject); CodeAnalysis.Text.SourceText text = SourceCodeGenerator.GenerateAsyncCommandGroupHandlerSourceText(rootnamespace, name); string filePath = null; if (projectItemorProject.IsProject) { filePath = Path.Combine(Path.GetDirectoryName(projectItemorProject.Project.FullName), $"{name}.cs"); } else { filePath = Path.Combine(projectItemorProject.ProjectItem.FileNames[0], $"{name}.cs"); } File.WriteAllText(filePath, text.ToString(), Encoding.ASCII); ProjectItem projectItem = projectItemorProject.ProjectItem.ProjectItems.AddFromFile(filePath); Service.Open(projectItem); }
public void GeneratedSourceCodeBeginsWithPrefix() { const string prefix = "testPrefix"; ISourceCodeGenerator sourceCodeGenerator = new SourceCodeGenerator(prefix); string sourceCode = sourceCodeGenerator.GenerateSourceCode(); Assert.That(sourceCode.StartsWith(prefix)); }
public void TestAutomaticProperty() { var p = new PropertyBody(PropertyBodyType.Get); p.IsAutomaticProperty = true; Assert.AreEqual("get;" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, p)); }
public void TypeNameWithGenericTypes() { var tp = new TypeName("Func"); tp.GenericTypes.Add(new TypeName("String")); tp.GenericTypes.Add(new TypeName("Int32")); Assert.AreEqual("Func<String, Int32>", SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, tp)); Assert.AreEqual("Func(Of String, Int32)", SourceCodeGenerator.Write(SourceCodeLanguage.VB, tp)); }
public void FieldBasic1() { var f = new Field("String", "_name") { Initializer = "\"Default Name\"" }; Assert.AreEqual("private String _name = \"Default Name\";" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, f)); }
public void GeneratedSourceCodeLengthIsLengthOfPrefixPlusSourceCodeLength() { const string prefix = "testPrefix"; int length = prefix.Length + SourceCodeGenerator.DEFAULT_SOURCE_CODE_LENGTH; ISourceCodeGenerator sourceCodeGenerator = new SourceCodeGenerator(prefix); string sourceCode = sourceCodeGenerator.GenerateSourceCode(); Assert.AreEqual(length, sourceCode.Length); }
public void InterfaceMethodParameters() { var md = new InterfaceMethod("GetDisplayName"); md.Parameters.Add(new MethodParameter("String", "name")); md.Parameters.Add(new MethodParameter("Int32", "age")); Assert.AreEqual("void GetDisplayName(String name, Int32 age);" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void ClassInheritance() { var c = new Class(AccessModifier.Public, "Person"); c.BaseClass = new TypeName("PersonBase"); Assert.AreEqual("public class Person : PersonBase" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, c)); }
public void ConstructorBasicFeature() { var md = new Constructor(AccessModifier.Public, "BigNumber"); md.Body.Add(SourceCodeLanguage.CSharp, "this.Value = 123;"); Assert.AreEqual("public BigNumber()" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + SourceCodeGenerator.Default.Indent + "this.Value = 123;" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine, SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
/// <summary> /// Metoda folosita pentru generarea codului sursa. /// </summary> /// <returns></returns> private async Task ExecutaAplicatie() { if (string.IsNullOrEmpty(InputString)) { MessageBox.Show("Trebuie trimit un input pentru a putea executa programul!"); return; } SourceCodeGenerator.RuleazaAplicatie(Path.GetFileNameWithoutExtension(_fileName) + ".exe", InputString); await Task.Delay(1); }
public void ClassModifierStaticAbstractPriority() { var c = new Class(AccessModifier.Public, "StringUtility"); c.Modifier.Static = true; c.Modifier.Abstract = true; Assert.AreEqual("public static class StringUtility" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, c)); }
public CStyleIndentationContext(SourceCodeGenerator generator, BraceLanguageStyleIndentationOptions options) { this.generator = generator; this.options = options; if ((options & BraceLanguageStyleIndentationOptions.IncludeBraces) != 0) { generator.WriteLine("{"); } this.generator.CurrentIndent++; }
public void MethodBasicFeature() { var md = new Method(MethodAccessModifier.Public, "GetNumber"); md.Body.Add(SourceCodeLanguage.CSharp, "return 123;"); Assert.AreEqual("public void GetNumber()" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + SourceCodeGenerator.Default.Indent + "return 123;" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void InterfaceMethodPartialFeature() { var md = new InterfaceMethod("GetNumber"); //These will be ignored md.Parameters.Add(new MethodParameter("Int32", "number")); md.GenericParameters.Add("T"); md.ReturnTypeName = new TypeName("Int32"); Assert.AreEqual("Int32 GetNumber<T>(Int32 number);" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void ClassInheritanceAndImplement() { var c = new Class(AccessModifier.Public, "Person"); c.BaseClass = new TypeName("PersonBase"); c.ImplementInterfaces.Add(new TypeName("IDisposable")); c.ImplementInterfaces.Add(new TypeName("IEnumerable")); Assert.AreEqual("public class Person : PersonBase, IDisposable, IEnumerable" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, c)); }
public void MethodPartialFeature() { var md = new Method(MethodAccessModifier.Partial, "GetNumber"); //These will be ignored md.Parameters.Add(new MethodParameter("Int32", "number")); md.GenericParameters.Add("T"); md.ReturnTypeName = new TypeName("void"); md.Body.Add(SourceCodeLanguage.CSharp, "return 123;"); Assert.AreEqual("partial void GetNumber<T>(Int32 number);" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void ConstructorParameters() { var md = new Constructor(AccessModifier.Public, "Person"); md.Parameters.Add(new MethodParameter("String", "name")); md.Parameters.Add(new MethodParameter("Int32", "age")); md.Body.Add(SourceCodeLanguage.CSharp, "this.DisplayName = name + \":\" + age.ToString();"); Assert.AreEqual("public Person(String name, Int32 age)" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + SourceCodeGenerator.Default.Indent + "this.DisplayName = name + \":\" + age.ToString();" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine, SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void CodeBlockForStatement() { var cb = new CodeBlock(SourceCodeLanguage.CSharp, "for (int i = 0; i < length; i++)"); cb.CurlyBracket = true; cb.CodeBlocks.Add(new CodeBlock(SourceCodeLanguage.CSharp, "x = x + 1;")); Assert.AreEqual("for (int i = 0; i < length; i++)" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " x = x + 1;" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, cb)); }
public void CodeBlockIfStatement() { var cb = new CodeBlock(SourceCodeLanguage.CSharp, "if (bl == true)"); cb.CurlyBracket = true; cb.CodeBlocks.Add(new CodeBlock(SourceCodeLanguage.CSharp, "MessageBox.Show(\"Update successfully!\");")); Assert.AreEqual("if (bl == true)" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " MessageBox.Show(\"Update successfully!\");" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, cb)); }
public void MethodParameters() { var md = new Method(MethodAccessModifier.Public, "GetDisplayName"); md.Parameters.Add(new MethodParameter("String", "name")); md.Parameters.Add(new MethodParameter("Int32", "age")); md.Body.Add(SourceCodeLanguage.CSharp, "return name + \":\" + age.ToString();"); Assert.AreEqual("public void GetDisplayName(String name, Int32 age)" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + SourceCodeGenerator.Default.Indent + "return name + \":\" + age.ToString();" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, md)); }
public void TypeNameWithNestedGenericTypes() { var tp = new TypeName("Func"); tp.GenericTypes.Add(new TypeName("String")); var tp1 = new TypeName("Action"); tp1.GenericTypes.Add(new TypeName("String")); tp1.GenericTypes.Add(new TypeName("Int32")); tp.GenericTypes.Add(tp1); Assert.AreEqual("Func<String, Action<String, Int32>>", SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, tp)); Assert.AreEqual("Func(Of String, Action(Of String, Int32))", SourceCodeGenerator.Write(SourceCodeLanguage.VB, tp)); }
public void SourceCodeBasicFeature() { var sc = new SourceCode(); sc.UsingNamespaces.Add("System"); sc.UsingNamespaces.Add("System.Collection"); sc.UsingNamespaces.Add("System.Data"); sc.UsingNamespaces.Add("System.IO"); Assert.AreEqual("using System;" + SourceCodeGenerator.NewLine + "using System.Collection;" + SourceCodeGenerator.NewLine + "using System.Data;" + SourceCodeGenerator.NewLine + "using System.IO;" + SourceCodeGenerator.NewLine + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, sc)); }
public void PropertyGetOnly() { var p = new Property("Int32", "Age"); p.Get.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); p.Set = null; Assert.AreEqual("public Int32 Age" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, p)); }
public void ClassLineBreakFeature() { var c = new Class(AccessModifier.Public, "Person"); var md = new Method(MethodAccessModifier.Public, "GetNumber"); md.Body.Add(SourceCodeLanguage.CSharp, "return 123;"); c.Methods.Add(md); Assert.AreEqual("public class Person" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " public void GetNumber()" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return 123;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, c)); }