public async Task When_one_of_two_aggregate_throws_fault_not_received_expected_messages_are_ignored() { var syncCommand = new CreateAndChangeSampleAggregateCommand(100, Guid.NewGuid()); var messages = new ExpectedMessage[] { Expect.Fault <SampleAggregateCreatedEvent>(e => e.SourceId, syncCommand.AggregateId), Expect.Fault <SampleAggregateChangedEvent>(e => e.SourceId, syncCommand.AggregateId), Expect.Message <AggregateChangedEventNotification>(e => e.AggregateId, syncCommand.AggregateId), Expect.Message <AggregateCreatedEventNotification>(e => e.AggregateId, syncCommand.AggregateId) }; try { await GridNode.Execute(new CommandPlan(syncCommand, messages)); Assert.Fail("Wait ended after one of two notifications"); } catch (AggregateException ex) { var exception = ex.UnwrapSingle(); if (exception is SampleAggregateException) { Assert.Pass("Got exception from create message handler"); } if (exception is MessageHandleException) { Assert.Pass("Got exception from change message handler"); } Assert.Fail($"Unknown exception type: {exception.GetType()}"); } }
public void ObservingDifferentThanUsedInCriteria() { var testCode = @" namespace RoslynSandbox { using Gu.Reactive; public class FooCondition : Condition { public FooCondition(Foo foo) ↓: base( foo.ObservePropertyChangedSlim(x => x.Value1), () => foo.Value2 == 2) { } } }"; var expected = "Observable and criteria must match.\r\n" + "Observed:\r\n" + " RoslynSandbox.Foo.Value1\r\n" + "Used in criteria:\r\n" + " RoslynSandbox.Foo.Value2\r\n" + "Not observed:\r\n" + " RoslynSandbox.Foo.Value2"; AnalyzerAssert.Diagnostics <GUREA02ObservableAndCriteriaMustMatch>(ExpectedMessage.Create(expected), FooCode, testCode); }
public async Task filter_should_run_in_order() { var containers = new Queue <int>(); var services = new ServiceCollection(); services.AddMediator() .AddHandlersSameAssemblyWith <filter_tests>() .AddFilter((sp) => new Filter1(containers)) .AddFilter(sp => new Filter2(containers)); var serviceProvider = services.BuildServiceProvider(); var mediator = serviceProvider.GetService <IMediator>(); var msg = new ExpectedMessage { Expected = "test" }; // Actions var result = await mediator.Send(msg); // Assertions result.Successful.Should().BeTrue(); result.Data.Should().Be(msg.Expected); containers.Count.Should().Be(2); containers.Should().BeInAscendingOrder(); }
public async Task filter_should_work() { var services = new ServiceCollection(); services.AddMediator() .AddHandlersSameAssemblyWith <filter_tests>() .AddFilter <AssertionFilter>() .AddFilter <AssertionFilter>(); var sp = services.BuildServiceProvider(); var mediator = sp.GetService <IMediator>(); var msg = new ExpectedMessage { Expected = "test" }; // Actions var result = await mediator.Send(msg); // Assertions result.Successful.Should().BeTrue(); result.Data.Should().Be(msg.Expected); AssertionFilter.Messages.Should().Contain(msg); }
public void When_expect_more_than_one_messages() { var syncCommand = new CreateAndChangeSampleAggregateCommand(100, Guid.NewGuid()); var messages = new ExpectedMessage[] { Expect.Message <SampleAggregateChangedEvent>(e => e.SourceId, syncCommand.AggregateId), Expect.Message <SampleAggregateCreatedEvent>(e => e.SourceId, syncCommand.AggregateId) }; _anObject = GridNode.Execute(new CommandPlan(syncCommand, messages)).Result as object[]; //to array }
public async Task send_command_interface_should_success() { // arrange string expected = "henry"; var command = new ExpectedMessage { Expected = expected }; // Actions var result = await _mediator.Send(command); // Assertions result.Successful.Should().BeTrue(); result.Data.Should().Be(expected); }
protected abstract bool WaitIsOver(object message, ExpectedMessage expect);