public IObject HandleGZipPacked(TgZipPacked obj)
        {
            using (var decompressStream = new MemoryStream())
            {
                using (var stream = new MemoryStream(obj.PackedData))
                    using (var zipStream = new GZipStream(stream, CompressionMode.Decompress))
                    {
                        zipStream.CopyTo(decompressStream);
                    }

                decompressStream.Position = 0;

                using (var reader = new BinaryReader(decompressStream))
                {
                    var unzippedObj = Serializer.DeserializeObject(reader);

                    if (Log.IsDebugEnabled)
                    {
                        var jObject = JsonConvert.SerializeObject(unzippedObj);
                        Log.Debug($"Recived Gzip message {unzippedObj}: {jObject}");
                    }

                    return(unzippedObj);
                }
            }
        }
Example #2
0
        public void ReturnZippedResult()
        {
            this.BuildClientSettingsProps();

            this.RegisterType <RpcResultHandler>();

            var messageId = Fixture.Create <long>();

            var result = new TPong();

            var tgZipPacked = new TgZipPacked
            {
                PackedData = Fixture.CreateMany <byte>(8).ToArray()
            };
            var request = new TRpcResult
            {
                ReqMsgId = messageId,
                Result   = Serializer.Serialize(tgZipPacked).ToArray()
            };

            this.Resolve <Mock <IUnzippedService> >()
            .Setup(service => service.UnzipPackage(tgZipPacked))
            .Returns(() => result);

            var mRequestService = this.Resolve <Mock <IRequestService> >()
                                  .BuildReturnResult(messageId, result);

            var requestEncoder = this.Resolve <RpcResultHandler>();

            var channel = new EmbeddedChannel(requestEncoder);

            // ---

            channel.WriteInbound(request);

            // ---

            Assert.Null(channel.ReadOutbound <object>());

            channel.Flush();
            Assert.IsType <TMsgsAck>(channel.ReadOutbound <TMsgsAck>());

            mRequestService.Verify(service => service.ReturnResult(messageId, result), Times.Once);
        }
Example #3
0
        public IObject HandleGZipPacked(TgZipPacked obj)
        {
            Log.Debug($"Recived Gzip message");

            using (var decompressStream = new MemoryStream())
            {
                using (var stream = new MemoryStream(obj.PackedData))
                    using (var zipStream = new GZipStream(stream, CompressionMode.Decompress))
                    {
                        zipStream.CopyTo(decompressStream);
                    }

                decompressStream.Position = 0;

                using (var reader = new BinaryReader(decompressStream))
                {
                    return(Serializer.DeserializeObject(reader));
                }
            }
        }