Esempio n. 1
0
        public void DoubleParentCondition()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Parent.Id", Expression.Equal, 3), new Condition("Parent.ObjData", Expression.Equal, "A"));

            ServerObjectCollection objects = transaction.Select(typeof(IdentityChildTestObject), query);

            Assert.AreEqual(2, objects.Count);

            IdentityChildTestObject obj1 = objects[0] as IdentityChildTestObject;

            Assert.AreEqual(1, obj1.Id);
            Assert.AreEqual("A", obj1.ObjData);
            Assert.AreEqual(3, obj1.Parent.Id);
            Assert.AreEqual("A", obj1.Parent.ObjData);
            Assert.AreEqual(2, obj1.Parent.ChildObjects.Count);

            IdentityChildTestObject obj2 = objects[1] as IdentityChildTestObject;

            Assert.AreEqual(2, obj2.Id);
            Assert.AreEqual("B", obj2.ObjData);
            Assert.AreEqual(3, obj2.Parent.Id);
            Assert.AreEqual("A", obj2.Parent.ObjData);
            Assert.AreEqual(2, obj2.Parent.ChildObjects.Count);
        }
Esempio n. 2
0
        public void SingleNotEqualsCondition()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Boolean", Expression.NotEqual, false));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(2, objects.Count);

            SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject;

            Assert.AreEqual(2, object1.Id);
            Assert.AreEqual("GHT", object1.Varchar);
            Assert.AreEqual(5, object1.Integer);
            Assert.AreEqual(true, object1.Boolean);
            Assert.AreEqual(new DateTime(1945, 8, 1), object1.Date);
            Assert.AreEqual(2, object1.NullableInteger);

            SimpleConstraintTestObject object2 = objects[1] as SimpleConstraintTestObject;

            Assert.AreEqual(4, object2.Id);
            Assert.AreEqual("kp", object2.Varchar);
            Assert.AreEqual(100, object2.Integer);
            Assert.AreEqual(true, object2.Boolean);
            Assert.AreEqual(new DateTime(2004, 10, 1), object2.Date);
            Assert.AreEqual(-1, object2.NullableInteger);
        }
Esempio n. 3
0
        public void QueryUsedTwice()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new LiteralCondition("Parent.ObjData", " + 'X' = 'AX'"));

            query.Order = "Parent.ObjData";

            ServerObjectCollection objects1 = transaction.Select(typeof(IdentityChildTestObject), query);
            ServerObjectCollection objects2 = transaction.Select(typeof(IdentityChildTestObject), query);

            Assert.AreEqual(2, objects1.Count);
            Assert.AreEqual(2, objects2.Count);

            IdentityChildTestObject obj1 = objects1[0] as IdentityChildTestObject;

            Assert.AreEqual(1, obj1.Id);
            Assert.AreEqual("A", obj1.ObjData);
            Assert.AreEqual(3, obj1.Parent.Id);
            Assert.AreEqual("A", obj1.Parent.ObjData);
            Assert.AreEqual(2, obj1.Parent.ChildObjects.Count);

            IdentityChildTestObject obj2 = objects2[0] as IdentityChildTestObject;

            Assert.AreEqual(1, obj2.Id);
            Assert.AreEqual("A", obj2.ObjData);
            Assert.AreEqual(3, obj2.Parent.Id);
            Assert.AreEqual("A", obj2.Parent.ObjData);
            Assert.AreEqual(2, obj2.Parent.ChildObjects.Count);
        }
Esempio n. 4
0
        public void SelectRecipesWithNoOccasions()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new NotCondition(new SetCondition("OccasionMaps")));

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);

            Assert.AreEqual(49, recipes.Count);
        }
Esempio n. 5
0
        public void MultipleSetConditions()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new SetCondition("ChildObjects", new Condition("ObjData", Expression.Equal, "A"), new Condition("ObjData", Expression.Equal, "X")));

            ServerObjectCollection objects = transaction.Select(typeof(IdentityParentTestObject), query);

            Assert.AreEqual(0, objects.Count);
        }
Esempio n. 6
0
        public void EmptyConditions()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new SetCondition("ChildObjects"));

            ServerObjectCollection objects = transaction.Select(typeof(IdentityParentTestObject), query);

            Assert.AreEqual(1, objects.Count);
        }
Esempio n. 7
0
        public void AndParents()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new ConditionGroup(ConditionGroupType.And, new Condition("Parent.Id", Expression.Equal, 3), new Condition("ObjData", Expression.NotEqual, "A")));

            ServerObjectCollection objects = transaction.Select(typeof(IdentityChildTestObject), query);

            Assert.AreEqual(1, objects.Count);
        }
        public void ParentOrder()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query();

            query.Order = "Author.firstname";

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);
        }
Esempio n. 9
0
        public void SelectAll()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query();

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(4, objects.Count);
        }
Esempio n. 10
0
        public void Literal()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new LiteralCondition("Integer", " + 1 = 7"));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(1, objects.Count);
        }
Esempio n. 11
0
        public void In()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Integer", Expression.In, 5, 100));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(2, objects.Count);
        }
