public void Compress_ObjectsWithDifferentContent_HaveDifferentResultBytes() { var subject1 = (string)new Word(); var subject2 = (string)new Word(); var provider = new CompressionProvider(); var result1 = provider.Compress(subject1); var result2 = provider.Compress(subject2); CollectionAssert.AreNotEquivalent(result1, result2); }
public void Compress_CompressedContentSize_IsLessThanOriginal() { var subject = string.Join( " ", Enumerable.Range(0, 5).Select(_ => new Paragraph(Tongue.Babylonian)) ); var provider = new CompressionProvider(); var result = provider.Compress(subject); Assert.Less(result.Length, subject.Length); }
protected Message SerializeReplyInternal(MessageVersion messageVersion, object[] parameters, object result) { var retParamInfo = ParameterTypes.FirstOrDefault(x => x.ParamType == ParamType.Return); //if (retParamInfo == null) // throw new InvalidOperationException("The return parameter type was not found."); var compressionType = DefaultCompressionType; Func <string[]> valueGetter = () => { if (retParamInfo == null) { return(new string[0]); } var modelProvider = ObjectBuilder.GetModelProvider(); var model = modelProvider.CreateModelInfo(retParamInfo.Type, ModeType.Wcf); var serializer = ObjectBuilder.GetSerializer(); var data = (serializer.Serialize(result, model.MetaData, ModeType.Wcf) ?? new SerializationResult(new byte[0], null)).Data; if (compressionType != CompressionTypeOptions.None) { var compressionProvider = new CompressionProvider(); data = compressionProvider.Compress(data, compressionType); } var value = BinaryConverter.ToString(data); return(new[] { value }); }; var message = Message.CreateMessage(messageVersion, ContractInfo.Action + "Response", new ProtoBodyWriter(ContractInfo.OperationContractName, ContractInfo.ServiceNamespace, valueGetter)); if (compressionType != CompressionTypeOptions.None) { AddCompressionHeader(message, DefaultCompressionType); } return(message); }
public void CompressDecompress_ResultingAndOriginalObject_AreEquivalent() { var subject = new { String = "√abcdef€z$*%´´ràéµ£", List = new[] { 123, 456 }, Object = new { Value = 123 } }.ToJson(); var provider = new CompressionProvider(); var result = provider.Decompress(provider.Compress(subject)); Assert.AreEqual(subject, result); }