// GET: /<controller>/
        public async Task <string> Index()
        {
            SQSManager sqsManager = new  SQSManager();
            await sqsManager.SendMessage();

            return("OK");
        }
Ejemplo n.º 2
0
        public void GetQueueTest()
        {
            var response = new CreateQueueResponse {
                QueueUrl = "TestQueue_LoanMessage", HttpStatusCode = HttpStatusCode.OK
            };

            _amazon.CreateQueueAsync(QueueName).ReturnsForAnyArgs(response);
            _logger = Substitute.For <ILogger>();
            var subscriber = new SQSManager(_amazon);


            string testQueueURL = subscriber.GetQueueUrl <LoanMessage>(QueueName);

            Assert.Equal(testQueueURL, TestQueueURL);
        }
Ejemplo n.º 3
0
        public async Task SendMessageAsync_WithStoreManagerTest()
        {
            var        amazonSQS    = Substitute.For <IAmazonSQS>();
            var        storeManager = Substitute.For <IStorageManager>();
            SQSManager subscriber   = Substitute.ForPartsOf <SQSManager>(amazonSQS, storeManager);

            var document = new byte[700000];

            for (int j = 0; j < document.Length; j++)
            {
                document[j] = 0x20;
            }

            var content = new LoanMessage
            {
                LoanID     = 1,
                LoanNumber = System.Text.Encoding.Default.GetString(document),
                Amount     = 1000
            };

            var serializedContent = JsonConvert.SerializeObject(content);
            var expectedRef       = new S3StorageReference("ValidKey");

            storeManager.PutDataAsync(Arg.Any <string>()).ReturnsForAnyArgs(info => expectedRef);

            amazonSQS.CreateQueueAsync(Arg.Any <string>())
            .ReturnsForAnyArgs(info => new CreateQueueResponse {
                QueueUrl = TestQueueURL, HttpStatusCode = HttpStatusCode.OK
            });


            amazonSQS.SendMessageAsync(Arg.Any <SendMessageRequest>())
            .ReturnsForAnyArgs(new SendMessageResponse()
            {
                HttpStatusCode = HttpStatusCode.OK
            });


            await subscriber.SendMessageAsync(QueueName, content);

            //if storemanager was called, pass
            await storeManager.ReceivedWithAnyArgs().PutDataAsync(serializedContent);

            await amazonSQS.Received()
            .SendMessageAsync(Arg.Is <SendMessageRequest>(x => x.MessageBody == JsonConvert.SerializeObject(expectedRef)));
        }
Ejemplo n.º 4
0
 public AnalyticsManager()
 {
     manager = new SQSManager();
 }
Ejemplo n.º 5
0
 public AnalyticsManager()
 {
     manager = new SQSManager();
 }
Ejemplo n.º 6
0
        public QueueManagerTest()
        {
            _amazon     = Substitute.For <IAmazonSQS>();
            _logger     = Substitute.For <ILogger>();
            _subscriber = new SQSManager(_amazon);

            _message = new LoanMessage
            {
                LoanID     = 1,
                LoanNumber = "067",
                Amount     = 1000
            };
            //_subscriber.GetInternalQueueName(QueueName, typeof(LoanMessage)).r
            _amazon.CreateQueueAsync(QueueName)
            .ReturnsForAnyArgs(info =>
                               new CreateQueueResponse {
                QueueUrl = "TestQueue_LoanMessage", HttpStatusCode = HttpStatusCode.OK
            });

            _amazon.SendMessageAsync(new SendMessageRequest(TestQueueURL, JsonConvert.SerializeObject(_message)))
            .Returns(new SendMessageResponse()
            {
                HttpStatusCode = HttpStatusCode.OK
            });

            _amazon.SendMessageAsync(Arg.Any <SendMessageRequest>())
            .Returns(new SendMessageResponse()
            {
                HttpStatusCode = HttpStatusCode.OK
            });
            _amazon.GetQueueUrlAsync(Arg.Any <string>())
            .ReturnsForAnyArgs(new GetQueueUrlResponse()
            {
                HttpStatusCode = HttpStatusCode.OK, QueueUrl = TestQueueURL
            });

            _amazon.ReceiveMessageAsync(TestQueueURL)
            .Returns(
                new ReceiveMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
                Messages       = new AutoConstructedList <Message>
                {
                    new Message
                    {
                        Body          = JsonConvert.SerializeObject(_message),
                        ReceiptHandle = "Test_ReceiptHandle"
                    }
                }
            });

            ReceiveMessageRequest request = new ReceiveMessageRequest(TestQueueURL);

            _amazon.ReceiveMessageAsync(request).ReturnsForAnyArgs(
                new ReceiveMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
                Messages       = new AutoConstructedList <Message>
                {
                    new Message
                    {
                        Body          = JsonConvert.SerializeObject(_message),
                        ReceiptHandle = "Test_ReceiptHandle"
                    }
                }
            });


            _amazon.DeleteMessageAsync(Arg.Any <string>(), Arg.Any <string>()).ReturnsForAnyArgs(
                new DeleteMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
            });

            _amazon.DeleteMessageAsync(Arg.Any <DeleteMessageRequest>()).ReturnsForAnyArgs(
                new DeleteMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
            });
        }
Ejemplo n.º 7
0
        public void ReceiveMessage_WithStoreManagerTest()
        {
            var amazonSQS    = Substitute.For <IAmazonSQS>();
            var storeManager = Substitute.For <IStorageManager>();

            _logger = Substitute.For <ILogger>();

            storeManager.StorageReferenceType.Returns(typeof(S3StorageReference));
            storeManager.When(x => x.DeleteData(Arg.Any <S3StorageReference>())).DoNotCallBase();

            SQSManager subscriber = new SQSManager(amazonSQS, storeManager);

            var content = new LoanMessage
            {
                LoanID     = 1,
                LoanNumber = "067",
                Amount     = 1000
            };

            var serializedContent = JsonConvert.SerializeObject(content);
            var expectedRef       = new S3StorageReference("ValidKey");

            //storeManager.PutData(serializedContent).Returns(info => expectedRef);
            storeManager.GetData(Arg.Any <S3StorageReference>()).ReturnsForAnyArgs(info => serializedContent);

            var message = new Message
            {
                Body          = JsonConvert.SerializeObject(expectedRef),
                ReceiptHandle = "Test_ReceiptHandle"
            };

            message.MessageAttributes.Add("SQSLargePayloadSize",
                                          new MessageAttributeValue {
                DataType = "Number", StringValue = "123456"
            });

            amazonSQS.ReceiveMessageAsync(Arg.Any <ReceiveMessageRequest>()).ReturnsForAnyArgs(
                info =>
                new ReceiveMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
                Messages       = new AutoConstructedList <Message>
                {
                    message
                }
            });


            amazonSQS.CreateQueueAsync(Arg.Any <string>())
            .ReturnsForAnyArgs(info => new CreateQueueResponse {
                QueueUrl = TestQueueURL, HttpStatusCode = HttpStatusCode.OK
            });

            amazonSQS.DeleteMessageAsync(Arg.Any <DeleteMessageRequest>()).ReturnsForAnyArgs(
                info =>
                new DeleteMessageResponse
            {
                HttpStatusCode = HttpStatusCode.OK,
            }
                );


            subscriber.ReceiveMessage <LoanMessage>(QueueName, Handler, default(CancellationToken));

            storeManager.Received().GetData(Arg.Is <S3StorageReference>(x => x.GetStorageKey() == expectedRef.GetStorageKey()));
        }