public static IEnumerable<TestCaseData> ProjectMessageCases() { //Match var commands1 = new[] { CommandFactory(), CommandFactory() }; var handler1 = new SqlProjectionHandler(typeof(object), _ => commands1); var resolver1 = new SqlProjectionHandlerResolver(message => new[] { handler1 }); yield return new TestCaseData( resolver1, new object(), commands1); //Mismatch var resolver2 = new SqlProjectionHandlerResolver(message => new SqlProjectionHandler[0]); yield return new TestCaseData( resolver2, new object(), new SqlNonQueryCommand[0]); //Multimatch var commands3 = new[] { CommandFactory(), CommandFactory() }; var commands4 = new[] { CommandFactory(), CommandFactory() }; var handler3 = new SqlProjectionHandler(typeof(object), _ => commands3); var handler4 = new SqlProjectionHandler(typeof(object), _ => commands4); var resolver3 = new SqlProjectionHandlerResolver(message => new[] { handler3, handler4 }); yield return new TestCaseData( resolver3, new object(), commands3.Concat(commands4).ToArray()); }
public static IEnumerable <TestCaseData> ProjectMessageCases() { //Match var commands1 = new[] { CommandFactory(), CommandFactory() }; var handler1 = new SqlProjectionHandler(typeof(object), _ => commands1); var resolver1 = new SqlProjectionHandlerResolver(message => new[] { handler1 }); yield return(new TestCaseData( resolver1, new object(), commands1)); //Mismatch var resolver2 = new SqlProjectionHandlerResolver(message => new SqlProjectionHandler[0]); yield return(new TestCaseData( resolver2, new object(), new SqlNonQueryCommand[0])); //Multimatch var commands3 = new[] { CommandFactory(), CommandFactory() }; var commands4 = new[] { CommandFactory(), CommandFactory() }; var handler3 = new SqlProjectionHandler(typeof(object), _ => commands3); var handler4 = new SqlProjectionHandler(typeof(object), _ => commands4); var resolver3 = new SqlProjectionHandlerResolver(message => new[] { handler3, handler4 }); yield return(new TestCaseData( resolver3, new object(), commands3.Concat(commands4).ToArray())); }
/// <summary> /// Initializes a new instance of the <see cref="ProjectionTestSpecification"/> class. /// </summary> /// <param name="resolver">The projection handler resolver.</param> /// <param name="messages">The messages to project.</param> /// <param name="verification">The verification method.</param> /// <exception cref="System.ArgumentNullException">Thrown when /// <paramref name="resolver"/> /// or /// <paramref name="messages"/> /// or /// <paramref name="verification"/> is null. /// </exception> public ProjectionTestSpecification(SqlProjectionHandlerResolver resolver, object[] messages, Table[] tables, Func <NpgsqlConnection, CancellationToken, Task <VerificationResult> > verification) { if (resolver == null) { throw new ArgumentNullException(nameof(resolver)); } if (messages == null) { throw new ArgumentNullException(nameof(messages)); } if (tables == null) { throw new ArgumentNullException(nameof(tables)); } if (verification == null) { throw new ArgumentNullException(nameof(verification)); } Resolver = resolver; Messages = messages; Tables = tables; Verification = verification; }
/// <summary> /// Initializes a new instance of the <see cref="AsyncSqlProjector"/> class. /// </summary> /// <param name="resolver">The handler resolver.</param> /// <param name="executor">The command executor.</param> /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="resolver"/> or <paramref name="executor"/> is <c>null</c>.</exception> public AsyncSqlProjector(SqlProjectionHandlerResolver resolver, IAsyncSqlNonQueryCommandExecutor executor) { if (resolver == null) throw new ArgumentNullException("resolver"); if (executor == null) throw new ArgumentNullException("executor"); _resolver = resolver; _executor = executor; }
/// <summary> /// Initializes a new instance of the <see cref="NpgsqlProjectionScenario"/> class. /// </summary> /// <param name="resolver">The projection handler resolver.</param> /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="resolver"/> is <c>null</c>.</exception> public NpgsqlProjectionScenario(SqlProjectionHandlerResolver resolver) { if (resolver == null) { throw new ArgumentNullException(nameof(resolver)); } Resolver = resolver; Messages = Array.Empty <object>(); Tables = Array.Empty <Table>(); }
public async void ProjectAsyncMessagesCausesExecutorToBeCalledWithExpectedCommands( SqlProjectionHandlerResolver resolver, object[] messages, SqlNonQueryCommand[] commands) { var mock = new ExecutorMock(); var sut = SutFactory(resolver, mock); var result = await sut.ProjectAsync(messages); Assert.That(result, Is.EqualTo(commands.Length)); Assert.That(mock.Commands, Is.EquivalentTo(commands)); }
public async Task ProjectAsyncMessageTokenCausesExecutorToBeCalledWithExpectedCommands( SqlProjectionHandlerResolver resolver, object message, SqlNonQueryCommand[] commands) { var mock = new ExecutorMock(); var sut = SutFactory(resolver, mock); var result = await sut.ProjectAsync(message, CancellationToken.None); Assert.That(result, Is.EqualTo(commands.Length)); Assert.That(mock.Commands, Is.EquivalentTo(commands)); }
public void ProjectMessagesCausesExecutorToBeCalledWithExpectedCommands( SqlProjectionHandlerResolver resolver, object[] messages, SqlNonQueryCommand[] commands) { var mock = new ExecutorMock(); var sut = SutFactory(resolver, mock); var result = sut.Project(messages); Assert.That(result, Is.EqualTo(commands.Length)); Assert.That(mock.Commands, Is.EquivalentTo(commands)); }
/// <summary> /// Initializes a new instance of the <see cref="SqlProjector"/> class. /// </summary> /// <param name="resolver">The handler resolver.</param> /// <param name="executor">The command executor.</param> /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="resolver"/> or <paramref name="executor"/> is <c>null</c>.</exception> public SqlProjector(SqlProjectionHandlerResolver resolver, ISqlNonQueryCommandExecutor executor) { if (resolver == null) { throw new ArgumentNullException("resolver"); } if (executor == null) { throw new ArgumentNullException("executor"); } _resolver = resolver; _executor = executor; }
private static AsyncSqlProjector SutFactory(SqlProjectionHandlerResolver resolver, IAsyncSqlNonQueryCommandExecutor executor) { return new AsyncSqlProjector(resolver, executor); }
private static AsyncSqlProjector SutFactory(SqlProjectionHandlerResolver resolver) { return SutFactory(resolver, new ExecutorStub()); }
private NpgsqlProjectionScenario(SqlProjectionHandlerResolver resolver, object[] messages, Table[] tables) { Resolver = resolver; Messages = messages; Tables = tables; }
private static AsyncSqlProjector SutFactory(SqlProjectionHandlerResolver resolver, IAsyncSqlNonQueryCommandExecutor executor) { return(new AsyncSqlProjector(resolver, executor)); }
private static AsyncSqlProjector SutFactory(SqlProjectionHandlerResolver resolver) { return(SutFactory(resolver, new ExecutorStub())); }