Example #1
0
        public void Test_DefaultValidator_Validate_AllArgs()
        {
            var options     = new MockOptionsMonitor <ListRequestOptions>(new ListRequestOptions());
            var validator   = new DefaultListQueryValidator(options);
            var selectProps = PropertyHelper.GetProperties(typeof(Person));
            var filterProps = PropertyHelper.GetProperties(typeof(PersonFilters), x => x.IsFilterable);
            var sortProps   = PropertyHelper.GetProperties(typeof(PersonSorts), x => x.IsSortable);

            var request = new ListRequest();

            request.Fields  = new string[] { "PersonID", "LastName", "FirstName", "BirthDate" };
            request.Filters = new List <ListFilter>
            {
                new ListQuery.ListFilter()
                {
                    Name = "PersonID", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "LastName", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "FirstName", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "BirthDate", Operator = ListFilterOperator.Equal, Value = "test"
                },
            };
            request.Order = new List <SortField>
            {
                new SortField()
                {
                    Name = "PersonID"
                },
                new SortField()
                {
                    Name = "LastName"
                },
                new SortField()
                {
                    Name = "FirstName"
                },
                new SortField()
                {
                    Name = "BirthDate"
                },
            };

            var result = validator.Validate(request, selectProps, filterProps, sortProps);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(4, result.Errors.Count);
        }
Example #2
0
        public void Test_DefaultValidator_Validate_ThreeGenericArgs()
        {
            var options   = new MockOptionsMonitor <ListRequestOptions>(new ListRequestOptions());
            var validator = new DefaultListQueryValidator(options);
            var request   = new ListRequest();

            request.Fields  = new string[] { "PersonID", "LastName", "FirstName", "BirthDate" };
            request.Filters = new List <ListFilter>
            {
                new ListFilter()
                {
                    Name = "PersonID", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "LastName", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "FirstName", Operator = ListFilterOperator.Equal, Value = "test"
                },
                new ListFilter()
                {
                    Name = "BirthDate", Operator = ListFilterOperator.Equal, Value = "test"
                },
            };
            request.Order = new List <SortField>
            {
                new SortField()
                {
                    Name = "PersonID"
                },
                new SortField()
                {
                    Name = "LastName"
                },
                new SortField()
                {
                    Name = "FirstName"
                },
                new SortField()
                {
                    Name = "BirthDate"
                },
            };

            var result = validator.Validate <Person, PersonFilters, PersonSorts>(request);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(4, result.Errors.Count);
            Assert.AreEqual(4, result.ListQuery.Fields.Count());
            Assert.AreEqual(2, result.ListQuery.Filters.Count());
            Assert.AreEqual(2, result.ListQuery.Order.Count());
        }
Example #3
0
        public void Test_DefaultValidator_Validate_DefaultLimit()
        {
            var options = new MockOptionsMonitor <ListRequestOptions>(new ListRequestOptions()
            {
                DefaultLimit = 10
            });
            var validator = new DefaultListQueryValidator(options);
            var request   = new ListRequest();
            var result    = validator.Validate <Person, PersonFilters, PersonSorts>(request);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(10, result.ListQuery.Limit);
        }
Example #4
0
        public void Test_DefaultValidator_Validate_MaxLimit()
        {
            var options = new MockOptionsMonitor <ListRequestOptions>(new ListRequestOptions()
            {
                MaxLimit = 10
            });
            var validator = new DefaultListQueryValidator(options);
            var request   = new ListRequest();

            request.Limit = 50;

            var result = validator.Validate <Person, PersonFilters, PersonSorts>(request);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
        }
Example #5
0
        public void Test_DefaultValidator_Validate_RequestWithEmptyCollections_IsValid()
        {
            var options     = new MockOptionsMonitor <ListRequestOptions>(new ListRequestOptions());
            var validator   = new DefaultListQueryValidator(options);
            var selectProps = PropertyHelper.GetProperties(typeof(Person));
            var filterProps = PropertyHelper.GetProperties(typeof(PersonFilters), x => x.IsFilterable);
            var sortProps   = PropertyHelper.GetProperties(typeof(PersonSorts), x => x.IsSortable);

            var request = new ListRequest();

            request.Fields  = new string[] {};
            request.Filters = new List <ListFilter>();
            request.Order   = new List <SortField>();

            var result = validator.Validate(request, selectProps, filterProps, sortProps);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(0, result.Errors.Count);
        }