public void CallKnownMethodeOnItselfWithThis() { var tmpProject = new ProjectInformation(); var tmpClass1 = Create.AddClass("Class1"); tmpProject.FillClasses(new List <ClassContainer> { tmpClass1 }); var tmpMethodeName = "compareTo"; tmpClass1.AddMethode(tmpMethodeName, new TypeContainer { Name = "void" }); var tmpMethode = tmpClass1.MethodeList[0]; tmpMethode.Code = new CodeBlock(); var tmpMethodeCall = Create.CallMethode(new CodeBlock(), tmpMethodeName); var tmpVarAccess = new VariableAccess() { Access = new ConstantValue("this"), Child = tmpMethodeCall, }; tmpMethode.Code.CodeEntries.Add(tmpVarAccess); new AnalyzerCore().LinkProjectInformation(tmpProject); tmpMethode.Name = "Blah"; Assert.AreEqual(tmpMethode, tmpMethodeCall.MethodeLink); }
public void IfWithElse() { var tmpIniData = DataHelper.LoadIni(""); var tmpProject = new ProjectInformation(); var tmpClass = Create.AddClass("IAttribute"); tmpClass.ModifierList.Add("public"); tmpClass.ModifierList.Add("interface"); tmpProject.ClassList.Add(tmpClass); var tmpMethode = Create.AddMethode(tmpClass, "m1", TypeContainer.Void , new FieldContainer { Name = "in1", Type = new TypeContainer { Name = "int" } } , new FieldContainer { Name = "in2", Type = new TypeContainer { Name = "int" } }); tmpMethode.Code = new CodeBlock(); tmpMethode.Code.AddIfStatement( Create.CreateComparisionBlock("in1", VariableOperatorType.LessOrEquals, "in2"), Create.AddReturnStatement(new CodeBlock(), "true"), Create.AddReturnStatement(new CodeBlock(), "false")); new AnalyzerCore().LinkProjectInformation(tmpProject); var tmpResult = CSharpWriter.CreateClassesFromObjectInformation(tmpProject, new ConverterBase()).ToList(); var tmpExpectedResult = @" namespace { public interface IAttribute { void m1(int in1, int in2) { if(in1 <= in2) { return true; } else { return false; } } } } "; Assert.AreEqual(tmpExpectedResult, tmpResult[0].Content); }
public void InterfaceCheck() { var tmpProject = new ProjectInformation(); var tmpClass = Create.AddClass("IAttribute"); tmpClass.ModifierList.Add("public"); tmpClass.ModifierList.Add("interface"); tmpProject.ClassList.Add(tmpClass); new AnalyzerCore().LinkProjectInformation(tmpProject); var tmpObjectInformation = CSharpWriter.CreateClassesFromObjectInformation(tmpProject, new ConverterBase()).ToList(); Assert.AreEqual(1, tmpObjectInformation.Count); Assert.AreEqual(true, tmpObjectInformation[0].Content.Contains("public interface IAttribute")); }
public void PropertyGet() { var tmpProject = new ProjectInformation(); var tmpClass = Create.AddClass("v1"); var tmpMethode = tmpClass.AddMethode("Name", new TypeContainer("string")); tmpMethode.IsProperty = true; tmpProject.FillClasses(new System.Collections.Generic.List <ClassContainer> { tmpClass }); var tmpObjectInformation = CSharpWriter.CreateClassesFromObjectInformation(tmpProject, new ConverterBase()).ToList(); Assert.AreEqual(1, tmpObjectInformation.Count); Assert.AreEqual(true, tmpObjectInformation[0].Content.Contains("string Name{")); Assert.AreEqual(false, tmpObjectInformation[0].Content.Contains("string Name()")); }
public void WriteIntToMethodeParam() { var tmpProject = new ProjectInformation(); var tmpClass1 = Create.AddClass("Class1"); var tmpFieldName = "inStr"; tmpClass1.AddMethode("M1", new TypeContainer { Name = "void" }, Create.AddField(tmpClass1, tmpFieldName, new BaseType("string"))); var tmpMethode = tmpClass1.MethodeList[0]; tmpMethode.Code = new CodeBlock(); var tmpSet = Create.SetFieldValue(tmpMethode.Code, tmpClass1.MethodeList[0].Parameter[0], new ConstantValue { Value = "\"BBBB\"" }); new AnalyzerCore().LinkProjectInformation(tmpProject); Assert.AreEqual(tmpClass1.MethodeList[0].Parameter[0], (tmpSet.CodeEntries[0] as SetFieldWithValue).VariableToAccess.CodeEntries[0]); }
public void CheckInterface() { var tmpProject = new ProjectInformation(); var tmpClass1 = Create.AddClass("Class1"); tmpClass1.AddMethode("M1", new TypeContainer { Name = "void" }); var tmpMethode = tmpClass1.MethodeList[0]; tmpMethode.Code = new CodeBlock(); var tmpVar = Create.AddVariable(tmpMethode.Code, "tmpVar", new TypeContainer { Name = "string" }); Create.SetFieldValue(tmpMethode.Code, tmpVar.CodeEntries[0], new ConstantValue { Value = "\"BBBB\"" }); new AnalyzerCore().LinkProjectInformation(tmpProject); Assert.AreEqual("tmpVar", (tmpVar.CodeEntries[0] as VariableDeclaration).Name); }
public void InnerClassWithInterfaceWhoWasRenamed() { var tmpProject = new ProjectInformation(); var tmpClass = Create.AddClass("IAttribute"); tmpClass.ModifierList.Add("public"); tmpClass.ModifierList.Add("interface"); var tmpInnerClass = Create.AddClass("AttributeEmpty"); tmpInnerClass.ModifierList.Add("internal"); tmpInnerClass.ModifierList.Add("class"); tmpInnerClass.InterfaceList.Add("IAttribute"); tmpClass.InnerClasses.Add(tmpInnerClass); tmpProject.FillClasses(new List<ClassContainer> { tmpClass }); new AnalyzerCore().LinkProjectInformation(tmpProject); tmpClass.Type.Type.Name = "ISpezialAttribute"; var tmpObjectInformation = CSharpWriter.CreateClassesFromObjectInformation(tmpProject, new ConverterBase()).ToList(); Assert.AreEqual(1, tmpObjectInformation.Count); Assert.AreEqual(true, tmpObjectInformation[0].Content.Contains("public interface ISpezialAttribute")); Assert.AreEqual(true, tmpObjectInformation[0].Content.Contains("internal class AttributeEmpty : ISpezialAttribute")); }
public void CallKnownMethodeOnItself() { var tmpProject = new ProjectInformation(); var tmpClass1 = Create.AddClass("Class1"); tmpProject.FillClasses(new List <ClassContainer> { tmpClass1 }); var tmpMethodeName = "inStr"; tmpClass1.AddMethode(tmpMethodeName, new TypeContainer { Name = "void" }); var tmpMethode = tmpClass1.MethodeList[0]; tmpMethode.Code = new CodeBlock(); var tmpMethodeCall = Create.CallMethode(tmpMethode.Code, tmpMethodeName); new AnalyzerCore().LinkProjectInformation(tmpProject); Assert.AreEqual(tmpMethode, tmpMethodeCall.MethodeLink); }
public void PropertysThis_FullName_ToLower() { var tmpProject = new ProjectInformation(); var tmpClassString = Create.AddClass("String"); var tmpGetFullName = "getFullName"; var tmpFullNameMethode = tmpClassString.AddMethode(tmpGetFullName, new TypeContainer { Name = "String" }); var tmpClass1 = Create.AddClass("Class1"); var tmpMethodeName = "getChildResources"; tmpClass1.AddMethode(tmpMethodeName, new TypeContainer { Name = "void" }); var tmpMethode = tmpClass1.MethodeList[0]; Create.AddField(tmpClass1, "Text", new BaseType("String")); tmpMethode.Code = new CodeBlock(); var tmpReturn = new ReturnCodeEntry { CodeEntries = new List <CodeConverterCore.Interface.ICodeEntry> { new VariableAccess { Access = new VariableAccess { Child = new VariableAccess { Access = new ConstantValue { Value = "Text", } }, Access = new ConstantValue { Value = "this" } }, Child = new VariableAccess { Access = new MethodeCall { Name = tmpGetFullName } } } } }; tmpMethode.Code.CodeEntries.Add(tmpReturn); var tmpText = tmpReturn.ToString(); Assert.AreEqual("return this Text getFullName () ", tmpText); tmpProject.FillClasses(new List <ClassContainer> { tmpClass1, tmpClassString }); new AnalyzerCore().LinkProjectInformation(tmpProject); tmpFullNameMethode.IsProperty = true; tmpFullNameMethode.Name = "FullName"; Assert.AreEqual(tmpFullNameMethode.Name, (((tmpReturn.CodeEntries[0] as VariableAccess).Child as VariableAccess).Access as MethodeCall).Name); }