Exemple #1
0
        private void DynamicRequestLargePayload(int sizeKB, string requestQueue = "Resources", TimeSpan?timeout = null, bool checkHashInPayload = false)
        {
            //generate large payload
            var rand   = new Random(System.DateTimeOffset.Now.Millisecond);
            var ms     = new MemoryStream();
            var buffer = new byte[1024];

            for (var written = 0L; written < sizeKB; written++)
            {
                rand.NextBytes(buffer);
                ms.Write(buffer);
            }
            var base64String = Convert.ToBase64String(ms.ToArray());

            var msg = new
            {
                name     = $"rand{sizeKB}KB.bin",
                mimeType = "application/octet-stream",
                body     = base64String
            };

            var response = Fixture.AmqpService.RequestReply(msg, "PutResource", requestQueue, timeout);

            Assert.NotNull(response);
            var amqpApiResponse = AmqpApiUtils.ParseApiResult(response);

            Assert.NotNull(amqpApiResponse);
            Assert.NotNull(amqpApiResponse.ResponseObject);
            Assert.NotNull(amqpApiResponse.ResponseObject["uuid"]);
            var guid = Guid.Parse(amqpApiResponse.ResponseObject["uuid"].ToObject <string>());

            if (checkHashInPayload)
            {
                Assert.NotNull(amqpApiResponse.ResponseObject["hash"]);
                var hash          = amqpApiResponse.ResponseObject["hash"];
                var referenceHash = ServiceMock.Hash64Str(base64String);
                Assert.Equal(referenceHash, hash);
            }
        }