Пример #1
0
        public void GetAllTerms_NullSearchQuery_ShouldReturnEmptyList()
        {
            // Arrange
            var processor = new SearchOptionsProcessor <Recipe>(null);

            // Act
            var terms = processor.GetAllTerms();

            // Assert
            Assert.Empty(terms);
        }
Пример #2
0
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var processor = new SearchOptionsProcessor <T, TEntity>(Search);

            var validTerms = processor.GetValidTerms().Select(x => x.Name);

            var invalidTerms = processor.GetAllTerms().Select(x => x.Name).Except(validTerms, StringComparer.CurrentCultureIgnoreCase);

            foreach (var term in invalidTerms)
            {
                yield return(new ValidationResult($"Invalid search term '{term}'.", new[] { nameof(Search) }));
            }
        }
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var processor    = new SearchOptionsProcessor <T, TEntity>(Search);
            var validTerms   = processor.GetValidTerms().Select(x => x.Name);
            var invalidTerms = processor.GetAllTerms()
                               .Where(x => !validTerms.Any(v => v.Equals(x.Name, StringComparison.OrdinalIgnoreCase)))
                               .Select(x => x.Name);

            foreach (var term in invalidTerms)
            {
                yield return(new ValidationResult($"Invalid search term {term}", new[] { nameof(Search) }));
            }
        }
        private IEnumerable <ValidationResult> ValidateSearchOptions()
        {
            if (Search == null)
            {
                yield break;
            }

            var processor = new SearchOptionsProcessor <T>(Search);

            var validTerms   = processor.GetValidTerms().Select(x => x.Name);
            var invalidTerms = processor.GetAllTerms().Select(x => x.Name)
                               .Except(validTerms, StringComparer.OrdinalIgnoreCase);

            foreach (var term in invalidTerms)
            {
                yield return(new ValidationResult($"Invalid search term '{term}'", new[] { nameof(Search) }));
            }
        }
Пример #5
0
        public void GetAllTerms_NoSpaces_ShouldAssignToNames()
        {
            // Arrange
            var elements  = new[] { "abc", "def", "G_hi_jkl", "m_desc" };
            var processor = new SearchOptionsProcessor <Recipe>(elements);

            // Act
            var terms = processor.GetAllTerms().ToArray();

            // Assert
            Assert.Equal(elements.Length, terms.Length);
            foreach (var(element, term) in elements.Zip(terms, Tuple.Create))
            {
                Assert.Equal(element, term.Name);
                Assert.True(string.IsNullOrEmpty(term.Operator));
                Assert.True(string.IsNullOrEmpty(term.Value));
                Assert.False(term.ValidSyntax, "Syntax is actually valid");
            }
        }