Exemplo n.º 1
0
        public void TestCursor()
        {
            Cache().Put(1, new QueryPerson("Ivanov", 30));
            Cache().Put(1, new QueryPerson("Petrov", 40));
            Cache().Put(1, new QueryPerson("Sidorov", 50));

            SqlQuery qry = new SqlQuery(typeof(QueryPerson), "age >= 20");

            // 1. Test GetAll().
            using (IQueryCursor <ICacheEntry <int, QueryPerson> > cursor = Cache().Query(qry))
            {
                cursor.GetAll();

                Assert.Throws <InvalidOperationException>(() => { cursor.GetAll(); });
                Assert.Throws <InvalidOperationException>(() => { cursor.GetEnumerator(); });
            }

            // 2. Test GetEnumerator.
            using (IQueryCursor <ICacheEntry <int, QueryPerson> > cursor = Cache().Query(qry))
            {
                cursor.GetEnumerator();

                Assert.Throws <InvalidOperationException>(() => { cursor.GetAll(); });
                Assert.Throws <InvalidOperationException>(() => { cursor.GetEnumerator(); });
            }
        }
Exemplo n.º 2
0
        public void TestEnumerator()
        {
#pragma warning disable 618
            Cache().Put(1, new QueryPerson("Ivanov", 30));
            Cache().Put(2, new QueryPerson("Petrov", 40));
            Cache().Put(3, new QueryPerson("Sidorov", 50));
            Cache().Put(4, new QueryPerson("Unknown", 60));

            // 1. Empty result set.
            using (IQueryCursor <ICacheEntry <int, QueryPerson> > cursor =
                       Cache().Query(new SqlQuery(typeof(QueryPerson), "age = 100")))
            {
                IEnumerator <ICacheEntry <int, QueryPerson> > e = cursor.GetEnumerator();

                Assert.Throws <InvalidOperationException>(() =>
                                                          { ICacheEntry <int, QueryPerson> entry = e.Current; });

                Assert.IsFalse(e.MoveNext());

                Assert.Throws <InvalidOperationException>(() =>
                                                          { ICacheEntry <int, QueryPerson> entry = e.Current; });

                Assert.Throws <NotSupportedException>(() => e.Reset());

                e.Dispose();
            }

            SqlQuery qry = new SqlQuery(typeof(QueryPerson), "age < 60");

            Assert.AreEqual(QueryBase.DefaultPageSize, qry.PageSize);

            // 2. Page size is bigger than result set.
            qry.PageSize = 4;
            CheckEnumeratorQuery(qry);

            // 3. Page size equal to result set.
            qry.PageSize = 3;
            CheckEnumeratorQuery(qry);

            // 4. Page size if less than result set.
            qry.PageSize = 2;
            CheckEnumeratorQuery(qry);
#pragma warning restore 618
        }