// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_GetServiceMethods_WhenCachedNoRefreshRequested_FreshResults() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- TestDatabaseBroker broker = new TestDatabaseBroker(); DbSource source = new DbSource { ReloadActions = true }; TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); var methodList = new ServiceMethodList { new ServiceMethod("bob", "bob src", null, null, null, null) }; TestDatabaseBroker.TheCache.TryAdd(source.ConnectionString, methodList); //------------Execute Test--------------------------- var result = broker.GetServiceMethods(source); // set back to empty ;) TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); //------------Assert Results------------------------- Assert.AreEqual(0, result.Count); }
// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_GetServiceMethods_WhenCached_CachedResults() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- TestDatabaseBroker broker = new TestDatabaseBroker(); DbSource source = new DbSource(); TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); // ReSharper disable UseObjectOrCollectionInitializer var methodList = new ServiceMethodList(); // ReSharper restore UseObjectOrCollectionInitializer methodList.Add(new ServiceMethod("bob", "bob src", null, null, null, "")); TestDatabaseBroker.TheCache.TryAdd(source.ConnectionString, methodList); //------------Execute Test--------------------------- var result = broker.GetServiceMethods(source); // set back to empty ;) TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); //------------Assert Results------------------------- Assert.AreEqual(1, result.Count); Assert.AreEqual("bob", result[0].Name); }
public void AbstractDataBaseBroker_GetServiceMethods_WhenCached_CachedResults() { //------------Setup for test-------------------------- var broker = new TestDatabaseBroker(); var source = new DbSource(); TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); var methodList = new ServiceMethodList(); methodList.Add(new ServiceMethod("bob", "bob src", null, null, null, "")); TestDatabaseBroker.TheCache.TryAdd(source.ConnectionString, methodList); //------------Execute Test--------------------------- var result = broker.GetServiceMethods(source); // set back to empty ;) TestDatabaseBroker.TheCache = new ConcurrentDictionary <string, ServiceMethodList>(); //------------Assert Results------------------------- Assert.AreEqual(1, result.Count); Assert.AreEqual("bob", result[0].Name); }
// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_GetServiceMethods_WhenNotCached_FreshResults() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- TestDatabaseBroker broker = new TestDatabaseBroker(); Mock <DbSource> source = new Mock <DbSource>(); //------------Execute Test--------------------------- var result = broker.GetServiceMethods(source.Object); //------------Assert Results------------------------- Assert.AreEqual(0, result.Count); }
// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_GetServiceMethods_DbSourceIsNull_ThrowsArgumentNullException() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- var broker = new TestDatabaseBroker(); //------------Execute Test--------------------------- #pragma warning disable 168 var result = broker.GetServiceMethods(null); #pragma warning restore 168 //------------Assert Results------------------------- }
// ReSharper disable InconsistentNaming public void AbstractDataBaseBroker_GetServiceMethods_InvokesDbServerFetchStoredProcedures_Done() // ReSharper restore InconsistentNaming { //------------Setup for test-------------------------- var dbSource = new DbSource(); var procedureCommand = new SqlCommand("procedureCommand"); procedureCommand.Parameters.Add(new SqlParameter("@p1", "proc")); var functionCommand = new SqlCommand("functionCommand"); functionCommand.Parameters.Add(new SqlParameter("@f1", "func")); var dbServer = new Mock <TestDbServer>(); dbServer.Setup(s => s.Connect(It.IsAny <string>())).Verifiable(); dbServer.Setup(s => s.FetchStoredProcedures ( It.IsAny <Func <IDbCommand, List <IDbDataParameter>, string, string, bool> >(), It.IsAny <Func <IDbCommand, List <IDbDataParameter>, string, string, bool> >(), It.IsAny <bool>()) ) .Callback( ( Func <IDbCommand, List <IDbDataParameter>, string, string, bool> procedureProcessor, Func <IDbCommand, List <IDbDataParameter>, string, string, bool> functionProcessor, bool continueOnProcessorException ) => { procedureProcessor(procedureCommand, procedureCommand.Parameters.Cast <IDbDataParameter>().ToList(), "procHelpText", ""); functionProcessor(functionCommand, functionCommand.Parameters.Cast <IDbDataParameter>().ToList(), "funcHelpText", ""); }) .Verifiable(); var broker = new TestDatabaseBroker(dbServer.Object); //------------Execute Test--------------------------- var result = broker.GetServiceMethods(dbSource); //------------Assert Results------------------------- dbServer.Verify(s => s.Connect(It.IsAny <string>())); dbServer.Verify(s => s.FetchStoredProcedures ( It.IsAny <Func <IDbCommand, List <IDbDataParameter>, string, string, bool> >(), It.IsAny <Func <IDbCommand, List <IDbDataParameter>, string, string, bool> >(), It.IsAny <bool>()) ); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count); for (var i = 0; i < result.Count; i++) { var command = i == 0 ? procedureCommand : functionCommand; var serviceMethod = result[i]; Assert.AreEqual(command.CommandText, serviceMethod.Name); for (var j = 0; j < serviceMethod.Parameters.Count; j++) { var methodParam = serviceMethod.Parameters[j]; var commandParam = (IDbDataParameter)command.Parameters[j]; Assert.AreEqual(commandParam.ParameterName, "@" + methodParam.Name); } } }