Exemple #1
0
    public static void DateTimeRerouting()
    {
        var dt = new FDateTime(1, 2, 3);

        FDateTime.get_NowFake_static = () =>
        {
            var hook = CastlePatchedInterceptorRegistry.TryGetStaticHook(typeof(FDateTime), 1);
            if (hook != null)
            {
                var results = hook(new object[0]);

                var retvalue = results[0];
                if (!(retvalue is PassthroughPlaceholder))
                {
                    return((FDateTime)retvalue);
                }
            }

            return(new FDateTime(DateTime.Now.Ticks));
        };

        Assert.AreEqual(1, dt.Year);

        var dtstatic = Substitute.ForStatic <FDateTime>();

        FDateTime.Now.Returns(new FDateTime(2, 3, 4));
        Assert.AreEqual(2, FDateTime.Now.Year);
    }
Exemple #2
0
    public static void StringBuilderRerouting()
    {
        var sb = Substitute.ForPartsOf <FStringBuilder>();

        sb.get_LengthFake = () =>
        {
            var hook = CastlePatchedInterceptorRegistry.TryGetHook(sb);
            if (hook != null)
            {
                var results  = hook(new object[0]);
                var retvalue = results[0];
                if (!(retvalue is PassthroughPlaceholder))
                {
                    return((int)retvalue);
                }
            }

            var oldHook = sb.get_LengthFake;
            sb.get_LengthFake = null;
            var rv = sb.Length;
            sb.get_LengthFake = oldHook;
            return(rv);
        };
        sb.ToStringFake = () =>
        {
            var hook = CastlePatchedInterceptorRegistry.TryGetHook(sb);
            if (hook != null)
            {
                var results  = hook(new object[0]);
                var retvalue = results[0];
                if (!(retvalue is PassthroughPlaceholder))
                {
                    return((string)retvalue);
                }
            }

            var oldHook = sb.ToStringFake;
            sb.ToStringFake = null;
            var rv = sb.ToString();
            sb.ToStringFake = oldHook;
            return(rv);
        };

        sb.Append("abc");

        sb.ToString().Returns("test");
        Assert.AreEqual("test", sb.ToString());

        //sb.Length.Returns(123);

        Assert.AreEqual(3, sb.Length);
    }
Exemple #3
0
 public void Dispose()
 {
     CastlePatchedInterceptorRegistry.UnMockStatics(_staticType);
 }