public void ShouldUseGenericBaseSurrogateForDerivedClass()
        {
            var i          = new SurrogateMockI <string>("something");
            var pseudocopy = PseudoClone(i, serializer =>
                                         serializer.ForObject(typeof(SurrogateMockF <>)).SetSurrogate(x => "success"));

            Assert.AreEqual("success", pseudocopy);
        }
        public void ShouldUseMoreSpecificGenericSurrogateIfPossible()
        {
            var i          = new SurrogateMockI <string>("something");
            var pseudocopy = PseudoClone(i, serializer =>
            {
                serializer.ForObject(typeof(SurrogateMockF <>)).SetSurrogate(x => "fail");
                serializer.ForObject(typeof(SurrogateMockI <>)).SetSurrogate(x => "success");
            });

            Assert.AreEqual("success", pseudocopy);
        }