Esempio n. 12
0
        public void And()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new ConditionGroup(ConditionGroupType.And, new Condition("Boolean", Expression.Equal, true), new Condition("Boolean", Expression.Equal, false)));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(0, objects.Count);
        }
Esempio n. 13
0
        public void SelectChelseaRecipes()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Author", Expression.IsNull));

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);

            Assert.AreEqual(218, recipes.Count);
        }
Esempio n. 14
0
        public void SelectValentines()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Occasion valentines = transaction.Select(typeof(Occasion), 11) as Occasion;

            Query query = new Query(new SetCondition("OccasionMaps", new Condition("Occasion", Expression.Equal, valentines.Id)));

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);

            Assert.AreEqual(23, recipes.Count);
        }
Esempio n. 15
0
        public void SelectCakes()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Category", Expression.Equal, 1));

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);

            Recipe recipe = recipes[0] as Recipe;

            Assert.AreEqual(454, recipe.Id);

            Assert.AreEqual(84, recipes.Count);
        }
Esempio n. 16
0
        public void DoubleEqualsCondition()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Boolean", Expression.Equal, true), new Condition("Id", Expression.Equal, 4));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(1, objects.Count);

            SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject;

            Assert.AreEqual(4, object1.Id);
            Assert.AreEqual("kp", object1.Varchar);
            Assert.AreEqual(100, object1.Integer);
            Assert.AreEqual(true, object1.Boolean);
            Assert.AreEqual(new DateTime(2004, 10, 1), object1.Date);
            Assert.AreEqual(-1, object1.NullableInteger);
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            ObjectManager sql = new ObjectManager(ServerType.SqlServer, @"Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=Chelsea; Data Source=Azrael;");

            ObjectTransaction transaction = sql.BeginTransaction();

            Query query = new Query(
                new Condition("Author.Id", Expression.IsNotNull)
                );

            query.Order = "Author.firstname";

            ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query);

            foreach (Recipe recipe in recipes)
            {
                Console.WriteLine("{0} - {1}", recipe.Author.Firstname, recipe.Name);
            }
        }
Esempio n. 18
0
        public void SingleNotLikeAndGreaterThanCondition()
        {
            ObjectTransaction transaction = manager.BeginTransaction();

            Query query = new Query(new Condition("Varchar", Expression.NotLike, "k%"), new Condition("Integer", Expression.GreaterThan, 5));

            ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query);

            Assert.AreEqual(1, objects.Count);

            SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject;

            Assert.AreEqual(1, object1.Id);
            Assert.AreEqual("AX", object1.Varchar);
            Assert.AreEqual(6, object1.Integer);
            Assert.AreEqual(false, object1.Boolean);
            Assert.AreEqual(new DateTime(1981, 7, 11), object1.Date);
            Assert.AreEqual(1, object1.NullableInteger);
        }
Esempio n. 19
0
        public static ServerObjectCollection ToCollection(Type type, IDataReader reader)
        {
            Trace.WriteLineIf(DebugOutput.Enabled, "Creating Collection");
            ServerObjectCollection collection = new ServerObjectCollection();
            TypeSchema             schema     = SchemaCache.Current.GetSchema(type);

            while (reader.Read())
            {
                Trace.WriteLineIf(DebugOutput.Enabled, "Creating object of type " + type.FullName);
                ServerObject obj = Activator.CreateInstance(schema.Proxy) as ServerObject;

                foreach (PropertySchema propertySchema in schema.PropertySchemas)
                {
                    if (Convert.IsDBNull(reader[propertySchema.ColumnName]))
                    {
                        if (propertySchema.CanBeNull)
                        {
                            Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to NullValue", propertySchema.Property.Name));
                            obj.Data.SetValue(propertySchema.Property.Name, propertySchema.NullValue);
                        }
                        else
                        {
                            throw new ObjectServerException(String.Format(CultureInfo.CurrentCulture, "{0}.{1} has a null value from the database and CanBeNull is false", obj.ServerObjectType.FullName, propertySchema.Property.Name));
                        }
                    }
                    else
                    {
                        Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to {1}", propertySchema.Property.Name, reader[propertySchema.ColumnName]));
                        obj.Data.SetValue(propertySchema.Property.Name, reader[propertySchema.ColumnName]);
                    }
                }

                foreach (ParentSchema parentSchema in schema.ParentSchemas)
                {
                    if (Convert.IsDBNull(reader[parentSchema.ColumnName]))
                    {
                        if (parentSchema.CanBeNull)
                        {
                            Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to DBNull.Value", parentSchema.Property.Name));
                            obj.Data.SetValue(parentSchema.Property.Name, DBNull.Value);
                        }
                        else
                        {
                            throw new ObjectServerException(String.Format(CultureInfo.CurrentCulture, "{0}.{1} has a null value from the database and CanBeNull is false", obj.ServerObjectType.FullName, parentSchema.Property.Name));
                        }
                    }
                    else
                    {
                        Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to {1}", parentSchema.Property.Name, reader[parentSchema.ColumnName]));
                        obj.Data.SetValue(parentSchema.Property.Name, reader[parentSchema.ColumnName]);
                    }
                }


                collection.Add(obj);
            }

            reader.Close();

            return(collection);
        }