Пример #1
0
        public void RecordsInvocation()
        {
            var behavior = new MockProxyBehavior();

            behavior.Invoke(new MethodInvocation(new object(), typeof(object).GetMethod(nameof(object.ToString))),
                            () => (m, n) => m.CreateValueReturn(null));

            var ms = typeof(IMocked).GetMethods();

            Assert.Equal(1, behavior.Invocations.Count);
        }
Пример #2
0
        public void ReturnsFromIMocked()
        {
            var behavior = new MockProxyBehavior();

            var result = behavior.Invoke(new MethodInvocation(
                                             new object(),
                                             typeof(IMocked).GetProperty(nameof(IMocked.Mock)).GetGetMethod()),
                                         null);

            Assert.True(result.ReturnValue is IMocked);
            Assert.Equal(0, behavior.Invocations.Count);
        }
Пример #3
0
        public void ForwardsIMockInvocations(MethodInfo method)
        {
            var behavior = new MockProxyBehavior();

            var result = behavior.Invoke(new MethodInvocation(new object(), method), null);

            if (method.ReturnType != typeof(void))
            {
                Assert.Same(method.Invoke(behavior, new object[0]), result.ReturnValue);
            }

            Assert.Equal(0, behavior.Invocations.Count);
        }
Пример #4
0
        public void WhenAddingMockBehavior_ThenCanInterceptSelectively()
        {
            var calculator = (ICalculator) new DynamicProxyFactory().CreateProxy(typeof(ICalculator), new[] { typeof(IMocked) }, new object[0]);
            var behavior   = new MockProxyBehavior();

            calculator.AddProxyBehavior(behavior);
            calculator.AddProxyBehavior(new DefaultValueProxyBehavior());
            calculator.AddMockBehavior(m => m.MethodBase.Name == "get_Mode", (m, n) => m.CreateValueReturn("Basic"));

            var mode = calculator.Mode;
            var add  = calculator.Add(3, 2);

            Assert.Equal("Basic", mode);
            Assert.Equal(0, add);
        }