Example #1
0
        public void TestSelectWithAnonymous()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Name = i.ToString();
                c.Age  = i;
                if (i % 3 == 0)
                {
                    c.TEnum = TestEnum.Doi;
                }
                else
                {
                    c.TEnum = TestEnum.Trei;
                }
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();
            var query = from CustomerLite c in nop
                        where c.Age < 3
                        select new { c.Age, c.Name };

            int k = 0;

            foreach (var s in query)
            {
            }
        }
Example #2
0
        public async Task SelectWhereUnaryOperator()
        {
            Siaqodb nop = new Siaqodb(); await nop.OpenAsync(dbFolder);

            await nop.DropTypeAsync <CustomerLite>();

            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                c.Active = false;
                listInitial.Add(c);
                await nop.StoreObjectAsync(c);
            }
            await nop.FlushAsync();

            //run unoptimized
            var query = await(from CustomerLite c in nop
                              where c.Age > 5 && !c.Active
                              select new { c.Name, c.Age }).ToListAsync();
            int k = 0;

            Assert.AreEqual(4, query.Count);
        }
Example #3
0
        public void SelectWhereUnaryOperator()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                c.Active = false;
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();

            //run unoptimized
            var query = (from CustomerLite c in nop
                         where c.Age > 5 && !c.Active
                         select c).ToList();
            int k = 0;

            Assert.AreEqual(4, query.Count);
        }
Example #4
0
        public void SelectWhereMinus()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                c.Active = false;
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();


            var query = (from CustomerLite c in nop
                         where c.Age + 2 > 0
                         select new { c.Name, c.Age }).ToList();
            int k = 0;

            Assert.AreEqual(3, query.Count);
        }
Example #5
0
        public async Task SelectWhereUsingAutomaticProperties()
        {
            Siaqodb nop = new Siaqodb(); await nop.OpenAsync(dbFolder);

            await nop.DropTypeAsync <CustomerLite>();

            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                listInitial.Add(c);
                await nop.StoreObjectAsync(c);
            }
            await nop.FlushAsync();

            var query = await(from CustomerLite c in nop
                              where c.Age < 3
                              select c).ToListAsync();

            int k = 0;

            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].Age, s.Age);
                k++;
            }
            Assert.AreEqual(3, k);

            query = await(from CustomerLite c in nop
                          where c.Active == true
                          select c).ToListAsync();
            k = 0;
            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].Age, s.Age);
                k++;
            }
            Assert.AreEqual(10, k);
        }
Example #6
0
        public void SelectWhereUsingAutomaticProperties()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();
            var query = from CustomerLite c in nop
                        where c.Age < 3
                        select c;

            int k = 0;

            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].Age, s.Age);
                k++;
            }
            Assert.AreEqual(3, k);

            query = from CustomerLite c in nop
                    where c.Active == true
                    select c;

            k = 0;
            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].Age, s.Age);
                k++;
            }
            Assert.AreEqual(10, k);
        }
Example #7
0
        public void SimpleJoinWithEnum()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            nop.DropType <EmployeeLite>();
            List <string> s = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();

                if (i % 2 == 0)
                {
                    c.TEnum = TestEnum.Unu;
                }
                else
                {
                    c.TEnum = TestEnum.Doi;
                }
                ///listInitial.Add(c);
                nop.StoreObject(c);
            }
            List <EmployeeLite> listInitialEmp = new List <EmployeeLite>();

            for (int j = 0; j < 3; j++)
            {
                EmployeeLite emp = new EmployeeLite();
                emp.EmpEnum = TestEnum.Doi;
                emp.Name    = "Employee" + j.ToString();
                emp.ID      = j;
                listInitialEmp.Add(emp);
                nop.StoreObject(emp);
            }
            nop.Flush();
            var query = (from CustomerLite c in nop

                         join EmployeeLite emp in nop
                         on c.TEnum equals emp.EmpEnum

                         select new { CName = c.Name, EName = emp.Name }).ToList();

            Assert.AreEqual(15, query.Count);
            Assert.AreEqual(listInitialEmp[1].Name, query[1].EName);
        }
Example #8
0
        public async Task SelectWhereMinus()
        {
            bool exTh = false;

            try
            {
                Siaqodb nop = new Siaqodb(); await nop.OpenAsync(dbFolder);

                await nop.DropTypeAsync <CustomerLite>();

                List <CustomerLite> listInitial = new List <CustomerLite>();
                for (int i = 0; i < 10; i++)
                {
                    CustomerLite c = new CustomerLite();
                    c.Age = i;
                    if (i % 2 == 0)
                    {
                        c.Name = i.ToString() + "TEST";
                    }
                    else
                    {
                        c.Name = "Siaqo" + i.ToString();
                    }
                    c.Active = false;
                    listInitial.Add(c);
                    await nop.StoreObjectAsync(c);
                }
                await nop.FlushAsync();


                var query = await(from CustomerLite c in nop
                                  where c.Age + 2 > 0
                                  select new { c.Name, c.Age }).ToListAsync();
                int k = 0;

                Assert.AreEqual(3, query.Count);
            }
            catch (NotSupportedException ex)
            {
                exTh = true;
            }
            Assert.IsTrue(exTh);
        }
