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