Beispiel #1
0
        public void CanDecorateInstanceActionMethodWithoutReplacement()
        {
            var sentArgs = new string[] { "1", "2", "3" };

            var thingsThatHaveRun = new Dictionary <string, object[]>();

            try
            {
                TestAopTarget.InstanceTarget.ThingsThatHaveRun = thingsThatHaveRun;
                var instanceTarget = new TestAopTarget.InstanceTarget();
                typeof(TestAopTarget.InstanceTarget).GetMethod("RunWithoutReplacement_Decorated").Invoke(instanceTarget, new object[] { sentArgs });
            }
            finally
            {
                TestAopTarget.InstanceTarget.ThingsThatHaveRun = null;
            }

            Assert.IsTrue(thingsThatHaveRun.TryGetValue(
                              $"Decorated RunWithoutReplacement",
                              out var decoratedMethodArgs));
            Assert.AreSame(sentArgs, decoratedMethodArgs);

            Assert.IsTrue(thingsThatHaveRun.TryGetValue(
                              $"Instance RunWithoutReplacement",
                              out var forwardedArgs));

            Assert.NotNull(forwardedArgs);
            Assert.That(forwardedArgs.Length == 1);
            Assert.AreEqual("1, 2, 3", forwardedArgs[0]);
        }
Beispiel #2
0
        public void CanDecorateInstanceActionMethodWithReplacement()
        {
            var thingsThatHaveRun = new Dictionary <string, object[]>();

            try
            {
                TestAopTarget.InstanceTarget.ThingsThatHaveRun = thingsThatHaveRun;
                var instanceTarget = new TestAopTarget.InstanceTarget();
                instanceTarget.RunWithReplacement("iuehtoinjf98ewrhnfew");
            }
            finally
            {
                TestAopTarget.InstanceTarget.ThingsThatHaveRun = null;
            }

            Assert.IsTrue(thingsThatHaveRun.TryGetValue(
                              $"Decorated RunWithReplacement",
                              out var decoratedMethodArgs));
            Assert.AreSame("iuehtoinjf98ewrhnfew", decoratedMethodArgs);

            Assert.IsTrue(thingsThatHaveRun.TryGetValue(
                              "Instance RunWithReplacement",
                              out var forwardedArgs));

            Assert.NotNull(forwardedArgs);
            Assert.That(forwardedArgs.Length == 1);
            Assert.AreEqual("iuehtoinjf98ewrhnfew", forwardedArgs[0]);
        }