Exemplo n.º 1
0
        public void ObjectPropertyMethodSerializeTest()
        {
            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria = (db, obj) => obj.Description.StartsWith("hello");
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);

            string propertyType        = "System.String";
            string methodResultType    = "System.Boolean";
            string methodObjectType    = "System.String";
            string methodParameterType = "System.String";
            string objectType          = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement body = new XElement("MethodCallExpression",
                                         new XAttribute("NodeType", "Call"),
                                         new XAttribute("CanReduce", "false"),
                                         SerializeTestHelper.GetTypeElement(methodResultType),
                                         SerializeTestHelper.GetSingleParameterMethod("StartsWith", methodObjectType, methodParameterType),
                                         new XElement("Object",
                                                      SerializeTestHelper.GetMemberExpression(objectType, "obj", propertyType, "Description")
                                                      ),
                                         new XElement("Arguments",
                                                      SerializeTestHelper.GetConstantExpression(methodParameterType, "hello")
                                                      )
                                         );

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
Exemplo n.º 2
0
        public void LessThanFunctionCallSerializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => obj < getSomeValue();
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);
            XElement           nominal            = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();

            XElement body = new XElement("BinaryExpression",
                                         new XAttribute("NodeType", "LessThan"),
                                         new XAttribute("CanReduce", "false"),
                                         new XAttribute("IsLifted", "false"),
                                         new XAttribute("IsLiftedToNull", "false"),
                                         SerializeTestHelper.GetTypeElement("System.Boolean"),
                                         new XElement("Right",
                                                      SerializeTestHelper.GetConstantExpression("System.Int32", "5")
                                                      ),
                                         new XElement("Left",
                                                      SerializeTestHelper.GetParameterExpression("System.Int32", "obj")
                                                      ),
                                         new XElement("Method"),
                                         new XElement("Conversion")
                                         );

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
Exemplo n.º 3
0
        public void ReturnFalseSerializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => false;
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);
            XElement           nominal            = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();

            XElement body = SerializeTestHelper.GetConstantExpression("System.Boolean", "False");

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
        public void ReturnTrueDeserializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => true;

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();
            XElement body    = SerializeTestHelper.GetConstantExpression("System.Boolean", "True");

            SerializeTestHelper.SetLambdaBody(nominal, body);

            CriteriaSerializer criteriaSerializer   = new CriteriaSerializer();
            Expression         deserializedCriteria = criteriaSerializer.Deserialize(nominal);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria, deserializedCriteria);
        }
Exemplo n.º 5
0
        public void ConvertToDoubleSerializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => obj / 2.0 < 5.2;
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);
            XElement           nominal            = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();

            XElement left = SerializeTestHelper.GetBinaryExpression("Divide",
                                                                    SerializeTestHelper.GetConstantExpression("System.Double", "2"),
                                                                    SerializeTestHelper.GetParameterConvertUnaryExpression("System.Double", "System.Int32", "obj"),
                                                                    "System.Double");
            XElement right = SerializeTestHelper.GetConstantExpression("System.Double", "5.2");
            XElement body  = SerializeTestHelper.GetBinaryExpression("LessThan", right, left);

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
Exemplo n.º 6
0
        public void ArithmeticXorSerializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => (obj ^ 2) < 5;
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);
            XElement           nominal            = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();

            XElement left = SerializeTestHelper.GetBinaryExpression("ExclusiveOr",
                                                                    SerializeTestHelper.GetConstantExpression("System.Int32", "2"),
                                                                    SerializeTestHelper.GetParameterExpression("System.Int32", "obj"),
                                                                    "System.Int32");
            XElement right = SerializeTestHelper.GetConstantExpression("System.Int32", "5");
            XElement body  = SerializeTestHelper.GetBinaryExpression("LessThan", right, left);

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
Exemplo n.º 7
0
        public void ObjectPropertyLessThanConstantSerializeTest()
        {
            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria = (db, obj) => obj.ItemCount < 3;
            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);

            string propertyType = "System.Int32";
            string objectType   = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement body = SerializeTestHelper.GetBinaryExpression("LessThan",
                                                                    SerializeTestHelper.GetConstantExpression("System.Int32", "3"),
                                                                    SerializeTestHelper.GetMemberExpression(objectType, "obj", propertyType, "ItemCount"));

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
Exemplo n.º 8
0
        public void NotEqualNullSerializeTest()
        {
            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria = (db, obj) => obj != null;

            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);

            string objectType = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement body = SerializeTestHelper.GetBinaryExpression("NotEqual",
                                                                    SerializeTestHelper.GetConstantExpression("System.Object", ""),
                                                                    SerializeTestHelper.GetParameterExpression(objectType, "obj"));

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
        public void ArithmeticOrDeserializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => (obj | 2) < 5;

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();
            XElement left    = SerializeTestHelper.GetBinaryExpression("Or",
                                                                       SerializeTestHelper.GetConstantExpression("System.Int32", "2"),
                                                                       SerializeTestHelper.GetParameterExpression("System.Int32", "obj"),
                                                                       "System.Int32");
            XElement right = SerializeTestHelper.GetConstantExpression("System.Int32", "5");
            XElement body  = SerializeTestHelper.GetBinaryExpression("LessThan", right, left);

            SerializeTestHelper.SetLambdaBody(nominal, body);

            CriteriaSerializer criteriaSerializer   = new CriteriaSerializer();
            Expression         deserializedCriteria = criteriaSerializer.Deserialize(nominal);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria, deserializedCriteria);
        }
