Exemplo n.º 1
0
        public void StaticFieldAssignmentIsFaked()
        {
            Replace.CallsTo(() => { StaticClass.StaticField = 0; }).With(() => { });

            var code = new CodeUnderTest();
            code.SetsStaticField(5678);

            Assert.AreNotEqual(5678, StaticClass.StaticField);
        }
Exemplo n.º 2
0
        public void StaticFieldAccessIsFaked()
        {
            Replace.CallsTo(() => StaticClass.StaticField).With(() => 99);

            var code = new CodeUnderTest();
            var result = code.CallsStaticField();

            Assert.AreEqual(99, result);
        }
Exemplo n.º 3
0
        public void OriginalStaticFieldAssignmentSucceeds()
        {
            Replace.CallsTo(() => { StaticClass.StaticField = 0; }).CallOriginal();

            var code = new CodeUnderTest();
            code.SetsStaticField(1234);

            Assert.AreEqual(1234, StaticClass.StaticField);
        }
        public void CanInterceptSpecifiedMethods()
        {
            var spec = new TestSpecification();
            spec.SpecifyInterceptors(new SpecificationRegistry());

            var mocked = new CodeUnderTest();
            var result = mocked.CallsStringReturnOneParameter();

            Assert.AreEqual("|| Original method return value when passed '888'. ||", result);
        }
Exemplo n.º 5
0
        public void OriginalStaticFieldAccessSucceeds()
        {
            StaticClass.StaticField = 1234;

            Replace.CallsTo(() => StaticClass.StaticField).CallOriginal();

            var code = new CodeUnderTest();
            var result = code.CallsStaticField();

            Assert.AreEqual(1234, result);
        }
        public void CallIsReplaced()
        {
            var dummy = new MethodReplacement();
            Action<string> replacement = s => dummy.Call("Intercepted.");

            InterceptorRegistry.AddInterceptor(
                new CompoundInterceptor(new AlwaysMatches(),
                    new InsteadOfCall(() => replacement)
                ));

            var mocked = new CodeUnderTest();
            mocked.CallsConsoleWriteLine();

            Assert.AreEqual("Intercepted.", dummy.ReplacementArg1);
        }
        public void ArgumentsAreReplaced()
        {
            Function<IList<object>, IList<object>> replace = args => new List<object> { 5555 };

            InterceptorRegistry.AddInterceptor(
                new CompoundInterceptor(new AlwaysMatches(),
                    new ReplaceArguments(() => replace),
                    new InvokeOriginalCall()
                    ));

            var mocked = new CodeUnderTest();
            var result = mocked.CallsStringReturnOneParameter();

            Assert.AreEqual("|| Original method return value when passed '5555'. ||", result);
        }
        public void MethodWithMatchingOverloadIsIntercepted()
        {
            var dummy = new MethodReplacement();
            Action<string> replacement = s => dummy.Call("Intercepted.");

            InterceptorRegistry.AddInterceptor(
                new CompoundInterceptor(new AllOverloadsMatch(VoidMethod.Of(Console.WriteLine)),
                    new InvokeCallSafe(() => replacement)
                ));

            var mocked = new CodeUnderTest();
            mocked.CallsConsoleWriteLineFormatStingOverload();

            Assert.AreEqual("Intercepted.", dummy.ReplacementArg1);
        }
        public void ArgumentsAreReplacedAndCallIsReplaced()
        {
            Function<int, string> replacementMethod = number => String.Format("Intercepted: {0}", number);
            Function<IList<object>, IList<object>> replaceArgs = args => new List<object> { 4444 };

            var compoundInterceptor = new CompoundInterceptor(new AlwaysMatches(),
                    new ReplaceArguments(() => replaceArgs),
                    new InsteadOfCall(() => replacementMethod)
                );

            InterceptorRegistry.AddInterceptor(compoundInterceptor);

            var mocked = new CodeUnderTest();
            var result = mocked.CallsStringReturnOneParameter();

            Assert.AreEqual("Intercepted: 4444", result);
        }
        public void LogicIsInsertedAfter()
        {
            VoidAction<IInvocation> interceptor = i =>
            {
                Console.WriteLine("AFTER " + i.OriginalCall.Method.Name);
                Console.WriteLine("METHOD RETURNED: {0}", i.Return);
            };

            var compoundInterceptor =
                new CompoundInterceptor(new AlwaysMatches(), new AfterCall(() => interceptor));

            InterceptorRegistry.AddInterceptor(compoundInterceptor);

            var mocked = new CodeUnderTest();
            var result = mocked.CallsStringReturnOneParameter();

            Assert.AreEqual("|| Original method return value when passed '999'. ||", result);
        }
        public void ReturnValueIsIntercepted()
        {
            ReplaceReturnValue.ReturnValueReplacementFunction replace = o => "Replacement.";

            InterceptorRegistry.AddInterceptor(
                new CompoundInterceptor(new AlwaysMatches(),
                    new InvokeOriginalCall(),
                    new ReplaceReturnValue(replace))
                );

            var mock = new CodeUnderTest();
            var returnValue = mock.CallsStringReturnNoParameters();

            Assert.AreEqual("Replacement.", returnValue);
        }
        public void OriginalArgumentIsCaptured()
        {
            string suppliedArgument = null;
            Action<string> replacement = s => suppliedArgument = s;

            InterceptorRegistry.AddInterceptor(
                new CompoundInterceptor(new AlwaysMatches(),
                    new InsteadOfCall(() => replacement)));

            var mocked = new CodeUnderTest();
            mocked.CallsConsoleWriteLine();

            Assert.AreEqual("This should not appear.", suppliedArgument);
        }
        public void MethodIsReplacedAndOriginalIsCalled()
        {
            VoidAction<IInvocation> interceptor = i =>
            {
                var numberTimesTwo = (int)i.Arguments[0] * 2;
                var originalResult = i.OriginalCall.DynamicInvoke(numberTimesTwo);
                i.Return = String.Format("Intercepted: {0}", originalResult);
            };

            var compoundInterceptor = new CompoundInterceptor(
                new AlwaysMatches(),
                new InvokeWithInvocation(() => interceptor)
            );

            InterceptorRegistry.AddInterceptor(compoundInterceptor);

            var mocked = new CodeUnderTest();
            var result = mocked.CallsStringReturnOneParameter();

            Assert.AreEqual("Intercepted: || Original method return value when passed '1998'. ||", result);
        }