private Expectation ParseRecursiveExpectation(IMockExpectationContainer container, Expectation current, Type type)
        {
            var typeInstance  = IdentifyReturnType(type);
            var typeContainer = typeInstance as IMockExpectationContainer;

            if (typeContainer == null)
            {
                return(current);
            }

            var genericType     = typeof(ExpectMethod <>);
            var replaceType     = genericType.MakeGenericType(type);
            var replaceInstance = Activator.CreateInstance(replaceType) as Expectation;

            replaceInstance.SetReturnValue(typeInstance);
            container.RemoveExpectation(current);
            container.AddExpectation(replaceInstance);

            typeContainer.MarkForExpectation(current);
            return(replaceInstance);
        }
        private Expectation ParseRecursiveExpectation(IMockExpectationContainer container, Expectation current, Type type)
        {
            var typeInstance = IdentifyReturnType(type);
            var typeContainer = typeInstance as IMockExpectationContainer;
            if (typeContainer == null)
                return current;

            var genericType = typeof(ExpectMethod<>);
            var replaceType = genericType.MakeGenericType(type);
            var replaceInstance = Activator.CreateInstance(replaceType) as Expectation;
            replaceInstance.SetReturnValue(typeInstance);
            container.RemoveExpectation(current);
            container.AddExpectation(replaceInstance);

            typeContainer.MarkForExpectation(current);
            return replaceInstance;
        }