// ReSharper disable InconsistentNaming public void SqlServer_FetchDataTable_AddParams_VerifyAllAdded() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- var factory = new Mock <IDbFactory>(); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(a => a.ExecuteReader(It.IsAny <CommandBehavior>())).Returns(new Mock <IDataReader>().Object); mockCommand.Setup(a => a.CommandText).Returns("Dave.Bob"); var added = new SqlCommand().Parameters; mockCommand.Setup(a => a.Parameters).Returns(added); var helpTextCommand = new Mock <IDbCommand>(); helpTextCommand.Setup(a => a.ExecuteReader(It.IsAny <CommandBehavior>())).Returns(new Mock <IDataReader>().Object); DataTable dt = new DataTable(); dt.Columns.Add("database_name"); dt.Rows.Add(new object[] { "Bob" }); dt.Rows.Add(new object[] { "Dave" }); factory.Setup(a => a.GetSchema(It.IsAny <IDbConnection>(), "Databases")).Returns(dt); var conn = new Mock <IDbConnection>(); conn.Setup(a => a.State).Returns(ConnectionState.Open); var sqlServer = new SqlServer(factory.Object); try { PrivateObject pvt = new PrivateObject(sqlServer); pvt.SetField("_connection", conn.Object); pvt.SetField("_command", mockCommand.Object); //------------Execute Test--------------------------- IDbDataParameter[] param = new IDbDataParameter[] { new SqlParameter("a", "a"), new SqlParameter("b", "b") }; SqlServer.AddParameters(mockCommand.Object, param); Assert.AreEqual(2, added.Count); //------------Assert Results------------------------- } finally { sqlServer.Dispose(); } }