public void AssignsValuesSuccessfully() { const string commandText = "select 1;"; const int timeout = 45; const CommandType commandType = CommandType.StoredProcedure; const string alias = "alias"; const CommandFlagSetting flag = CommandFlagSetting.Pipelined; const IsolationLevel isolationLevel = IsolationLevel.Chaos; const string split = "field"; var result = new DatabaseCommandSetting( alias, commandText, commandType, timeout, split, flag, isolationLevel); Equal(commandText, result.CommandText); Equal(timeout, result.CommandTimeout); Equal(commandType, result.CommandType); Equal(alias, result.ConnectionAlias); Equal(flag, result.Flags); Equal(isolationLevel, result.IsolationLevel); Equal(split, result.Split); }
[InlineData(0, IsolationLevel.Serializable)] // no value should default to serializable. public void AssignsIsolationLevelSuccessfully(int value, IsolationLevel expected) { const string alias = "alias"; const string commandText = "select 1;"; var result = new DatabaseCommandSetting(alias, commandText, isolationLevel: (IsolationLevel)value); var isolationLevel = (IsolationLevel)value; Equal(expected, result.IsolationLevel); Equal(value, (int)isolationLevel); }
public void ProviderExceptionReturnedToCaller() { var providerMock = new Mock <DbProviderFactory>(); providerMock.Setup(x => x.CreateConnection()).Throws(new NotImplementedException("Unit test")); var connector = new DatabaseConnector(_settings, () => providerMock.Object); var setting = new DatabaseCommandSetting("test.alias", "select 1"); var result = Throws <NotImplementedException>(() => connector.CreateConnection(setting)); Equal("Unit test", result.Message); }
private CommandDefinition GetCommandDefinition( DatabaseCommandSetting setting, object parameters = null, IDbTransaction transaction = null, CancellationToken cancellationToken = default(CancellationToken)) => new CommandDefinition( commandText: setting.CommandText, parameters: parameters, transaction: transaction, commandTimeout: setting.CommandTimeout, commandType: setting.CommandType, flags: (CommandFlags)setting.Flags, cancellationToken: cancellationToken);
public void NoAliasedConnectionThrowsNullReferenceException() { var providerMock = new Mock <DbProviderFactory>(); var connector = new DatabaseConnector(_settings, () => providerMock.Object); var setting = new DatabaseCommandSetting("Does.Not.Exist", "test"); var result = Throws <NullReferenceException>(() => connector.CreateConnection(setting)); Equal( $"There is no connection with the alias '{setting.ConnectionAlias}' in the settings. Please check settings.", result.Message); }
public void Successfully() { var connectionMock = new Mock <DbConnection>(); var providerMock = new Mock <DbProviderFactory>(); providerMock.Setup(x => x.CreateConnection()).Returns(() => connectionMock.Object); var connector = new DatabaseConnector(_settings, () => providerMock.Object); var setting = new DatabaseCommandSetting("test.alias", "select 1"); var result = connector.CreateConnection(setting); NotNull(result); Equal(System.Data.ConnectionState.Closed, result.State); }
public void ProviderReturnsNullConnectionThrowsNullReferenceException() { var providerMock = new Mock <DbProviderFactory>(); providerMock.Setup(x => x.CreateConnection()).Returns(() => null); var connector = new DatabaseConnector(_settings, () => providerMock.Object); var setting = new DatabaseCommandSetting("test.alias", "select 1"); var result = Throws <NullReferenceException>(() => connector.CreateConnection(setting)); Equal( $"The provider predicate did not return a connection for the aliased connection '{setting.ConnectionAlias}'.", result.Message); }
public void ReturnsDefaults() { const string alias = "alias"; const string commandText = "select 1;"; var result = new DatabaseCommandSetting(alias, commandText); Equal(commandText, result.CommandText); Equal(30, result.CommandTimeout); Equal(CommandType.Text, result.CommandType); Equal(alias, result.ConnectionAlias); Equal(CommandFlagSetting.None, result.Flags); Equal(IsolationLevel.Serializable, result.IsolationLevel); Equal("Id", result.Split); }
public virtual IDbConnection CreateConnection(DatabaseCommandSetting commandSetting) { // pre-conditions. Require <ArgumentNullException>(commandSetting != null, nameof(commandSetting)); // get the connection string setting from the root connections. var connectionStringSetting = _settings.Connections.SingleOrDefault(x => x.Alias == commandSetting.ConnectionAlias); Require <NullReferenceException>(connectionStringSetting != null, Messages.NoAliasedConnection, commandSetting.ConnectionAlias); // invoke the provider predicate to return a connection. var connection = _providerPredicate.Invoke().CreateConnection(); Require <NullReferenceException>(connection != null, Messages.NoConnectionCreated, commandSetting.ConnectionAlias); // assign the connection and return connection.ConnectionString = connectionStringSetting.ConnectionString; return(connection); }