|
6 | 6 | using System; |
7 | 7 | using System.Collections.Generic; |
8 | 8 | using System.Linq; |
| 9 | +using System.Linq.Expressions; |
9 | 10 | using System.Threading.Tasks; |
10 | 11 | using TestContext = Nodes.NetCore.EntityFramework.Tests.Mocks.TestContext; |
11 | 12 |
|
@@ -93,7 +94,6 @@ public void AddThrowsExceptionIfEntityIsNull() |
93 | 94 | #endregion |
94 | 95 |
|
95 | 96 | #region List |
96 | | - |
97 | 97 | [Test] |
98 | 98 | public async Task GetListReturnsAll() |
99 | 99 | { |
@@ -167,6 +167,80 @@ public async Task GetListPaginated() |
167 | 167 | Assert.AreEqual(3, entitiesLastPage.Count()); |
168 | 168 | } |
169 | 169 |
|
| 170 | + [Test] |
| 171 | + public async Task GetListWithSelectReturnsAll() |
| 172 | + { |
| 173 | + var entities = await _repository.GetListWithSelect<string>(e => e.Property); |
| 174 | + |
| 175 | + Assert.AreEqual(_listEntities.Count() + 1, entities.Count()); |
| 176 | + } |
| 177 | + |
| 178 | + [Test] |
| 179 | + public async Task GetListWithSelectWhere() |
| 180 | + { |
| 181 | + const string propertyToLookFor = "b"; |
| 182 | + IEnumerable<string> entities = await _repository.GetListWithSelect(x => x.Property, x => x.Property == propertyToLookFor); |
| 183 | + |
| 184 | + Assert.AreEqual(1, entities.Count()); |
| 185 | + Assert.AreEqual(propertyToLookFor, entities.ElementAt(0)); |
| 186 | + } |
| 187 | + |
| 188 | + [Test] |
| 189 | + public async Task GetListWithSelectOrderBy() |
| 190 | + { |
| 191 | + var entities = await _repository.GetListWithSelect(x => x.Property, x => x.Property.Length == 1, x => x.Property); |
| 192 | + |
| 193 | + Assert.AreEqual(_listEntities.Count(), entities.Count()); |
| 194 | + Assert.AreEqual("a", entities.ElementAt(0)); |
| 195 | + Assert.AreEqual("b", entities.ElementAt(1)); |
| 196 | + Assert.AreEqual("c", entities.ElementAt(2)); |
| 197 | + Assert.AreEqual("d", entities.ElementAt(3)); |
| 198 | + Assert.AreEqual("e", entities.ElementAt(4)); |
| 199 | + Assert.AreEqual("f", entities.ElementAt(5)); |
| 200 | + Assert.AreEqual("g", entities.ElementAt(6)); |
| 201 | + Assert.AreEqual("h", entities.ElementAt(7)); |
| 202 | + Assert.AreEqual("i", entities.ElementAt(8)); |
| 203 | + Assert.AreEqual("j", entities.ElementAt(9)); |
| 204 | + Assert.AreEqual("k", entities.ElementAt(10)); |
| 205 | + Assert.AreEqual("l", entities.ElementAt(11)); |
| 206 | + Assert.AreEqual("m", entities.ElementAt(12)); |
| 207 | + Assert.AreEqual("n", entities.ElementAt(13)); |
| 208 | + } |
| 209 | + |
| 210 | + [Test] |
| 211 | + public async Task GetListWithSelectOrderByDescending() |
| 212 | + { |
| 213 | + var entities = await _repository.GetListWithSelect(x => x.Property, x => x.Property.Length == 1, x => x.Property, OrderBy.Descending); |
| 214 | + |
| 215 | + Assert.AreEqual(_listEntities.Count(), entities.Count()); |
| 216 | + Assert.AreEqual("n", entities.ElementAt(0)); |
| 217 | + Assert.AreEqual("m", entities.ElementAt(1)); |
| 218 | + Assert.AreEqual("l", entities.ElementAt(2)); |
| 219 | + Assert.AreEqual("k", entities.ElementAt(3)); |
| 220 | + Assert.AreEqual("j", entities.ElementAt(4)); |
| 221 | + Assert.AreEqual("i", entities.ElementAt(5)); |
| 222 | + Assert.AreEqual("h", entities.ElementAt(6)); |
| 223 | + Assert.AreEqual("g", entities.ElementAt(7)); |
| 224 | + Assert.AreEqual("f", entities.ElementAt(8)); |
| 225 | + Assert.AreEqual("e", entities.ElementAt(9)); |
| 226 | + Assert.AreEqual("d", entities.ElementAt(10)); |
| 227 | + Assert.AreEqual("c", entities.ElementAt(11)); |
| 228 | + Assert.AreEqual("b", entities.ElementAt(12)); |
| 229 | + Assert.AreEqual("a", entities.ElementAt(13)); |
| 230 | + } |
| 231 | + |
| 232 | + [Test] |
| 233 | + public async Task GetListWithSelectPaginated() |
| 234 | + { |
| 235 | + const int pageSize = 6; |
| 236 | + |
| 237 | + var entities = await _repository.GetListWithSelect(x => x.Property, 1, pageSize); |
| 238 | + var entitiesLastPage = await _repository.GetListWithSelect(x => x.Property, 3, pageSize); |
| 239 | + |
| 240 | + Assert.AreEqual(pageSize, entities.Count()); |
| 241 | + Assert.AreEqual(3, entitiesLastPage.Count()); |
| 242 | + } |
| 243 | + |
170 | 244 | private IEnumerable<TestEntity> GetTestList() |
171 | 245 | { |
172 | 246 | return new List<TestEntity> |
|
0 commit comments