public void CollectionSort()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.Age);

            int?oldAge = 0;

            foreach (AggregateTest agg in aggTestColl)
            {
                if (agg.Age.HasValue)
                {
                    Assert.IsTrue(oldAge <= agg.Age);
                    oldAge = agg.Age;
                }
            }

            aggTestColl.Filter = aggTestColl.AsQueryable().OrderByDescending(s => s.Age);

            oldAge = 1000;
            foreach (AggregateTest agg in aggTestColl)
            {
                if (agg.Age.HasValue)
                {
                    Assert.IsTrue(oldAge >= agg.Age);
                    oldAge = agg.Age;
                }
            }

            aggTestColl.Filter = null;

            bool sorted = true;

            oldAge = 0;
            foreach (AggregateTest agg in aggTestColl)
            {
                if (agg.Age.HasValue)
                {
                    if (!(oldAge <= agg.Age))
                    {
                        sorted = false;
                    }
                    oldAge = agg.Age;
                }
            }
            Assert.IsFalse(sorted);
        }
        public void TwoFilteredViewsOnFilteredCollection()
        {
            AggregateTestCollection collection = new AggregateTestCollection();

            collection.Query.Load();
            Assert.AreEqual(30, collection.Count);
            collection.Filter = collection.AsQueryable().Where(f => f.LastName == "Doe");
            Assert.AreEqual(3, collection.Count);

            esEntityCollectionView <AggregateTest> view1 =
                new esEntityCollectionView <AggregateTest>(collection);

            Assert.AreEqual(30, view1.Count);
            view1.Filter = view1.AsQueryable().Where(f => f.Age > 20);
            Assert.AreEqual(18, view1.Count);
            Assert.AreEqual(3, collection.Count);

            esEntityCollectionView <AggregateTest> view2 =
                new esEntityCollectionView <AggregateTest>(collection);

            Assert.AreEqual(30, view2.Count);
            view2.Filter = view2.AsQueryable().Where(f => f.FirstName == "John");
            Assert.AreEqual(2, view2.Count);
            Assert.AreEqual(18, view1.Count);
            Assert.AreEqual(3, collection.Count);
        }
        public void IterateSortedViewAndCollection()
        {
            AggregateTestCollection collection = new AggregateTestCollection();

            collection.Query.Load();
            collection.Filter = collection.AsQueryable().OrderBy(s => s.LastName);

            esEntityCollectionView <AggregateTest> view1 =
                new esEntityCollectionView <AggregateTest>(collection);

            view1.Filter = view1.AsQueryable().OrderByDescending(s => s.LastName);

            string prevName = collection[0].LastName;

            foreach (AggregateTest at in collection)
            {
                Assert.IsTrue(String.Compare(prevName, at.LastName) <= 0);
                prevName = at.LastName;
            }

            prevName = view1[0].LastName;
            foreach (AggregateTest at in view1)
            {
                Assert.IsTrue(String.Compare(prevName, at.LastName) >= 0);
                prevName = at.LastName;
            }
        }
        public void CollectionFilterDate()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.Id);

            AggregateTest entity = (AggregateTest)aggTestColl[5];

            aggTestColl.Filter = aggTestColl.AsQueryable().Where(f => f.HireDate > entity.HireDate);

            Assert.AreEqual(4, aggTestColl.Count);

            aggTestColl.Filter = null;
            Assert.AreEqual(30, aggTestColl.Count);
        }
        public void TestForEach()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            foreach (AggregateTest entity in aggTestColl)
            {
                entity.LastName = "E_" + entity.LastName;
            }
            aggTestColl.Filter = aggTestColl.AsQueryable().Where(f => f.LastName.Contains("E_"));
            Assert.AreEqual(30, aggTestColl.Count);
        }
Exemple #6
0
        public void TestDateInSelect()
        {
            AggregateTestCollection collection = new AggregateTestCollection();

            collection.Query.Select(collection.Query.HireDate.Date());
            string lq = collection.Query.Parse();

            collection.Query.Load();
            Assert.AreEqual(30, collection.Count);
            collection.Filter = collection.AsQueryable().Where(f => f.HireDate != null && f.HireDate.Value.ToShortDateString() == "2/16/2000");
            Assert.AreEqual(1, collection.Count);
        }
        public void CollectionFilter()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            Assert.AreEqual(30, aggTestColl.Count);
            aggTestColl.Filter = aggTestColl.AsQueryable().Where(f => f.LastName == "Doe");
            Assert.AreEqual(3, aggTestColl.Count);

            foreach (AggregateTest agg in aggTestColl)
            {
                Assert.AreEqual("Doe", agg.LastName);
            }

            aggTestColl.Filter = null;
            Assert.AreEqual(30, aggTestColl.Count);

            aggTestColl.Filter = aggTestColl.AsQueryable().Where(f => f.LastName == "x");
            Assert.AreEqual(0, aggTestColl.Count);
            aggTestColl.Filter = null;
            Assert.AreEqual(30, aggTestColl.Count);
        }
        public void FilteredDeleteAll()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            Assert.AreEqual(30, aggTestColl.Count);
            aggTestColl.Filter = aggTestColl.AsQueryable().Where(f => f.LastName == "Doe");
            Assert.AreEqual(3, aggTestColl.Count);

            aggTestColl.MarkAllAsDeleted();

            aggTestColl.Filter = null;
            Assert.AreEqual(27, aggTestColl.Count);
        }
        public void ViewOnFilteredCollection()
        {
            AggregateTestCollection collection = new AggregateTestCollection();

            collection.Query.Load();
            Assert.AreEqual(30, collection.Count);
            collection.Filter = collection.AsQueryable().Where(f => f.LastName == "Doe");
            Assert.AreEqual(3, collection.Count);

            esEntityCollectionView <AggregateTest> view1 =
                new esEntityCollectionView <AggregateTest>(collection);

            Assert.AreEqual(30, view1.Count);
            Assert.AreEqual(3, collection.Count);
        }
