public void FetchDataTest() { ReCreateContext(); ResultFetchData <ObjectMappingForTest> resultFetchData = repository.FetchDataAsync(null).Result; Assert.IsNotNull(resultFetchData, "Результат запроса не должен быть null."); //Провека, что создан пустой объект с дефолтными значениями Assert.AreEqual(7, resultFetchData.TotalCountRows); Assert.AreEqual(7, resultFetchData.Items.Count); //Проверяем уже с заданым пейджингом resultFetchData = repository.FetchDataAsync(new FetchDataParameters(1, 2)).Result; Assert.IsNotNull(resultFetchData, "Результат запроса не должен быть null."); //Проверку, что вернулась первая страница Assert.AreEqual(7, resultFetchData.TotalCountRows); Assert.AreEqual(2, resultFetchData.Items.Count); Assert.AreEqual(1, resultFetchData.Items[0].Id); Assert.AreEqual(2, resultFetchData.Items[1].Id); //Проверка 2 страницы resultFetchData = repository.FetchDataAsync(new FetchDataParameters(2, 2)).Result; Assert.AreEqual(3, resultFetchData.Items[0].Id); Assert.AreEqual(4, resultFetchData.Items[1].Id); }
/// <summary> /// Метод, который получает данные из БД /// </summary> /// <param name="paramQuery">Параметры запроса: номер страницы, размер страницы. По дефолту размер страницы 40 записей</param> /// <returns></returns> public async Task <ResultFetchData <TEntity> > FetchDataAsync(IFetchDataParameters paramQuery) { if (paramQuery == null) { paramQuery = new FetchDataParameters(); } paramQuery.CheckAndResetParam(); ResultFetchData <TEntity> result = new ResultFetchData <TEntity>(); result.TotalCountRows = await DbSetWithInclude.WheryDinamic(paramQuery.Filters).AsNoTracking().CountAsync(); int startRow = (paramQuery.PageNumber - 1) * paramQuery.CountOnPage; IQueryable <TEntity> query = DbSetWithInclude.WheryDinamic(paramQuery.Filters).Skip(startRow).Take(paramQuery.CountOnPage); if (paramQuery.IsOnlyShowData) { query = query.AsNoTracking(); } result.Items = await query.ToListAsync(); result.PageNumber = paramQuery.PageNumber; return(result); }
public void FetchDataTest_WithDinamicFilters() { //ARRANGE ReCreateContext(); FetchDataParameters param = new FetchDataParameters(); param.Filters.Add(new WhereDinamicItem("Id", TypeFilterEnum.NOT_EQUAL, "2")); //ACT //Проверяем уже с заданым пейджингом ResultFetchData <ObjectMappingForTest> resultFetchData = repository.FetchDataAsync(param).Result; //ASSERT Assert.AreEqual(6, resultFetchData.Items.Count); Assert.IsFalse(resultFetchData.Items.Any(x => x.Id == 2)); }