Exemplo n.º 1
0
        public void FromCacheQueryTest()
        {
            var query = new ApplicationQuery
            {
                Ids = new[] { 1, 2, 3 }
            };
            var flag = query.FromCache();

            Assert.True(flag);

            var query2 = new ApplicationQuery
            {
                Ids     = new[] { 1, 2, 3 },
                IdRange = new Range <int>
                {
                    Left          = 1,
                    LeftExclusive = true
                },
                NamePattern = "XX"
            };
            var flag2 = query2.FromCache();

            Assert.False(flag2);

            var query3 = new ApplicationQuery();
            var flag3  = query3.FromCache();

            Assert.False(flag3);
        }
Exemplo n.º 2
0
        public void ApplicationQueryTest()
        {
            var query = new ApplicationQuery()
            {
                Ids     = new[] { 1, 2, 3 },
                IdRange = new Range <int>
                {
                    Left          = 1,
                    LeftExclusive = true
                },
                NamePattern = "XX",
                OrderBys    = new List <OrderBy>
                {
                    new OrderBy
                    {
                        OrderDirection = OrderDirection.Desc,
                        OrderField     = "Id"
                    },
                    new OrderBy
                    {
                        OrderDirection = OrderDirection.Desc,
                        OrderField     = "CreateTime"
                    }
                }
            };
            var cause = new SqlBuilder().SelectAsync(query);

            Assert.Equal("SELECT  [Id] As [Id] , [name] As [Name] , [CreateTime] As [CreateTime]  FROM [Application] with(nolock) WHERE  [Id] IN @Ids AND [Name] like @NamePattern AND [Id] > @IdLeft ORDER BY [Id] Desc, [CreateTime] Desc", cause.Sql);
        }
Exemplo n.º 3
0
        public void PageTest()
        {
            var query = new ApplicationQuery
            {
                Take = 10,
                Skip = 10
            };
            var cause = new SqlBuilder().SelectAsync(query);

            Assert.Equal("SELECT  [Id] As [Id] , [name] As [Name] , [CreateTime] As [CreateTime]  FROM [Application] with(nolock) ORDER BY [Id] Desc offset 10 rows fetch next 10 rows only ;SELECT COUNT(1) from [Application] ;", cause.Sql);
        }
Exemplo n.º 4
0
        public async Task SelectPagedAsync()
        {
            using (var connection = await GetOpenConnection())
            {
                var app = new Application
                {
                    Name       = Guid.NewGuid().ToString(),
                    CreateTime = DateTime.Now
                };
                await connection.InsertAsync(app);

                var query = new ApplicationQuery()
                {
                    Take        = 10,
                    Skip        = 0,
                    NamePattern = app.Name
                };
                var applications = await connection.SelectAsync(query);

                Assert.NotEmpty(applications);
                Assert.Equal(1, query.Count);

                query = new ApplicationQuery()
                {
                    Take        = 10,
                    Skip        = 0,
                    NamePattern = "111111111111111111111111111111111111111111111"
                };
                applications = await connection.SelectAsync(query);

                Assert.Empty(applications);
                Assert.Equal(0, query.Count);

                applications = await connection.SelectAsync(new ApplicationQuery()
                {
                    Take = 10,
                    Skip = 0,
                    Name = app.Name
                });

                Assert.NotEmpty(applications);
            }
        }
Exemplo n.º 5
0
        public void ApplicationQueryTest2()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            for (int i = 0; i < 100000; i++)
            {
                var query = new ApplicationQuery()
                {
                    Ids     = new[] { 1, 2, 3 },
                    IdRange = new Range <int>
                    {
                        Left          = 1,
                        LeftExclusive = true
                    },
                    NamePattern = "XX"
                };
                new SqlBuilder().SelectAsync(query);
            }
            sw.Stop();
            _outputHelper.WriteLine($"ElapsedMilliseconds:{sw.ElapsedMilliseconds}");
        }