The orders may be indeterministic

On Tue, Oct 21, 2008 at 11:58 PM, Jason Meckley <[EMAIL PROTECTED]>wrote:

>
> I'm having a difficult time understanding page, specifically
> SetFirstResult() and SetMaxResults()
>
> from what I read on different posts SetFirstResult is the zero-based
> index of the record you want to start with. SetMaxResults is the
> number of records you want to return.
>
> if this is correct then why do tests:
> Should_get_foos_21_through_30
> Should_get_foos_31_through_40
> fail?
>
> //Foo has 1 property Id which is readonly. The id is assigned via
> ctor.
>
> namespace Paging.Spike.Core.Test
> {
>    [TestFixture]
>    public class PagingWithNhibernateSpec
>    {
>        private ISessionFactory factory;
>        private Configuration cfg;
>        private ISession session;
>        private const int PAGE_SIZE = 10;
>
>        [TestFixtureSetUp]
>        public void TestFixtureSetup()
>        {
>            cfg = new Configuration().Configure();
>            factory = cfg.BuildSessionFactory();
>        }
>
>        [TestFixtureTearDown]
>        public void TestFixtureTeardown()
>        {
>            factory.Dispose();
>        }
>
>        [SetUp]
>        public void SetUp()
>        {
>            session = factory.OpenSession();
>            new SchemaExport(cfg).Execute(false, true, false, true,
> session.Connection, null);
>            using(ITransaction transaction =
> session.BeginTransaction())
>            {
>                for (int i = 1; i <= 100; i++)
>                    session.Save(new Foo(i));
>                transaction.Commit();
>            }
>        }
>
>        [TearDown]
>        public void TearDown()
>        {
>            session.Dispose();
>        }
>
>        [Test]
>        public void Should_get_foos_01_through_10()
>        {
>            ValidateIdsStartingWithId(1,
> GetResultsStartingAtIndex(0));
>        }
>
>        [Test]
>        public void Should_get_foos_11_through_20()
>        {
>            ValidateIdsStartingWithId(11,
> GetResultsStartingAtIndex(10));
>        }
>
>        [Test]
>        public void Should_get_foos_21_through_30()
>        {
>            ValidateIdsStartingWithId(21,
> GetResultsStartingAtIndex(20));
>        }
>
>        [Test]
>        public void Should_get_foos_31_through_40()
>        {
>            ValidateIdsStartingWithId(31,
> GetResultsStartingAtIndex(30));
>        }
>
>        private IList<Foo> GetResultsStartingAtIndex(int firstResult)
>        {
>            return session
>                .CreateCriteria(typeof (Foo))
>                .SetFirstResult(firstResult)
>                .SetMaxResults(PAGE_SIZE)
>                .List<Foo>();
>        }
>
>        private static void ValidateIdsStartingWithId(int id,
> ICollection<Foo> foos)
>        {
>            foreach (Foo foo in foos)
>                Console.WriteLine(foo);
>
>            Assert.AreEqual(PAGE_SIZE, foos.Count);
>
>            foreach (Foo foo in foos)
>                Assert.AreEqual(id++, foo.Id);
>        }
>    }
> }
> >
>


-- 
Tuna Toksöz

Typos included to enhance the readers attention!

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to