public void ShouldCheckForCorrectQueryType() { var queryHandler = new TestQueryHandler(_testOutputHelper); var registration = new QueryHandlerRegistration(); registration.Register(() => (IQueryHandler <QuerySomethingWithDelay, string>)queryHandler); QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomethingWithDelay, string>(); queryHandlerDelegate.Should().NotBeNull(); const string data = nameof(ShouldCheckForCorrectQueryType); Func <Task> action = async() => { try { await queryHandlerDelegate.Invoke(new QuerySomething(data)); } catch (Exception ex) { _testOutputHelper.WriteLine(ex.ToString()); throw; } }; action.Should().Throw <ArgumentException>(); }
public Task Should_Check_For_Correct_Query_Type() { return(Assert.ThrowsAnyAsync <ArgumentException>(async() => { var queryHandler = new TestQueryHandler(_testOutputHelper); var registration = new QueryHandlerRegistration(); registration.Register(() => (IQueryHandler <QuerySomethingWithDelay, string>)queryHandler); QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomethingWithDelay, string>(); Assert.NotNull(queryHandlerDelegate); const string data = nameof(Should_Check_For_Correct_Query_Type); try { await queryHandlerDelegate.Invoke(new QuerySomething(data)); } catch (Exception ex) { _testOutputHelper.WriteLine(ex.ToString()); throw; } })); }
public async Task ShouldRegisterAllQueryHandlers() { var queryHandler = new TestQueryHandler(_testOutputHelper); var registration = new QueryHandlerRegistration(); registration.Register(() => (IQueryAsyncHandler <QuerySomething, string>)queryHandler); QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>(); var query = new QuerySomething(nameof(ShouldRegisterAllQueryHandlers)); var result1 = await queryHandler.HandleAsync(query); var result2 = await queryHandlerDelegate.Invoke(query); result1.Should().Be(result2); }
public async Task ShouldInvokeTheActualRegisteredQueryHandler() { var queryHandler = new TestQueryHandler(_testOutputHelper); var registration = new QueryHandlerRegistration(); registration.Register(() => (IQueryHandler <QuerySomething, string>)queryHandler); QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>(); queryHandlerDelegate.Should().NotBeNull(); const string data = nameof(ShouldInvokeTheActualRegisteredQueryHandler); // Invoke. await queryHandlerDelegate.Invoke(new QuerySomething(data)); queryHandler.HandledQueries.Should().HaveCount(1); queryHandler.HasHandledQuery <QuerySomething>().Should().BeTrue(); }
public async Task Should_Invoke_The_Actual_Registered_Query_Handler() { var queryHandler = new TestQueryHandler(_testOutputHelper); var registration = new QueryHandlerRegistration(); registration.Register(() => (IQueryHandler <QuerySomething, string>)queryHandler); QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>(); Assert.NotNull(queryHandlerDelegate); const string data = nameof(Should_Invoke_The_Actual_Registered_Query_Handler); // Invoke. await queryHandlerDelegate.Invoke(new QuerySomething(data)); // Check if actual command handler instance was invoked. Assert.Equal(1, queryHandler.HandledQueries.Count); Assert.Contains(queryHandler.HandledQueries, c => c is QuerySomething); }