// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_TestService_DbServiceIsNull_ThrowsArgumentNullException() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- var broker = new TestDatabaseBroker(); //------------Execute Test--------------------------- broker.TestService(null); //------------Assert Results------------------------- }
public void AbstractDataBaseBroker_TestService_DbServiceWithNullSource_ThrowsArgumentNullException() { //------------Setup for test-------------------------- var broker = new TestDatabaseBroker(); var dbService = new DbService { Source = null }; //------------Execute Test--------------------------- broker.TestService(dbService); //------------Assert Results------------------------- }
// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_TestService_InvokesDbServiceMethodInsideTransaction_Done() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- var dbService = new DbService { Method = new ServiceMethod { Name = "TestMethod", Parameters = new List <MethodParameter> { new MethodParameter { Name = "Param1", TypeName = typeof(string).FullName, Value = "Hello" }, new MethodParameter { Name = "Param2", TypeName = typeof(int).FullName, Value = "99" } }, ExecuteAction = "BobTestMethod" } }; var testServiceResults = new DataTable("TestTableName"); testServiceResults.Columns.Add("Col1", typeof(int)); testServiceResults.Columns.Add("Col2", typeof(string)); testServiceResults.Rows.Add(new object[] { 1, "row1" }); testServiceResults.Rows.Add(new object[] { 2, "row2" }); testServiceResults.Rows.Add(new object[] { 3, null }); IDbCommand fetchDataTableCommand = null; var dbServer = new Mock <TestDbServer>(); dbServer.Setup(s => s.Connect(It.IsAny <string>())).Verifiable(); dbServer.Setup(s => s.BeginTransaction()).Verifiable(); dbServer.Setup(s => s.FetchDataTable(It.IsAny <IDbCommand>())) .Callback((IDbCommand command) => fetchDataTableCommand = command) .Returns(testServiceResults) .Verifiable(); dbServer.Setup(s => s.RollbackTransaction()).Verifiable(); dbServer.Setup(s => s.CreateCommand()).Returns(new SqlCommand()); var broker = new TestDatabaseBroker(dbServer.Object); //------------Execute Test--------------------------- var result = broker.TestService(dbService); //------------Assert Results------------------------- dbServer.Verify(s => s.Connect(It.IsAny <string>())); dbServer.Verify(s => s.BeginTransaction()); dbServer.Verify(s => s.FetchDataTable(It.IsAny <IDbCommand>())); dbServer.Verify(s => s.RollbackTransaction()); Assert.IsNotNull(fetchDataTableCommand); Assert.AreEqual("BobTestMethod", fetchDataTableCommand.CommandText); Assert.AreEqual(dbService.Method.Parameters.Count, fetchDataTableCommand.Parameters.Count); for (var i = 0; i < dbService.Method.Parameters.Count; i++) { var methodParam = dbService.Method.Parameters[i]; var commandParam = (IDbDataParameter)fetchDataTableCommand.Parameters[i]; Assert.AreEqual("@" + methodParam.Name, commandParam.ParameterName); Assert.AreEqual(methodParam.Value, commandParam.Value); Assert.AreEqual(DbType.String, commandParam.DbType); } Assert.IsNotNull(result); Assert.IsNotNull(result.DataSourceShapes); Assert.AreEqual(1, result.DataSourceShapes.Count); Assert.IsNotNull(result.DataSourceShapes[0]); Assert.AreEqual(2, result.DataSourceShapes[0].Paths.Count); Assert.AreEqual("TestTableName().Col1", result.DataSourceShapes[0].Paths[0].ActualPath); Assert.AreEqual("TestTableName().Col1", result.DataSourceShapes[0].Paths[0].DisplayPath); Assert.AreEqual("1__COMMA__2__COMMA__3", result.DataSourceShapes[0].Paths[0].SampleData); Assert.AreEqual("TestTableName().Col2", result.DataSourceShapes[0].Paths[1].ActualPath); Assert.AreEqual("TestTableName().Col2", result.DataSourceShapes[0].Paths[1].DisplayPath); Assert.AreEqual("row1__COMMA__row2__COMMA__", result.DataSourceShapes[0].Paths[1].SampleData); }