Exemple #1
0
        public void HasInputFiltersTest()
        {
            WeaveMethod target = new WeaveMethod();

            bool val = false; // TODO: Assign to an appropriate value for the property


            Assert.AreEqual(val, target.HasInputFilters, "Composestar.StarLight.Entities.WeaveSpec.WeaveMethod.HasInputFilters was not set " +
                            "correctly.");
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #2
0
        public void SignatureTest()
        {
            WeaveMethod target = new WeaveMethod();

            string val = null; // TODO: Assign to an appropriate value for the property

            target.Signature = val;


            Assert.AreEqual(val, target.Signature, "Composestar.StarLight.Entities.WeaveSpec.WeaveMethod.Signature was not set correc" +
                            "tly.");
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #3
0
        public void CallsTest()
        {
            WeaveMethod target = new WeaveMethod();

            System.Collections.Generic.List <Composestar.StarLight.Entities.WeaveSpec.WeaveCall> val = null; // TODO: Assign to an appropriate value for the property

            target.Calls = val;


            Assert.AreEqual(val, target.Calls, "Composestar.StarLight.Entities.WeaveSpec.WeaveMethod.Calls was not set correctly." +
                            "");
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #4
0
        public void InputFilterTest()
        {
            WeaveMethod target = new WeaveMethod();

            InlineInstruction val = null; // TODO: Assign to an appropriate value for the property

            target.InputFilter = val;


            Assert.AreEqual(val, target.InputFilter, "Composestar.StarLight.Entities.WeaveSpec.WeaveMethod.InputFilter was not set corr" +
                            "ectly.");
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #5
0
        public static void SetInnerCall(ICecilInliningInstructionVisitor visitor, MethodReference method)
        {
            MethodDefinition methodDef = CecilUtilities.ResolveMethod(
                visitor.Method.DeclaringType, method.Name, method);

            // Get the weaveMethod to which the innercall is directed
            WeaveMethod weaveMethod = visitor.WeaveType.GetMethod(methodDef.ToString());

            //if(weaveMethod == null)
            //{
            //    // if using MethodReference failed, try using the MethodDefinition (in some cases the ToString
            //    // leads to different signatures).
            //    MethodDefinition methodDef = CecilUtilities.ResolveMethodDefinition(method);
            //    if(methodDef != null)
            //    {
            //        weaveMethod = visitor.WeaveType.GetMethod(method.ToString());
            //    }

            if (weaveMethod == null)
            {
                // If weave method could not be found, this means that the method
                // does not have filters woven and so no inner call context needs
                // to be set.

                return;
            }
            //}

            // Load the this parameter
            if (!visitor.Method.HasThis || visitor.Method.DeclaringType.IsValueType)
            {
                visitor.Instructions.Add(visitor.Worker.Create(OpCodes.Ldnull));
            }
            else
            {
                visitor.Instructions.Add(visitor.Worker.Create(OpCodes.Ldarg, visitor.Method.This));
            }

            // Load the methodId
            visitor.Instructions.Add(visitor.Worker.Create(OpCodes.Ldc_I4, weaveMethod.Id));

            // Call the SetInnerCall
            visitor.Instructions.Add(visitor.Worker.Create(OpCodes.Call, CecilUtilities.CreateMethodReference(visitor.TargetAssemblyDefinition, CachedMethodDefinition.SetInnerCall)));
        }