Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 4
0
        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"));
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }