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); }
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); }
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); }
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); } }
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}"); }