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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }