public void ReusabilityMechanismsCopy()
        {
            IDelayedFlowQuery <UserEntity> baseQuery = Session.DelayedFlowQuery <UserEntity>()
                                                       .Where(x => x.IsOnline)
                                                       .OrderBy(x => x.Username);

            FlowQuerySelection <UserEntity> onlineAdministrators = baseQuery
                                                                   .Copy()
                                                                   .Where(x => x.Role == RoleEnum.Administrator)
                                                                   .Select();

            FlowQuerySelection <UserEntity> onlineNonAdministrators = baseQuery
                                                                      .Copy()
                                                                      .Where(x => x.Role != RoleEnum.Administrator)
                                                                      .Select();

            Assert.That(onlineAdministrators.Count(), Is.EqualTo(2));
            Assert.That(onlineNonAdministrators.Count(), Is.EqualTo(1));
        }
        public virtual void TestDelayedCopy()
        {
            IDelayedFlowQuery <UserEntity> query1 = Query <UserEntity>()
                                                    .Delayed();

            IDelayedFlowQuery <UserEntity> query2 = query1.Copy()
                                                    .Where(x => x.IsOnline);

            FlowQuerySelection <UserEntity> users1 = query1.Select();

            FlowQuerySelection <UserEntity> users2 = query2.Select();

            Assert.That(users1.Count(), Is.EqualTo(4));
            Assert.That(users2.Count(), Is.EqualTo(3));
        }