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)); }
/// <summary> /// Returns a list of objects from the datastore, matching the specified filters. /// </summary> /// <param name="version">Current version of generated Zetbox.Objects assembly</param> /// <param name="type">Type of Objects</param> /// <param name="maxListCount">Max. ammount of objects</param> /// <param name="eagerLoadLists">If true list properties will be eager loaded</param> /// <param name="filter">Serializable linq expression used a filter</param> /// <param name="orderBy">List of derializable linq expressions used as orderby</param> /// <returns>the found objects</returns> public byte[] GetList(Guid version, SerializableType type, int maxListCount, bool eagerLoadLists, SerializableExpression[] filter, OrderByContract[] orderBy) { using (Logging.Facade.DebugTraceMethodCallFormat("GetList", "type={0}", type)) { DebugLogIdentity(); try { if (type == null) { throw new ArgumentNullException("type"); } var ifType = _iftFactory(type.GetSystemType()); int resultCount = 0; var ticks = _perfCounter.IncrementGetList(ifType); try { using (IZetboxContext ctx = _ctxFactory()) { var filterExpresstions = filter != null?filter.Select(f => SerializableExpression.ToExpression(f)).ToList() : null; IEnumerable <IStreamable> lst = _sohFactory .GetServerObjectHandler(ifType) .GetList(version, ctx, maxListCount, filterExpresstions, orderBy != null ? orderBy.Select(o => new OrderBy(o.Type, SerializableExpression.ToExpression(o.Expression))).ToList() : null); resultCount = lst.Count(); return(SendObjects(lst, eagerLoadLists).ToArray()); } } finally { _perfCounter.DecrementGetList(ifType, resultCount, ticks); } } catch (Exception ex) { Helper.ThrowFaultException(ex); // Never called, Handle errors throws an Exception return(null); } } }
public void ToExpression_null_fails() { Assert.That(() => SerializableExpression.ToExpression(null), Throws.InstanceOf <ArgumentNullException>()); }