public void TestCloneCore_CreatesNewStoredProcedureWithParameters()
        {
            var p1 = Mock.Of <IStoredProcedureParameter>(p => p.ParameterName == "Foo");
            var p2 = Mock.Of <IStoredProcedureParameter>(p => p.ParameterName == "Bar");
            var t1 = Mock.Of <IDataTransformer>();
            var t2 = Mock.Of <IDataTransformer>();

            var parms        = new[] { p1, p2 };
            var transformers = new[] { t1, t2 };

            var sp     = new StoredProcedure("schema", "Test");
            var toTest = sp.CloneCore(parms, transformers);

            toTest.Name.Should().Be("Test", "because it should have been cloned");
            toTest.Schema.Should().Be("schema", "because it should have been cloned");
            toTest.Parameters.Should().ContainInOrder(new[] { p1, p2 }, "because they should be copied when cloned");
            toTest.DataTransformers.Should().ContainInOrder(new[] { t1, t2 }, "because they should be copied when cloned");
        }