Exemplo n.º 10
0
        public void ObjectNullablleIsNotNullSerializeTest()
        {
            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria = (db, obj) => obj.ItemCountNull != null;

            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();
            XElement           serialized         = criteriaSerializer.SerializeAsXElement(criteria);

            string   objectType   = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";
            string   propertyType = "System.Nullable`1|System.Int32";
            XElement nominal      = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement left  = SerializeTestHelper.GetMemberExpression(objectType, "obj", propertyType, "ItemCountNull");
            XElement right = SerializeTestHelper.GetConstantExpression(propertyType, "");

            XElement body = SerializeTestHelper.GetBinaryExpression("NotEqual", right, left);

            SerializeTestHelper.SetLifted(body, true, false);

            SerializeTestHelper.SetLambdaBody(nominal, body);
            SerializeTestHelper.CheckIfNominalAndSerializedAreEqual(nominal, serialized);
        }
        public void NotEqualNullDeserializeTest()
        {
            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria = (db, obj) => obj != null;

            string objectType = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";

            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement body = SerializeTestHelper.GetBinaryExpression("NotEqual",
                                                                    SerializeTestHelper.GetConstantExpression("System.Object", ""),
                                                                    SerializeTestHelper.GetParameterExpression(objectType, "obj"));

            SerializeTestHelper.SetLambdaBody(nominal, body);

            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();

            criteriaSerializer.RegisterAdditionalAssemblies(GetAdditionalAssemblies());
            Expression deserializedCriteria = criteriaSerializer.Deserialize(nominal);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria, deserializedCriteria);
        }
        public void MultipleDeserializeTest()
        {
            Expression <Func <SecurityDbContext, int, bool> > criteria = (db, obj) => obj < 5;
            XElement nominal = SerializeTestHelper.CreateBaseCriteriaXElementWithIntObj();

            XElement body = SerializeTestHelper.GetIntegerBinaryExpression("LessThan", "5");

            SerializeTestHelper.SetLambdaBody(nominal, body);

            CriteriaSerializer criteriaSerializer = new CriteriaSerializer();

            criteriaSerializer.RegisterAdditionalAssemblies(GetAdditionalAssemblies());

            Expression deserializedCriteria = criteriaSerializer.Deserialize(nominal);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria, deserializedCriteria);

            Expression <Func <SecurityDbContext, DbContextObject1, bool> > criteria2 = (db, obj) => obj.ItemCount < 3;

            string propertyType = "System.Int32";
            string objectType   = "DevExpress.EntityFramework.SecurityDataStore.Tests.DbContexts.DbContextObject1";

            XElement nominal2 = SerializeTestHelper.CreateBaseCriteriaXElement(objectType);

            XElement body2 = SerializeTestHelper.GetBinaryExpression("LessThan",
                                                                     SerializeTestHelper.GetConstantExpression("System.Int32", "3"),
                                                                     SerializeTestHelper.GetMemberExpression(objectType, "obj", propertyType, "ItemCount"));

            SerializeTestHelper.SetLambdaBody(nominal2, body2);

            Expression deserializedCriteria2 = criteriaSerializer.Deserialize(nominal2);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria2, deserializedCriteria2);

            SerializeTestHelper.CheckIfExpressionsAreEqual(criteria, deserializedCriteria);
        }