public void Select_Dynamic_Exceptions()
        {
            //Arrange
            var testList = User.GenerateSampleModels(100, allowNullableProfiles: true);
            var qry      = testList.AsQueryable();

            //Act
            Assert.Throws <ParseException>(() => qry.Select("Bad"));
            Assert.Throws <ParseException>(() => qry.Select("Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new (Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new (Id, UserName, Bad)"));

            Assert.Throws <ArgumentNullException>(() => DynamicQueryableExtensions.Select(null, "Id"));
            Assert.Throws <ArgumentNullException>(() => qry.Select(null));
            Assert.Throws <ArgumentException>(() => qry.Select(""));
            Assert.Throws <ArgumentException>(() => qry.Select(" "));
        }
Ejemplo n.º 2
0
        public void Select_Dynamic_Exceptions()
        {
            //Arrange
            var testList = User.GenerateSampleModels(100, allowNullableProfiles: true);
            var qry      = testList.AsQueryable();

            //Act
            Assert.Throws <ParseException>(() => qry.Select("Bad"));
            Assert.Throws <ParseException>(() => qry.Select("Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new (Id, UserName"));
            Assert.Throws <ParseException>(() => qry.Select("new (Id, UserName, Bad)"));
            Check.ThatCode(() => qry.Select <User>("new User(it.Bad as Bad)")).Throws <ParseException>().WithMessage("No property or field 'Bad' exists in type 'User'");

            Assert.Throws <ArgumentNullException>(() => DynamicQueryableExtensions.Select(null, "Id"));
            Assert.Throws <ArgumentNullException>(() => qry.Select(null));
            Assert.Throws <ArgumentException>(() => qry.Select(""));
            Assert.Throws <ArgumentException>(() => qry.Select(" "));
        }
        public static IQueryable <TResult> SelectInterpolated <TResult>(this IQueryable source, FormattableString selector)
        {
            var selectorStr = ParseFormattableString(selector, out var args);

            return(DynamicQueryableExtensions.Select <TResult>(source, selectorStr, args));
        }
        public static IQueryable SelectInterpolated(this IQueryable source, ParsingConfig config, Type resultType, FormattableString selector)
        {
            var selectorStr = ParseFormattableString(selector, out var args);

            return(DynamicQueryableExtensions.Select(source, config, resultType, selectorStr, args));
        }