Ejemplo n.º 1
0
        public void retrieves_query_plan_with_where_and_all_options_enabled()
        {
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 6,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user1, user2);
            theSession.SaveChanges();

            var plan = theSession.Query <SimpleUser>().Where(u => u.Number > 5)
                       .OrderBy(x => x.Number)
                       .Explain(c =>
            {
                c
                .Analyze()
                .Buffers()
                .Costs()
                .Timing()
                .Verbose();
            });

            SpecificationExtensions.ShouldNotBeNull(plan);
            SpecificationExtensions.ShouldBeGreaterThan(plan.ActualTotalTime, 0m);
            SpecificationExtensions.ShouldBeGreaterThan(plan.PlanningTime, 0m);
            SpecificationExtensions.ShouldBeGreaterThan(plan.ExecutionTime, 0m);
            plan.SortKey.ShouldContain("(((d.data ->> 'Number'::text))::integer)");
            plan.Plans.ShouldNotBeEmpty();
        }
Ejemplo n.º 2
0
        public void single_returns_first_and_only()
        {
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user1);
            theSession.SaveChanges();

            var userJson = theSession.Query <SimpleUser>().AsJson().Single();

            userJson.ShouldBeSemanticallySameJsonAs($@"{user1.ToJson()}");
        }
Ejemplo n.º 3
0
        public async Task single_or_default_returns_first_line_async()
        {
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user1);
            theSession.SaveChanges();

            var userJson = await theSession.Query <SimpleUser>().AsJson().SingleOrDefaultAsync();

            userJson.ShouldBeSemanticallySameJsonAs($@"{user1.ToJson()}");
        }
Ejemplo n.º 4
0
        public async Task single_async_returns_first_and_only()
        {
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user1);
            theSession.SaveChanges();

            var userJson = await theSession.Query <SimpleUser>().AsJson().SingleAsync().ConfigureAwait(false);

            userJson.ShouldBe($@"{user1.ToJson()}");
        }
Ejemplo n.º 5
0
        public void to_list()
        {
            var user0 = new SimpleUser
            {
                UserName  = "******",
                Number    = 4,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "0", Street = "rue de l'invisible"
                }
            };
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 6,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user0, user1, user2);
            theSession.SaveChanges();

            var listJson = theSession.Query <SimpleUser>().Where(x => x.Number >= 5).ToJsonArray();

            listJson.ShouldBe($@"[{user1.ToJson()},{user2.ToJson()}]");
        }
Ejemplo n.º 6
0
        public async Task first_or_default_returns_first_line_async()
        {
            var user0 = new SimpleUser
            {
                UserName  = "******",
                Number    = 4,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "0", Street = "rue de l'invisible"
                }
            };
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user0, user1, user2);
            theSession.SaveChanges();

            var userJson = await theSession.Query <SimpleUser>().AsJson().FirstOrDefaultAsync().ConfigureAwait(false);

            userJson.ShouldBe($@"{user0.ToJson()}");
        }
Ejemplo n.º 7
0
        public void first_or_default_returns_first()
        {
            var user0 = new SimpleUser
            {
                UserName  = "******",
                Number    = 4,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "0", Street = "rue de l'invisible"
                }
            };
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user0, user1, user2);
            theSession.SaveChanges();

            var userJson = theSession.Query <SimpleUser>().Where(x => x.Number == 5).AsJson().FirstOrDefault();

            userJson.ShouldBe($@"{user1.ToJson()}");
        }
Ejemplo n.º 8
0
        public async Task to_list_async()
        {
            var user0 = new SimpleUser
            {
                UserName  = "******",
                Number    = 4,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "0", Street = "rue de l'invisible"
                }
            };
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 6,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user0, user1, user2);
            theSession.SaveChanges();

            var listJson = await theSession.Query <SimpleUser>().Where(x => x.Number >= 5).ToJsonArrayAsync().ConfigureAwait(false);

            listJson.ShouldBeSemanticallySameJsonAs($@"[{user1.ToJson()},{user2.ToJson()}]");
        }
Ejemplo n.º 9
0
        public async Task first_async_returns_first()
        {
            var user0 = new SimpleUser
            {
                UserName  = "******",
                Number    = 4,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "0", Street = "rue de l'invisible"
                }
            };
            var user1 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1986, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };
            var user2 = new SimpleUser
            {
                UserName  = "******",
                Number    = 5,
                Birthdate = new DateTime(1987, 10, 4),
                Address   = new Address {
                    HouseNumber = "12bis", Street = "rue de la martre"
                }
            };

            theSession.Store(user0, user1, user2);
            await theSession.SaveChangesAsync();

            var userJson = await theSession.Query <SimpleUser>().Where(x => x.Number == 5).AsJson().FirstAsync();

            userJson.ShouldBeSemanticallySameJsonAs($@"{user1.ToJson()}");
        }