Пример #1
0
        private Constructor(Constructor iiToCopyFrom)
            : base(null)
        {
            iiToCopyFrom.CloneInto(this);

            InitializerType = iiToCopyFrom.InitializerType;
            InitializerArguments = new List<string>(iiToCopyFrom.InitializerArguments);
            Modifiers = new List<string>(iiToCopyFrom.Modifiers);
            CloneParameters(iiToCopyFrom);
        }
        public void Constructor()
        {
            Constructor con = new Constructor(controller, "Class1");
            con.Parameters.Add(new Parameter(controller, "int", "i"));
            con.Parameters.Add(new Parameter(controller, "string", "j"));
            Assert.That(con.FullyQualifiedDisplayName, Is.EqualTo("Class1 (int, string)"));

            Class cl = new Class(controller, "Class1");
            cl.AddChild(con);

            Assert.That(con.FullyQualifiedDisplayName, Is.EqualTo("Class1.Class1 (int, string)"));
        }
        public void Constructor()
        {
            Constructor inter = new Constructor(controller);
            inter.Modifiers.Add("public");
            inter.Name = "Class1";
            Parameter param = new Parameter(controller);
            param.Name = "i";
            param.DataType = "int";
            inter.Parameters.Add(param);

            Assert.That(inter.IsTheSame(inter.Clone(), ComparisonDepth.Outer), Is.True);
        }
        public void Constructor_Renamed_Parameter()
        {
            const string className = "MyClassName1";
            const string parameterName1 = "MyParameterName1";
            const string parameterName2 = "MyParameterName2";
            string expectedResult = String.Format("{0} {1}({2} {3})", Modifier1, className, DataType1, parameterName2);

            Constructor merged1 = new Constructor(controller);
            Constructor merged2 = new Constructor(controller);
            Constructor merged3 = new Constructor(controller);

            Constructor changing = new Constructor(controller, className);
            changing.Parameters.Add(new Parameter(controller, DataType1, parameterName2));
            changing.Modifiers.Add(Modifier1);
            Constructor unchanging = new Constructor(controller, className);
            unchanging.Parameters.Add(new Parameter(controller, DataType1, parameterName1));
            unchanging.Modifiers.Add(Modifier1);

            Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult);
        }
        public void Constructor_Added_Initialiser()
        {
            const string className = "MyClassName1";
            const string initName = "MyInitializerName1";
            const string initArgs1 = "MyInitializerArgs1";
            const string initArgs2 = "MyInitializerArgs2";
            string expectedResult = String.Format("{0}() : {1}({2}, {3})\n{{ }}".Replace("\n",Environment.NewLine), className, initName, initArgs1, initArgs2);

            Constructor merged1 = new Constructor(controller);
            Constructor merged2 = new Constructor(controller);
            Constructor merged3 = new Constructor(controller);

            Constructor changing = new Constructor(controller, className);
            changing.InitializerType = initName;
            changing.InitializerArguments.Add(initArgs1);
            changing.InitializerArguments.Add(initArgs2);
            Constructor unchanging = new Constructor(controller, className);

            Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult);
        }
Пример #6
0
        private bool IsTheSame(Constructor comparisonConstructor, ComparisonDepth depth)
        {
            if (comparisonConstructor == null)
                return false;

            if (Name == comparisonConstructor.Name)
            {
                if (ParametersAreTheSame(comparisonConstructor, depth) == false) return false;

                // Function names are the same, so now compare the class names
                if (depth == ComparisonDepth.Signature)
                {
                    return true;
                }

                if (!base.IsTheSame(comparisonConstructor, depth))
                {
                    return false;
                }

                if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonConstructor.Modifiers))
                {
                    ComparisonDifference += GetType().Name + ".Modifiers";
                    return false;
                }

                if (depth == ComparisonDepth.Outer)
                {
                    return true;
                }

                if (BodyText != comparisonConstructor.BodyText)
                {
                    ComparisonDifference += GetType().Name + ".Body";
                    return false;
                }

                if (!ParentObject.IsTheSame(comparisonConstructor.ParentObject))
                {
                    ComparisonDifference += GetType().Name + ".Parent";
                    return false;
                }

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Attributes.ToArray(), comparisonConstructor.Attributes.ToArray()))
                {
                    ComparisonDifference += GetType().Name + ".Attributes";
                    return false;
                }

                return true;
            }
            return false;
        }
Пример #7
0
 private bool IsTheSame(Constructor comparisonConstructor)
 {
     return IsTheSame(comparisonConstructor, ComparisonDepth.Signature);
 }
Пример #8
0
 public VBConstructorPrinter(Constructor obj)
 {
     this.obj = obj;
 }
Пример #9
0
        private void Process_Constructor_Declaration(ConstructorDeclaration node)
        {
            if (node == null) throw new ArgumentNullException("node");

            Constructor constructor = new Constructor(controller);
            constructor.Name = "New";// VB.Net constructors are always named 'New' // node.Name.Text;
            constructor.Modifiers.AddRange(FormatterUtility.GetModifiersFromEnum(node.Modifiers));

            foreach (IAstNode param in node.Parameters)
            {
                Parameter p = GetParameterFromParameterDeclaration(document, controller, param as ParameterDeclaration);
                constructor.Parameters.Add(p);
                p.ParentObject = constructor;
            }

            ProcessBodyText(node, constructor, node.Statements, node.Comments);

            SetupBaseConstruct(node, constructor);
        }
        public void Constructor()
        {
            Constructor constructor = new Constructor(controller);
            constructor.Modifiers.Add("public");
            constructor.Name = "Class1";
            constructor.BodyText = "{ }";
            Parameter param = new Parameter(controller);
            param.Name = "i";
            param.DataType = "int";
            constructor.Parameters.Add(param);

            CodeRoot root = CreateClassAndNamespace(constructor);

            CodeRootMap map = new CodeRootMap();
            map.AddCodeRoot(root, Version.User);
            map.AddCodeRoot(root, Version.NewGen);
            map.AddCodeRoot(root, Version.PrevGen);

            string result = map.GetMergedCodeRoot().ToString();
            Assert.That(result, Is.EqualTo(root.ToString()));
            Assertions.StringContains(result, "class Class1");
            Assertions.StringContains(result, "[Serializable(true)]");
            Assertions.StringContains(result, "namespace ArchAngel.Tests");
            Assertions.StringContains(result, "public Class1");
            Assertions.StringContains(result, "{ }");
        }