|
1 |
| -using NUnit.Framework; |
| 1 | +using System.Linq; |
| 2 | +using NUnit.Framework; |
2 | 3 | using ServiceStack.DataAnnotations;
|
3 | 4 | using ServiceStack.Text;
|
4 | 5 |
|
@@ -100,5 +101,40 @@ public void Does_handle_booleans()
|
100 | 101 | }
|
101 | 102 | }
|
102 | 103 |
|
| 104 | + [Test] |
| 105 | + public void Can_use_limit() |
| 106 | + { |
| 107 | + using (var db = OpenDbConnection()) |
| 108 | + { |
| 109 | + db.DropAndCreateTable<Sqltest>(); |
| 110 | + |
| 111 | + 5.Times(i => db.Insert(new Sqltest { Value = i + 1 })); |
| 112 | + |
| 113 | + var sqlLimit = db.GetDialectProvider().SqlLimit(rows: 1); |
| 114 | + var results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 115 | + Assert.That(results, Is.EqualTo(1)); |
| 116 | + |
| 117 | + sqlLimit = db.GetDialectProvider().SqlLimit(rows: 3); |
| 118 | + results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 119 | + Assert.That(results, Is.EqualTo(6)); |
| 120 | + |
| 121 | + sqlLimit = db.GetDialectProvider().SqlLimit(offset: 1); |
| 122 | + results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 123 | + Assert.That(results, Is.EqualTo(14)); |
| 124 | + |
| 125 | + sqlLimit = db.GetDialectProvider().SqlLimit(offset: 4); |
| 126 | + results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 127 | + Assert.That(results, Is.EqualTo(5)); |
| 128 | + |
| 129 | + sqlLimit = db.GetDialectProvider().SqlLimit(offset: 1, rows: 1); |
| 130 | + results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 131 | + Assert.That(results, Is.EqualTo(2)); |
| 132 | + |
| 133 | + sqlLimit = db.GetDialectProvider().SqlLimit(offset: 2, rows: 2); |
| 134 | + results = db.SqlList<double>($"SELECT Value from sqltest ORDER BY Id {sqlLimit}").Sum(); |
| 135 | + Assert.That(results, Is.EqualTo(7)); |
| 136 | + } |
| 137 | + } |
| 138 | + |
103 | 139 | }
|
104 | 140 | }
|
0 commit comments