public override void Init(object instance, MethodBase method, object[] args)
 {
     if (null == method)
     {
         throw new ArgumentNullException("method");
     }
     TestRecords.RecordInit(instance, method.DeclaringType.FullName + "." + method.Name, args.Length);
 }
        public void ConditionallyThrowingInvalidOperationException(bool shouldThrow)
        {
            TestRecords.RecordBody("VoidMethodConditionallyThrowingInvalidOperationException", "enter");
            if (shouldThrow)
            {
                throw new InvalidOperationException("Ooops");
            }

            TestRecords.RecordBody("VoidMethodConditionallyThrowingInvalidOperationException", "not throw");
        }
 public void MultipleReturnValuesButEndingWithThrow(int returnAt)
 {
     TestRecords.RecordBody("MultipleReturnValuesButEndingWithThrow", "0");
     if (returnAt == 1)
     {
         return;
     }
     TestRecords.RecordBody("MultipleReturnValuesButEndingWithThrow", "1");
     if (returnAt == 2)
     {
         return;
     }
     TestRecords.RecordBody("MultipleReturnValuesButEndingWithThrow", "2");
     throw new InvalidOperationException("Ooops");
 }
예제 #4
0
        public void Init(object instance, MethodBase method, object[] args)
        {
            if (null == method)
            {
                throw new ArgumentNullException("method");
            }
            if (null == instance)
            {
                throw new ArgumentNullException("instance");
            }
            var methodDeclaration = method.DeclaringType.Name
                                    + "." + method.Name
                                    + "(" + string.Join(", ", args.Select(a => a.GetType().Name)) + ")";

            TestRecords.RecordInit(instance, methodDeclaration, args.Length);
        }
예제 #5
0
        public int MultipleReturns(int input)
        {
            TestRecords.RecordBody("MultipleReturns", "0");

            if (input == 1)
            {
                return(7);
            }

            TestRecords.RecordBody("MultipleReturns", "1");

            if (input == 2)
            {
                return(14);
            }

            TestRecords.RecordBody("MultipleReturns", "2");

            return(input == 3 ? 21 : 28);
        }
예제 #6
0
        public int MultipleReturnValuesButWithEmbeddedThrow(int returnAt)
        {
            TestRecords.RecordBody("MultipleReturnValuesButWithEmbeddedThrow", "0");

            if (returnAt == 1)
            {
                return(42);
            }

            TestRecords.RecordBody("MultipleReturnValuesButWithEmbeddedThrow", "1");

            if (returnAt == 2)
            {
                throw new InvalidOperationException("Ooops");
            }

            TestRecords.RecordBody("MultipleReturnValuesButWithEmbeddedThrow", "2");
            TestRecords.RecordBody("MultipleReturnValuesButWithEmbeddedThrow", "2");

            return(164);
        }
 public void WithMultipleReturns(int returnAt)
 {
     // This is compiled such that each return statement essentially becomes
     // a branch to the very last ret statement
     TestRecords.RecordBody("VoidMethodWithMultipleReturns", "0");
     if (returnAt == 1)
     {
         return;
     }
     TestRecords.RecordBody("VoidMethodWithMultipleReturns", "1");
     if (returnAt == 2)
     {
         return;
     }
     TestRecords.RecordBody("VoidMethodWithMultipleReturns", "2");
     if (returnAt == 3)
     {
         return;
     }
     TestRecords.RecordBody("VoidMethodWithMultipleReturns", "3");
 }
        public void WithMultipleReturnsAndExceptions(int actAt, bool shouldThrow)
        {
            TestRecords.RecordBody("WithMultipleReturnsAndExceptions", "0");

            if (actAt == 1)
            {
                if (shouldThrow)
                {
                    throw new InvalidOperationException("Throwing at 1");
                }
                return;
            }

            TestRecords.RecordBody("WithMultipleReturnsAndExceptions", "1");

            if (actAt == 2)
            {
                if (shouldThrow)
                {
                    throw new InvalidOperationException("Throwing at 2");
                }
                return;
            }

            TestRecords.RecordBody("WithMultipleReturnsAndExceptions", "2");

            if (actAt == 3)
            {
                if (shouldThrow)
                {
                    throw new InvalidOperationException("Throwing at 3");
                }
                return;
            }

            TestRecords.RecordBody("WithMultipleReturnsAndExceptions", "3");
        }
예제 #9
0
 public string ReturnsString()
 {
     TestRecords.RecordBody("ReturnsString");
     return("hello world");
 }
 public void ThrowingInvalidOperationException()
 {
     TestRecords.RecordBody("VoidMethodThrowingInvalidOperationException");
     throw new InvalidOperationException("Ooops");
 }
예제 #11
0
 public int ReturnsNumber()
 {
     TestRecords.RecordBody("ReturnsNumber");
     return(42);
 }
예제 #12
0
 public void ExternalInterceptorDecorated()
 {
     TestRecords.RecordBody("ExternalInterceptorDecorated");
 }
 public void TaskContinuation(Task task)
 {
     TestRecords.RecordOnContinuation();
 }
예제 #14
0
 public override void PublicVirtualMethodNotDecorated()
 {
     TestRecords.RecordBody("PublicOverridedVirtualMethodNotDecorated");
 }
예제 #15
0
 public void ExternalInterceptorAssemblyLevelDecorated()
 {
     TestRecords.RecordBody("ExternalInterceptorAssemblyLevelDecorated");
 }
예제 #16
0
 public String PublicNewMethodNotDecorated()
 {
     TestRecords.RecordBody("PublicNewMethodNotDecorated");
     return("returns PublicNewMethodNotDecorated");
 }
 public void CanLogInitEntryAndException()
 {
     TestRecords.RecordBody("CanLogInitEntryAndException");
     throw new ApplicationException("boo!");
 }
 public override void OnExit()
 {
     TestRecords.RecordOnExit();
 }
예제 #19
0
 public void OnExit()
 {
     TestRecords.RecordOnExit();
 }
예제 #20
0
 protected virtual void ProtectedVirtualMethodNotDecorated()
 {
     TestRecords.RecordBody("ProtectedVirtualMethodNotDecorated");
 }
예제 #21
0
 public virtual void PublicVirtualMethodNotDecorated()
 {
     TestRecords.RecordBody("PublicVirtualMethodNotDecorated");
 }
예제 #22
0
 public void PublicNewMethodNotDecorated()
 {
     TestRecords.RecordBody("PublicNewMethodNotDecorated");
 }
 public void WithoutArgs()
 {
     TestRecords.RecordBody("VoidMethodWithoutArgs");
 }
 public void CanLogInitEntryAndExit()
 {
     TestRecords.RecordBody("CanLogInitEntryAndExit");
 }
 public static string ToTitleCase(this string value)
 {
     TestRecords.RecordBody("ToTitleCase");
     return(new CultureInfo("en-GB", false).TextInfo.ToTitleCase(value));
 }
 public override void OnTaskContinuation(Task task)
 {
     TestRecords.RecordOnContinuation();
 }
예제 #27
0
 public void OnEntry()
 {
     TestRecords.RecordOnEntry();
 }
예제 #28
0
 public SimpleConstructor()
 {
     TestRecords.RecordBody("InterceptingConstructors+SimpleConstructor");
 }
예제 #29
0
 public void OnException(Exception exception)
 {
     TestRecords.RecordOnException(exception.GetType(), exception.Message);
 }
예제 #30
0
 public void ObsoleteDecorated()
 {
     TestRecords.RecordBody("ObsoleteDecorated");
 }