Exemple #10
0
        public void TestCoalesceInSelect()
        {
            AggregateTestCollection collection = new AggregateTestCollection();

            if (collection.es.Connection.ProviderMetadataKey != "esAccess")
            {
                collection.Query.Select(collection.Query.LastName.Coalesce("'x'"));
                collection.Query.Load();
                collection.Filter = collection.AsQueryable().Where(f => f.LastName == "x");
                Assert.AreEqual(6, collection.Count);
            }
            else
            {
                Assert.Ignore("Not supported.");
            }
        }
        public void CollectionSortDate()
        {
            AggregateTestCollection aggTestColl = new AggregateTestCollection();

            aggTestColl.LoadAll();
            aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.HireDate);

            DateTime?oldDate = Convert.ToDateTime("01/01/0001");

            foreach (AggregateTest agg in aggTestColl)
            {
                if (agg.HireDate.HasValue)
                {
                    Assert.IsTrue(oldDate <= agg.HireDate);
                    oldDate = agg.HireDate;
                }
            }
        }
        public void TestDateTime()
        {
            int testId = -1;
            AggregateTestCollection aggTestColl = new AggregateTestCollection();
            AggregateTest           test        = new AggregateTest();

            try
            {
                using (EntitySpaces.Interfaces.esTransactionScope scope =
                           new EntitySpaces.Interfaces.esTransactionScope())
                {
                    aggTestColl.Query.Load();
                    aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.Id);
                    test = (AggregateTest)aggTestColl[0];
                    DateTime date = test.HireDate.Value;
                    Assert.AreEqual(Convert.ToDateTime("02/16/2000 05:59:31"), date);

                    test          = new AggregateTest();
                    test.HireDate = Convert.ToDateTime("12/31/9999");
                    test.Save();
                    testId = test.Id.Value;

                    test = new AggregateTest();
                    Assert.IsTrue(test.LoadByPrimaryKey(testId));
                    Assert.AreEqual(Convert.ToDateTime("12/31/9999"), test.HireDate.Value);
                    test.MarkAsDeleted();
                    test.Save();
                }
            }
            finally
            {
                // Clean up
                test = new AggregateTest();
                if (test.LoadByPrimaryKey(testId))
                {
                    test.MarkAsDeleted();
                    test.Save();
                }
            }
        }
        public void CollectionChangesBinary()
        {
            if (aggTestColl.es.Connection.Name == "SqlCe")
            {
                Assert.Ignore("Not tested for SqlCe.");
            }
            else
            {
                aggTestColl.LoadAll();
                Assert.AreEqual(30, aggTestColl.Count, "Old");
                aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.Id);

                aggTestColl[0].MarkAsDeleted();
                foreach (AggregateTest entity in aggTestColl)
                {
                    if (entity.LastName == "Doe")
                    {
                        entity.LastName = "Changed";
                    }
                }
                aggTest          = aggTestColl.AddNew();
                aggTest.LastName = "New";

                int rowCount = 0;
                foreach (AggregateTest r in aggTestColl)
                {
                    if (r.es.IsAdded || r.es.IsModified)
                    {
                        rowCount++;
                    }
                }
                foreach (AggregateTest r in aggTestColl.es.DeletedEntities)
                {
                    rowCount++;
                }
                //aggTestColl.RowStateFilter = DataViewRowState.ModifiedCurrent |
                //    DataViewRowState.Deleted |
                //    DataViewRowState.Added;

                Assert.AreEqual(4, rowCount, "OldFiltered");

                BinaryFormatter bf = new BinaryFormatter();
                MemoryStream    ms = new MemoryStream();
                bf.Serialize(ms, aggTestColl);

                ms.Position  = 0;
                aggCloneColl = (AggregateTestCollection)bf.Deserialize(ms);
                ms.Close();

                Assert.AreEqual(30, aggCloneColl.Count, "New");

                rowCount = 0;
                foreach (AggregateTest r in aggTestColl)
                {
                    if (r.es.IsAdded || r.es.IsModified)
                    {
                        rowCount++;
                    }
                }
                foreach (AggregateTest r in aggTestColl.es.DeletedEntities)
                {
                    rowCount++;
                }
                //aggCloneColl.RowStateFilter = DataViewRowState.ModifiedCurrent |
                //    DataViewRowState.Deleted |
                //    DataViewRowState.Added;

                Assert.AreEqual(4, rowCount, "NewFiltered");
            }
        }