Пример #1
0
 /// <summary>
 /// Initializes a new instance of the ClrBasedQueryProvider type
 /// </summary>
 /// <param name="clrTypesAssembly">The assembly which contains the clr types for resource types</param>
 /// <param name="modelSchema">The schema for the model under test</param>
 /// <param name="evaluator">The evaluator to evaluate queries created after resolution</param>
 /// <param name="repository">The query repository to find root queries in</param>
 public ClrBasedQueryProvider(Assembly clrTypesAssembly, EntityModelSchema modelSchema, IQueryExpressionEvaluator evaluator, QueryRepository repository)
 {
     this.clrTypesAssembly = clrTypesAssembly;
     this.modelSchema      = modelSchema;
     this.evaluator        = evaluator;
     this.queryRepository  = repository;
 }
Пример #2
0
        public static QueryValue ChooseRandomEvaluationResult(this IQueryExpressionEvaluator evaluator, QueryExpression queryExpression, IRandomNumberGenerator random, out QueryCollectionValue collection)
        {
            ExceptionUtilities.CheckArgumentNotNull(evaluator, "evaluator");
            ExceptionUtilities.CheckArgumentNotNull(queryExpression, "queryExpression");
            ExceptionUtilities.CheckArgumentNotNull(random, "random");

            collection = evaluator.Evaluate(queryExpression) as QueryCollectionValue;
            ExceptionUtilities.CheckObjectNotNull(collection, "Query unexpectedly evaluated to null or was not a collection: {0}", queryExpression);
            ExceptionUtilities.Assert(collection.EvaluationError == null, "Query resulted in evaluation error: {0}", collection.EvaluationError);

            if (collection.IsNull || collection.Elements.Count == 0)
            {
                return(null);
            }

            return(random.ChooseFrom(collection.Elements));
        }
Пример #3
0
        /// <summary>
        /// Evaluates the given query, asserts that it results in a collection value, and chooses a random element from the collection. If the collection is empty, null is returned.
        /// </summary>
        /// <param name="evaluator">The query evaluator to use</param>
        /// <param name="queryExpression">The query to evaluate, must result in a collection</param>
        /// <param name="random">The random number generator to use for selecting a result from the collection</param>
        /// <returns>A random element of the evaluated collection, or null if no elements are found</returns>
        public static QueryValue ChooseRandomEvaluationResult(this IQueryExpressionEvaluator evaluator, QueryExpression queryExpression, IRandomNumberGenerator random)
        {
            QueryCollectionValue collection;

            return(evaluator.ChooseRandomEvaluationResult(queryExpression, random, out collection));
        }
 /// <summary>
 /// Initializes a new instance of the ClrBasedQueryProvider type
 /// </summary>
 /// <param name="clrTypesAssembly">The assembly which contains the clr types for resource types</param>
 /// <param name="modelSchema">The schema for the model under test</param>
 /// <param name="evaluator">The evaluator to evaluate queries created after resolution</param>
 /// <param name="repository">The query repository to find root queries in</param>
 public ClrBasedQueryProvider(Assembly clrTypesAssembly, EntityModelSchema modelSchema, IQueryExpressionEvaluator evaluator, QueryRepository repository)
 {
     this.clrTypesAssembly = clrTypesAssembly;
     this.modelSchema = modelSchema;
     this.evaluator = evaluator;
     this.queryRepository = repository;
 }