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()}");
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);