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(); }); } }
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 }