コード例 #1
0
        public async Task Should_connect_locally_with_test_harness()
        {
            var harness = new AmazonSqsTestHarness();

            await harness.Start();

            await harness.Stop();
        }
コード例 #2
0
        public AmazonSqsTestFixture(AmazonSqsTestHarness harness)
            : base(harness)
        {
            AmazonSqsTestHarness = harness;

            AmazonSqsTestHarness.OnConfigureAmazonSqsHost            += ConfigureAmazonSqsHost;
            AmazonSqsTestHarness.OnConfigureAmazonSqsBus             += ConfigureAmazonSqsBus;
            AmazonSqsTestHarness.OnConfigureAmazonSqsReceiveEndpoint += ConfigureAmazonSqsReceiveEndpoint;
        }
コード例 #3
0
        public async Task Should_connect_locally_with_test_harness_and_publish_without_consumer()
        {
            var harness = new AmazonSqsTestHarness();

            await harness.Start();

            await harness.Bus.Publish(new PingMessage());

            await harness.Stop();
        }
コード例 #4
0
        public async Task Should_connect_locally_with_test_harness_and_a_handler()
        {
            var harness = new AmazonSqsTestHarness();
            HandlerTestHarness <PingMessage> handler = harness.Handler <PingMessage>(async context =>
            {
            });

            await harness.Start();

            await harness.InputQueueSendEndpoint.Send(new PingMessage());

            await harness.Stop();
        }
コード例 #5
0
        public void CreateHarness()
        {
            if (HarnessType == typeof(InMemoryTestHarness))
            {
                Harness = new InMemoryTestHarness();
            }
            else if (HarnessType == typeof(RabbitMqTestHarness))
            {
                var harness = new RabbitMqTestHarness();

                Harness = harness;

                harness.OnConfigureRabbitMqReceiveEndoint += x => x.BindMessageExchanges = Subscribe;
            }
            else if (HarnessType == typeof(ActiveMqTestHarness))
            {
                var harness = new ActiveMqTestHarness();

                Harness = harness;

                harness.OnConfigureActiveMqReceiveEndoint += x => x.BindMessageTopics = Subscribe;
            }
            else if (HarnessType == typeof(AzureServiceBusTestHarness))
            {
                var serviceUri = Credentials.AzureServiceUri;

                var harness = new AzureServiceBusTestHarness(serviceUri, Credentials.AzureKeyName, Credentials.AzureKeyValue);

                Harness = harness;

                harness.OnConfigureServiceBusReceiveEndpoint += x => x.SubscribeMessageTopics = Subscribe;
            }
            else if (HarnessType == typeof(AmazonSqsTestHarness))
            {
                var harness = new AmazonSqsTestHarness(Credentials.AmazonRegion, Credentials.AmazonAccessKey, Credentials.AmazonSecretKey);

                Harness = harness;

                harness.OnConfigureAmazonSqsReceiveEndpoint += x => x.SubscribeMessageTopics = Subscribe;
            }
            else
            {
                throw new ArgumentException($"Unknown test harness type: {TypeCache.GetShortName(HarnessType)}");
            }
        }
コード例 #6
0
        public async Task Setup()
        {
            _harness = new AmazonSqsTestHarness();
            _handler = _harness.Handler <A>(async context =>
            {
                var endpoint = await context.GetSendEndpoint(context.SourceAddress);

                await endpoint.Send(new C());

                await context.Publish(new D());
            });

            await _harness.Start();

            await _harness.InputQueueSendEndpoint.Send(new A());

            await _harness.Bus.Publish(new B());
        }
コード例 #7
0
        public async Task Should_connect_locally_with_test_harness_and_a_publisher()
        {
            var harness = new AmazonSqsTestHarness();
            HandlerTestHarness <PingMessage> handler  = harness.Handler <PingMessage>();
            HandlerTestHarness <PongMessage> handler2 = harness.Handler <PongMessage>();

            await harness.Start();

            await harness.Bus.Publish(new PingMessage());

            Assert.That(handler.Consumed.Select().Any(), Is.True);

            //            await Task.Delay(20000);

            await harness.Bus.Publish(new PongMessage());

            Assert.That(handler2.Consumed.Select().Any(), Is.True);

            await harness.Stop().OrTimeout(s: 5);

            await harness.Stop();
        }