public void Test_Trivial_String_Props(string propName)
        {
            var queryParams = new LodgingQueryParamsModel();
            var prop        = queryParams.GetType().GetProperty(propName);

            prop.SetValue(queryParams, "test");
            Assert.Equal("test", prop.GetValue(queryParams));
        }
        public void Test_GenerateOrderByFunc_InvalidKey()
        {
            var queryParams = new LodgingQueryParamsModel();

            queryParams.SortKey = "missing";

            var orderByFunc = LodgingRepository.GenerateOrderByFunc(queryParams);

            Assert.Null(orderByFunc);
        }
        public void Test_GenerateOrderByFunc(string sortKey)
        {
            var queryParams = new LodgingQueryParamsModel();

            queryParams.SortKey = sortKey;

            var orderByFunc = LodgingRepository.GenerateOrderByFunc(queryParams);

            Assert.NotNull(orderByFunc);
        }
Пример #4
0
        public async Task <IActionResult> Get([FromQuery] LodgingQueryParamsModel queryParams, int id)
        {
            var obj = await _unitOfWork.Lodging.GetAsync(id, queryParams);

            if (obj == null)
            {
                return(NotFound());
            }
            return(Ok(obj));
        }
        public void Test_GenerateFilterFuncs()
        {
            var queryParams = new LodgingQueryParamsModel();

            queryParams.HasBedType = "King";
            queryParams.HasAmenity = "Coffee";
            queryParams.City       = "test";

            var funcs = LodgingRepository.GenerateFilterFuncs(queryParams);

            // 4 filters are always added, +3 more based on params.
            Assert.Equal(7, funcs.Count);
        }
Пример #6
0
        public void Test_Clamped_Props_Double(string propName, double min, double max)
        {
            var queryParams = new LodgingQueryParamsModel();
            var prop        = queryParams.GetType().GetProperty(propName);

            prop.SetValue(queryParams, -99999999);
            Assert.Equal(min, prop.GetValue(queryParams));

            if (min != max)
            {
                prop.SetValue(queryParams, 99999999);
                Assert.Equal(max, prop.GetValue(queryParams));
            }
        }
        public async void Test_LodgingRepo_GetAsync_IncludeImages()
        {
            var dbOptions = await NewDb();

            using (var ctx = new LodgingContext(dbOptions))
            {
                await ctx.Database.EnsureCreatedAsync();

                await ctx.SaveChangesAsync();
            }

            using (var ctx = new LodgingContext(dbOptions))
            {
                var repo = new LodgingRepository(ctx);

                var queryParams = new LodgingQueryParamsModel();
                queryParams.IncludeImages = true;

                var actual = await repo.GetAsync(queryParams);

                Assert.Empty(actual);
            }
        }
Пример #8
0
 public async Task <IActionResult> Get([FromQuery] LodgingQueryParamsModel queryParams)
 {
     return(Ok(await _unitOfWork.Lodging.GetAsync(queryParams)));
 }