Exemplo n.º 1
0
        public async Task SqsBasic_Consumer_NoMessages()
        {
            bool hitCode = false;

            using var c        = SqsHelper.CreateConnection(this.Logger, SqsSettings.DefaultSection, UnitTestSettingsFile);
            using var consumer = c.CreateConsumer <SqsConsumer>();

            consumer.Initialize();

            Assert.AreEqual(ConsumerStatus.Running, consumer.Status);

            consumer.OnDelivery += (s, e) =>
            {
                // No Messages, so should never hit this
                hitCode = true;
            };

            await Task.Delay(15000);

            consumer.Dispose();

            await Task.Delay(500);

            Assert.AreEqual(ConsumerStatus.CancelRequested, consumer.Status);
            Assert.AreEqual(0u, consumer.Delivered);
            Assert.GreaterOrEqual(consumer.EmptyGets, 1u);
            Assert.False(hitCode);
        }
Exemplo n.º 2
0
        public async Task SqsPubSub_Pub_Get_ProtoBuf()
        {
            using var c = SqsHelper.CreateConnection(this.Logger, SqsSettings.DefaultSection, UnitTestSettingsFile);

            var testData = new Scan();

            testData.Metrics.Add(new Metric {
                Id = MetricTypeId.PingRoundtrip
            });
            testData.Metrics.Add(new Metric {
                Id = MetricTypeId.ProcessUptime
            });

            using (var p = c.CreatePublisher <SqsPublisher>())
            {
                var result = await p.ProtoPublishAsync(testData);

                Assert.AreEqual(PublishStatus.Confirmed, result);
            }

            using var ret = c.CreateRetriever <SqsRetriever>();

            var res = await ret.ProtoRetrieveAsync <Scan>();

            Assert.AreEqual(1, res.Count());
            var s = res.Single();

            Assert.AreEqual(2, s.Metrics.Count);
            Assert.IsNotNull(s.Metrics.SingleOrDefault(x => x.Id == MetricTypeId.PingRoundtrip));
            Assert.IsNotNull(s.Metrics.SingleOrDefault(x => x.Id == MetricTypeId.ProcessUptime));
        }
Exemplo n.º 3
0
        public void SqsBasic_CreateConnection()
        {
            using (var c = SqsHelper.CreateConnection(this.Logger, SqsSettings.DefaultSection, UnitTestSettingsFile))
            {
                Assert.IsNotNull(c);
            }

            var cfg = SqsHelper.GetSqsConfigurationFromFile(SqsSettings.DefaultSection, UnitTestSettingsFile);

            Assert.AreNotEqual("https://sqs.us-east-2.amazonaws.com/202810038399/dev-scans", cfg.Queue, "This can be ignored for local development");
        }
Exemplo n.º 4
0
        public static async Task PurgeUnitTestQueue()
        {
            await Task.Delay(61000);

            using (var c = SqsHelper.CreateConnection(NullLogger.Instance, SqsSettings.DefaultSection, BaseNUnitTest.UnitTestSettingsFile))
                using (var q = (SqsQueueManager)c.CreateQueueManager())
                {
                    await q.PurgeAsync(q.Configuration.Queue.ToString());
                }

            await Task.Delay(61000);
        }
Exemplo n.º 5
0
        public async Task SqsPubSub_TypedPublisher_StringRetrieve()
        {
            using var c = SqsHelper.CreateConnection(this.Logger, SqsSettings.DefaultSection, UnitTestSettingsFile);

            var payload = Guid.NewGuid().ToString();

            using (var p = c.CreatePublisher <SqsPublisher>())
                using (var pub = new Publisher <string>(p.Configuration.Queue.ToString(), p, new Strings(), this.Logger))
                {
                    var result = await pub.PublishAsync(payload);

                    Assert.AreEqual(PublishStatus.Confirmed, result);
                }

            using var ret = c.CreateRetriever <SqsRetriever>();
            var res = await ret.StringRetrieveAsync();

            Assert.AreEqual(1, res.Count());
            Assert.AreEqual(payload, res.Single());
        }
Exemplo n.º 6
0
        public async Task SqsBasic_Consumer_WithProtocol_NoMessages()
        {
            var count   = 0;
            var hitCode = false;

            using (var c = SqsHelper.CreateConnection(this.Logger, SqsSettings.DefaultSection, UnitTestSettingsFile))
            {
                using (var mq1 = new ActionConsumer <Scan>(x => { Interlocked.Increment(ref count); }, c.CreateRetriever(), new ProtoBufOverAmqp <Scan>(), c.CreateConsumer(), this.Logger))
                {
                    await Task.Delay(15000);
                }

                using (var mq2 = new ActionConsumer <Scan>(x => { Interlocked.Increment(ref count); }, c.CreateRetriever(), new ProtoBufOverAmqp <Scan>(), c.CreateConsumer(), this.Logger))
                {
                    mq2.Initialize();
                    await Task.Delay(15000);
                }

                hitCode = true;
            }

            Assert.AreEqual(0, count);
            Assert.IsTrue(hitCode);
        }