public void DefinitionExample1()
        {
            IDelayedFlowQuery <UserEntity> query = Session.FlowQuery <UserEntity>()
                                                   .Delayed()
                                                   .Where(x => x.IsOnline);

            Lazy <int> count = query.Count();

            FlowQuerySelection <UserEntity> users = query
                                                    .Take(10)
                                                    .Select();

            var sessionImpl = (ISessionImplementor)Session;

            Assert.That(sessionImpl, Is.Not.Null);

            int queryCount = 0;

            Assert.That(() => queryCount = sessionImpl.FutureCriteriaBatch.Results.Count, Throws.Nothing);

            Assert.That(queryCount, Is.EqualTo(2));

            Assert.That(count.Value, Is.EqualTo(3));
            Assert.That(users.Count(), Is.EqualTo(3));
        }
        public void CanCreateStatelessDelayedFlowQueryWithOptions()
        {
            Assert.That(() => StatelessSession.DelayedFlowQuery <UserEntity>(new FlowQueryOptions()), Throws.Nothing);

            IDelayedFlowQuery <UserEntity> query = StatelessSession.DelayedFlowQuery <UserEntity>(new FlowQueryOptions());

            Assert.That(query != null);
        }
        public void CanCreateDelayedStatelessFlowQuery()
        {
            Assert.That(() => StatelessSession.DelayedFlowQuery <UserEntity>(), Throws.Nothing);

            IDelayedFlowQuery <UserEntity> query = StatelessSession.DelayedFlowQuery <UserEntity>();

            Assert.That(query != null);
        }
Ejemplo n.º 4
0
        public void CanCreateDelayedFlowQueryWithAliasAndOptions()
        {
            UserEntity user = null;

            IDelayedFlowQuery <UserEntity> q = Session.DelayedFlowQuery(() => user, new FlowQueryOptions());

            Assert.That(q, Is.Not.Null);
        }
Ejemplo n.º 5
0
        public void CanMorphImmediateToDelayed()
        {
            IImmediateFlowQuery <UserEntity> query = DummyQuery <UserEntity>();

            Assert.That(query, Is.Not.Null);

            IDelayedFlowQuery <UserEntity> morphed = query
                                                     .Delayed();

            Assert.That(morphed, Is.Not.Null);
        }
Ejemplo n.º 6
0
        public void CanMorphDelayedToStreamed()
        {
            IDelayedFlowQuery <UserEntity> query = DummyQuery <UserEntity>()
                                                   .Delayed();

            Assert.That(query, Is.Not.Null);

            IStreamedFlowQuery <UserEntity> morphed = query
                                                      .Streamed();

            Assert.That(morphed, Is.Not.Null);
        }
Ejemplo n.º 7
0
        public void CanCreateDelayedFlowQueryWithOptions()
        {
            FlowQueryOptions options = new FlowQueryOptions()
                                       .Add(c => c.SetMaxResults(5));

            IDelayedFlowQuery <UserEntity> q = Session.DelayedFlowQuery <UserEntity>(options);

            Assert.That(q, Is.Not.Null);

            ICriteria criteria = new CriteriaBuilder()
                                 .Build <UserEntity, UserEntity>(QuerySelection.Create(q as IQueryableFlowQuery));

            Assert.That(criteria.GetRootEntityTypeIfAvailable(), Is.EqualTo(typeof(UserEntity)));
        }
        public void CanCreateStatelessDelayedFlowQueryWithAlias()
        {
            UserEntity alias = null;

            Assert.That(() => StatelessSession.DelayedFlowQuery(() => alias), Throws.Nothing);

            IDelayedFlowQuery <UserEntity> query = StatelessSession.DelayedFlowQuery(() => alias);

            Assert.That(query != null);

            ICriteria criteria = new CriteriaBuilder()
                                 .Build <UserEntity, UserEntity>(QuerySelection.Create(query as IQueryableFlowQuery));

            Assert.That(criteria.Alias, Is.EqualTo("alias"));
        }
Ejemplo n.º 9
0
        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));
        }
        public void ReusabilityMechanismsClearRestrictions()
        {
            IDelayedFlowQuery <UserEntity> query = Session.DelayedFlowQuery <UserEntity>()
                                                   .OrderBy(x => x.Username);

            FlowQuerySelection <UserEntity> onlineAdministrators = query
                                                                   .Where(x => x.IsOnline && x.Role == RoleEnum.Administrator)
                                                                   .Select();

            FlowQuerySelection <UserEntity> onlineNonAdministrators = query
                                                                      .ClearRestrictions()
                                                                      .Where(x => x.IsOnline && x.Role != RoleEnum.Administrator)
                                                                      .Select();

            Assert.That(onlineAdministrators.Count(), Is.EqualTo(2));
            Assert.That(onlineNonAdministrators.Count(), Is.EqualTo(1));
        }
Ejemplo n.º 11
0
        public void TransformingTrulyDetachedQueryToDelayedDoesNotThrowWhenProvidingStatelessSession()
        {
            var query = new DummyDetachedQuery();

            Assert.That(query.CriteriaFactory, Is.Null);

            IDelayedFlowQuery <UserEntity> delayed = null;

            Assert.That(() => delayed = query.Delayed(StatelessSession), Throws.Nothing);

            Assert.That(delayed, Is.Not.Null);

            var queryInfo = delayed as IFlowQuery;

            if (queryInfo == null)
            {
                Assert.Fail("queryInfo was null");
            }
            else
            {
                Assert.That(queryInfo.CriteriaFactory, Is.Not.Null);
            }
        }
        public void Given_DelayedQueryWithModelBasedOrders_When_LaterUsedAsSubquery_IsSortedByAppropriateSourceProjection()
        {
            IDelayedFlowQuery <UserEntity> query = Query <UserEntity>()
                                                   .OrderBy <UserDto>(x => x.SomeValue)
                                                   .Delayed();

            FlowQuerySelection <UserDto> allUsers = query
                                                    .Select(Projection);

            IDetachedFlowQuery <UserEntity> subquery = query
                                                       .Detached()
                                                       .Limit(2, 1)
                                                       .Select(x => x.Id);

            FlowQuerySelection <UserDto> subsetOfUsers = Query <UserEntity>()
                                                         .Delayed()
                                                         .Where(x => x.Id, NHibernate.FlowQuery.Is.In(subquery))
                                                         .Select(Projection);

            Assert.That(allUsers.Count(), Is.EqualTo(4));
            Assert.That(subsetOfUsers.Count(), Is.EqualTo(2));
            Assert.That(subsetOfUsers.ElementAt(0).SomeValue, Is.EqualTo("Lars Wilk"));
            Assert.That(subsetOfUsers.ElementAt(1).SomeValue, Is.EqualTo("Lotta Brak"));
        }
Ejemplo n.º 13
0
        public void CanCreateDelayedFlowQuery()
        {
            IDelayedFlowQuery <UserEntity> q = Session.DelayedFlowQuery <UserEntity>();

            Assert.That(q, Is.Not.Null);
        }