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); }
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)); }
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"); }
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); }
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()); }
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); }