-
-
Notifications
You must be signed in to change notification settings - Fork 524
Expand file tree
/
Copy pathSqlServerTests.cs
More file actions
77 lines (66 loc) · 2.5 KB
/
SqlServerTests.cs
File metadata and controls
77 lines (66 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using SqlKata.Compilers;
using SqlKata.Tests.Infrastructure;
using Xunit;
namespace SqlKata.Tests.SqlServer
{
public class SqlServerTests : TestSupport
{
private readonly SqlServerCompiler compiler;
public SqlServerTests()
{
compiler = Compilers.Get<SqlServerCompiler>(EngineCodes.SqlServer);
}
[Fact]
public void SqlServerTop()
{
var query = new Query("table").Limit(1);
var result = compiler.Compile(query);
Assert.Equal("SELECT TOP (@p0) * FROM [table]", result.Sql);
}
[Fact]
public void SqlServerTopWithDistinct()
{
var query = new Query("table").Limit(1).Distinct();
var result = compiler.Compile(query);
Assert.Equal("SELECT DISTINCT TOP (@p0) * FROM [table]", result.Sql);
}
[Theory()]
[InlineData(-100)]
[InlineData(0)]
public void OffsetSqlServer_Should_Be_Ignored_If_Zero_Or_Negative(int offset)
{
var q = new Query().From("users").Offset(offset);
var c = Compilers.CompileFor(EngineCodes.SqlServer, q);
Assert.Equal("SELECT * FROM [users]", c.ToString());
}
[Theory()]
[InlineData(1)]
[InlineData(2)]
[InlineData(3)]
[InlineData(4)]
[InlineData(100)]
[InlineData(1000000)]
public void OffsetSqlServer_Should_Be_Incremented_By_One(int offset)
{
var q = new Query().From("users").Offset(offset);
var c = Compilers.CompileFor(EngineCodes.SqlServer, q);
Assert.Equal(
"SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS [row_num] FROM [users]) AS [results_wrapper] WHERE [row_num] >= " +
(offset + 1), c.ToString());
}
[Fact]
public void SqlServerOrderByTimePart()
{
var query = new Query("table").OrderByDatePart("year","field");
var result = compiler.Compile(query);
Assert.Equal("SELECT * FROM [table] ORDER BY DATEPART(YEAR, [field])", result.Sql);
}
[Fact]
public void SqlServerGroupByTimePart()
{
var query = new Query("table").GroupByDatePart("year", "field").SelectDatePart("year","field","meow");
var result = compiler.Compile(query);
Assert.Equal("SELECT DATEPART(YEAR, [field]) AS [meow] FROM [table] GROUP BY DATEPART(YEAR, [field])", result.Sql);
}
}
}