public void SerializeArrayAsBinary() { var list = new[] { "one", "two" }; Expression<Func<Test, bool>> expression = test => list.Contains(test.Code); var serializer = new ExpressionSerializer(new BinarySerializer()); var value = serializer.SerializeBinary(expression); Assert.IsNotNull(value); }
public void SerializeAsQueryableWithPredicateTest() { Expression<Func<Order, bool>> predicate = x => x.Id > 0 && x.Id < 5; Expression<Func<Document, bool>> pred = x => x.Orders.AsQueryable().Any(predicate); var serializer = new ExpressionSerializer(new BinarySerializer()); var value = serializer.SerializeBinary(pred); Assert.IsNotNull(value); }
public void SerializeListAsBinary() { var list = new List<string> { "one", "two" }; Expression<Func<Test, bool>> expression = test => list.Contains(test.Code); var serializer = new ExpressionSerializer(new BinarySerializer()) { AutoAddKnownTypesAsListTypes = true }; var value = serializer.SerializeBinary(expression); Assert.IsNotNull(value); }
public void SerializeDeserializeBinaryTest() { foreach (var binSerializer in CreateBinarySerializers()) { var serializer = new ExpressionSerializer(binSerializer); foreach (var expected in SerializerTestData.TestExpressions) { var bytes = serializer.SerializeBinary(expected); this.TestContext.WriteLine("{0} serializes to bytes with length {1}", expected, bytes.Length); var actual = serializer.DeserializeBinary(bytes); if (expected == null) { Assert.IsNull(actual, "Input expression was null, but output is {0} for '{1}'", actual, binSerializer.GetType()); continue; } Assert.IsNotNull(actual, "Input expression was {0}, but output is null for '{1}'", expected, binSerializer.GetType()); ExpressionAssert.AreEqual(expected, actual); } } }
public void SerializeDeserializeArrayAsBinary() { var list = new[] { "one", "two" }; Expression<Func<Test, bool>> expression = test => list.Contains(test.Code); var serializer = new ExpressionSerializer(new BinarySerializer()); var value = serializer.SerializeBinary(expression); var actualExpression = (Expression<Func<Test, bool>>)serializer.DeserializeBinary(value); var func = actualExpression.Compile(); Assert.IsTrue(func(new Test { Code = "one" }), "one failed."); Assert.IsTrue(func(new Test { Code = "two" }), "two failed."); Assert.IsFalse(func(new Test { Code = "three" }), "three failed."); }
private static Expression SerializeDeserializeExpressionAsBinary(Expression expression, ISerializer serializer) { var expressionSerializer = new ExpressionSerializer(serializer); var serialized = expressionSerializer.SerializeBinary(expression); return expressionSerializer.DeserializeBinary(serialized); }
public void SerializeDeserializeBinaryComplexExpressionWithCompileTest() { foreach (var binSerializer in CreateBinarySerializers()) { var serializer = new ExpressionSerializer(binSerializer); var expected = (Expression<Func<Bar, bool>>)(p => p.LastName == "Miller" && p.FirstName.StartsWith("M")); expected.Compile(); var bytes = serializer.SerializeBinary(expected); this.TestContext.WriteLine("{0} serializes to bytes with length {1}", expected, bytes.Length); var actual = (Expression<Func<Bar, bool>>)serializer.DeserializeBinary(bytes); Assert.IsNotNull(actual, "Input expression was {0}, but output is null for '{1}'", expected, binSerializer.GetType()); ExpressionAssert.AreEqual(expected, actual); actual.Compile(); } }
private void SerializeDeserializeGuidValueAsBinary(ISerializer serializer) { var guidValue = Guid.NewGuid(); Expression<Func<Guid>> exp = () => guidValue; var expressionSerializer = new ExpressionSerializer(serializer); var serialized = expressionSerializer.SerializeBinary(exp); expressionSerializer.DeserializeBinary(serialized); }