Example #9
0
        public async Task SelectWhereBooleanAlone()
        {
            Siaqodb nop = new Siaqodb(); await nop.OpenAsync(dbFolder);

            await nop.DropTypeAsync <CustomerLite>();

            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                //c.Active = true;
                listInitial.Add(c);
                await nop.StoreObjectAsync(c);
            }
            await nop.FlushAsync();

            //run optimized
            var query = await(from CustomerLite c in nop
                              where c.Active
                              select c).ToListAsync();
            int k = 0;

            Assert.AreEqual(10, query.Count);

            //need some more tests here
            var query1 = await(from CustomerLite c in nop
                               where c.Age > 5 && c.Active
                               select c).ToListAsync();


            Assert.AreEqual(4, query1.Count);
        }
Example #10
0
        public void SelectWhereBooleanAlone()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "Siaqo" + i.ToString();
                }
                //c.Active = true;
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();

            //run optimized
            var query = (from CustomerLite c in nop
                         where c.Active
                         select c).ToList();
            int k = 0;

            Assert.AreEqual(10, query.Count);

            //need some more tests here
            var query1 = (from CustomerLite c in nop
                          where c.Age > 5 && c.Active
                          select new { c.Name, c.Age }).ToList();


            Assert.AreEqual(4, query1.Count);
        }
Example #11
0
        public async Task SelectWhereUsingEnum()
        {
            Siaqodb nop = new Siaqodb(); await nop.OpenAsync(dbFolder);

            await nop.DropTypeAsync <CustomerLite>();

            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Name = i.ToString();
                c.Age  = i;
                if (i % 3 == 0)
                {
                    c.TEnum = TestEnum.Doi;
                }
                else
                {
                    c.TEnum = TestEnum.Trei;
                }
                listInitial.Add(c);
                await nop.StoreObjectAsync(c);
            }
            await nop.FlushAsync();

            var query = await(from CustomerLite c in nop
                              where c.Age < 3
                              select c).ToListAsync();

            int k = 0;

            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].TEnum, s.TEnum);
                k++;
            }
            Assert.AreEqual(3, k);
        }
Example #12
0
        public void SelectWhereUsingEnum()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 10; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Name = i.ToString();
                c.Age  = i;
                if (i % 3 == 0)
                {
                    c.TEnum = TestEnum.Doi;
                }
                else
                {
                    c.TEnum = TestEnum.Trei;
                }
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            nop.Flush();
            var query = from CustomerLite c in nop
                        where c.Age < 3
                        select c;

            int k = 0;

            foreach (var s in query)
            {
                Assert.AreEqual(listInitial[k].Name, s.Name);
                Assert.AreEqual(listInitial[k].TEnum, s.TEnum);
                k++;
            }
            Assert.AreEqual(3, k);
        }
Example #13
0
        public void SimpleJoinWithAutomaticProperties()
        {
            Siaqodb nop = new Siaqodb(objPath);

            nop.DropType <CustomerLite>();
            nop.DropType <Employee>();

            List <CustomerLite> listInitial = new List <CustomerLite>();

            for (int i = 0; i < 20; i++)
            {
                CustomerLite c = new CustomerLite();
                c.Age = i;
                if (i % 2 == 0)
                {
                    c.Name = i.ToString() + "TEST";
                }
                else
                {
                    c.Name = "ADH" + i.ToString();
                }
                listInitial.Add(c);
                nop.StoreObject(c);
            }
            List <Employee> listInitialEmp = new List <Employee>();

            for (int j = 0; j < 10; j++)
            {
                Employee emp = new Employee();
                emp.CustomerID = j;
                emp.Name       = "Employee" + j.ToString();
                emp.ID         = j;
                listInitialEmp.Add(emp);
                nop.StoreObject(emp);
            }
            nop.Flush();

            var query = (from CustomerLite c in nop
                         where c.Age < 3
                         join Employee emp in nop
                         on c.Age equals emp.CustomerID

                         select new EmpCustAnonym {
                CName = c.Name, EName = emp.Name
            }).ToList();

            Assert.AreEqual(3, query.Count);
            Assert.AreEqual(listInitial[0].Name, query[0].CName);
            Assert.AreEqual(listInitialEmp[0].Name, query[0].EName);

            var query1 = (from CustomerLite c in nop
                          where c.Age < 3
                          join Employee emp in nop
                          on c.Age equals emp.CustomerID

                          select new EmpCustOID {
                CName = c.Name, EName = emp.Name, EOID = emp.OID
            }).ToList();

            Assert.AreEqual(3, query1.Count);
            Assert.AreEqual(listInitial[0].Name, query1[0].CName);
            Assert.AreEqual(listInitialEmp[0].Name, query1[0].EName);
        }