public void FetchDataAsyncTest_AddParamUserId() { //ARRANGE FetchDataParameters param = new FetchDataParameters(); Mock <IFetchData <DomainObjectIdentityForTest> > mockFetchData = new Mock <IFetchData <DomainObjectIdentityForTest> >(); mockFetchData.Setup(x => x.FetchDataAsync(param)); long userIdContext = 2; Mock <IUserContext> mockUserContext = new Mock <IUserContext>(); mockUserContext.Setup(x => x.GetUserId()).Returns(userIdContext); UserDataSecurityFetchDomainData <DomainObjectIdentityForTest> userDataSecurityFetchDomainData = new UserDataSecurityFetchDomainData <DomainObjectIdentityForTest>(mockFetchData.Object, mockUserContext.Object); //ACT userDataSecurityFetchDomainData.FetchDataAsync(param); //ASSERT Assert.AreEqual(1, param.Filters.Count); Assert.AreEqual("2", param.Filters.First().Value); Assert.AreEqual("UserId", param.Filters.First().PropertyName); Assert.AreEqual(TypeFilterEnum.EQUAL, param.Filters.First().TypeFilter); }
/// <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 ConstructorDefaultValuesTest() { FetchDataParameters fetchDataParameters = new FetchDataParameters(); Assert.AreEqual(1, fetchDataParameters.PageNumber); Assert.AreEqual(PagingConsts.DEFAULT_PAGE_COUNT_ROW, fetchDataParameters.CountOnPage); Assert.IsFalse(fetchDataParameters.IsOnlyShowData); fetchDataParameters = new FetchDataParameters(20, 30, true); Assert.AreEqual(20, fetchDataParameters.PageNumber); Assert.AreEqual(30, fetchDataParameters.CountOnPage); Assert.IsTrue(fetchDataParameters.IsOnlyShowData); Assert.IsNotNull(fetchDataParameters.Filters); Assert.AreEqual(0, fetchDataParameters.Filters.Count); }
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)); }
public void CheckAndResetParamTest() { FetchDataParameters fetchDataParameters = new FetchDataParameters(); fetchDataParameters.PageNumber = 0; fetchDataParameters.CountOnPage = 0; fetchDataParameters.CheckAndResetParam(); Assert.AreEqual(1, fetchDataParameters.PageNumber); Assert.AreEqual(PagingConsts.DEFAULT_PAGE_COUNT_ROW, fetchDataParameters.CountOnPage); fetchDataParameters.PageNumber = 10; fetchDataParameters.CountOnPage = 20; Assert.AreEqual(10, fetchDataParameters.PageNumber); Assert.AreEqual(20, fetchDataParameters.CountOnPage); Assert.IsNotNull(fetchDataParameters.Filters); Assert.AreEqual(0, fetchDataParameters.Filters.Count); }