public void roundtrip_Constant_string() { ConstantExpression expr = Expression.Constant("a"); var result = (ConstantExpression)SerializableExpression.ToExpression(SerializableExpression.FromExpression(expr, iftFactory)); AssertExpressions.AreEqual(result, expr); }
public void roundtrip_Constant_object() { ISomething value = new Something(); ConstantExpression expr = Expression.Constant(value); var result = (ConstantExpression)SerializableExpression.ToExpression(SerializableExpression.FromExpression(expr, iftFactory)); AssertExpressions.AreEqual(result, expr); }
public void roundtrip_Constant_interface() { ISomething value = new Something(); ConstantExpression expr = Expression.Constant(value, typeof(ISomething)); var result = (ConstantExpression)SerializableExpression.ToExpression(SerializableExpression.FromExpression(expr, iftFactory)); AssertExpressions.AreEqual(result, expr); Assert.That(result.Type, Is.EqualTo(typeof(ISomething))); }
public void roundtrip_MemberAccess_to_string_Length_property_should_optimize_constness() { string testString = "farglbl"; var objExpr = Expression.Constant(testString); MemberExpression expr = Expression.MakeMemberAccess(objExpr, typeof(string).GetMember("Length").First()); var result = SerializableExpression.ToExpression(SerializableExpression.FromExpression(expr, scope.Resolve <InterfaceType.Factory>())); AssertExpressions.AreEqual(result, Expression.Constant(testString.Length)); }
public IEnumerable <IDataObject> GetList(IZetboxContext ctx, InterfaceType ifType, int maxListCount, bool eagerLoadLists, IEnumerable <Expression> filter, IEnumerable <OrderBy> orderBy, out List <IStreamable> auxObjects) { int resultCount = 0; List <IStreamable> tmpAuxObjects = null; var _ifType = ifType.ToSerializableType(); var ticks = _perfCounter.IncrementGetList(ifType); try { var _filter = filter != null?filter.Select(f => SerializableExpression.FromExpression(f, _iftFactory)).ToArray() : null; var _orderBy = orderBy != null?orderBy.Select(o => new OrderByContract() { Type = o.Type, Expression = SerializableExpression.FromExpression(o.Expression, _iftFactory) }).ToArray() : null; byte[] bytes = null; MakeRequest(() => { bytes = _service.GetList( ZetboxGeneratedVersionAttribute.Current, _ifType, maxListCount, eagerLoadLists, _filter, _orderBy); }); Logging.Facade.DebugFormat("GetList retrieved: {0:n0} bytes", bytes.Length); IEnumerable <IDataObject> result = null; using (var sr = _readerFactory(new BinaryReader(new MemoryStream(bytes)))) { result = ReceiveObjects(ctx, sr, out tmpAuxObjects).Cast <IDataObject>(); } resultCount = result.Count(); auxObjects = tmpAuxObjects; return(result); } finally { _perfCounter.DecrementGetList(ifType, resultCount, ticks); } }
public void FromExpression_null_fails() { Assert.That(() => SerializableExpression.FromExpression(null, iftFactory), Throws.InstanceOf <ArgumentNullException>()); }