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"); }