public void Poll_client_pulls_from_sqs_and_calls_callback() { var mockSqsClient = new MockSqsClient(); mockSqsClient.FillQueue(15); var pollster = new SqsPollClient(mockSqsClient, TaskTimerFactory.Current); Assert.AreEqual(15, mockSqsClient.Queued.Count, "queue was accessed prematurely"); var posted = new List<AwsSqsMessage>(); pollster.Listen("foo", 300.Seconds(), posted.Add); Assert.IsTrue(Wait.For(() => mockSqsClient.Queued.Count == 0, 10.Seconds()), "queue did not get depleted in time"); Assert.IsTrue( Wait.For(() => mockSqsClient.ReceiveCalled == 3, 5.Seconds()), string.Format("receive called the wrong number of times: {0} != {1}", 3, mockSqsClient.ReceiveCalled) ); Assert.AreEqual(15, mockSqsClient.Delivered.Count, "delivered has the wrong number of messages"); Assert.AreEqual( mockSqsClient.Delivered.Select(x => x.MessageId).ToArray(), mockSqsClient.Deleted.Select(x => x.MessageId).ToArray(), "delivered and deleted don't match" ); Assert.AreEqual( mockSqsClient.Delivered.Select(x => x.MessageId).ToArray(), posted.Select(x => x.MessageId).ToArray(), "delivered and posted don't match" ); }
public void Poll_client_pulls_from_sqs_and_calls_callback() { var mockSqsClient = new MockSqsClient(); mockSqsClient.FillQueue(15); var pollster = new SqsPollClient(mockSqsClient, TaskTimerFactory.Current); Assert.AreEqual(15, mockSqsClient.Queued.Count, "queue was accessed prematurely"); var posted = new List <AwsSqsMessage>(); pollster.Listen("foo", 300.Seconds(), posted.Add); Assert.IsTrue(Wait.For(() => mockSqsClient.Queued.Count == 0, 10.Seconds()), "queue did not get depleted in time"); Assert.IsTrue( Wait.For(() => mockSqsClient.ReceiveCalled == 3, 5.Seconds()), string.Format("receive called the wrong number of times: {0} != {1}", 3, mockSqsClient.ReceiveCalled) ); Assert.AreEqual(15, mockSqsClient.Delivered.Count, "delivered has the wrong number of messages"); Assert.AreEqual( mockSqsClient.Delivered.Select(x => x.MessageId).ToArray(), mockSqsClient.Deleted.Select(x => x.MessageId).ToArray(), "delivered and deleted don't match" ); Assert.AreEqual( mockSqsClient.Delivered.Select(x => x.MessageId).ToArray(), posted.Select(x => x.MessageId).ToArray(), "delivered and posted don't match" ); }