public void SetUp() { _generator = new UniqueIdentifierGenerator(); _context = SqlStatementModelObjectMother.CreateSqlPreparationContext(); _defaultStage = new DefaultSqlPreparationStage( CompoundMethodCallTransformerProvider.CreateDefault(), ResultOperatorHandlerRegistry.CreateDefault(), _generator); _mainFromClause = ExpressionHelper.CreateMainFromClause <Cook>(); _selectClause = ExpressionHelper.CreateSelectClause(_mainFromClause); _orderByClause = ExpressionHelper.CreateOrderByClause(); _queryModel = new QueryModel(_mainFromClause, _selectClause); _stageMock = MockRepository.GenerateStrictMock <ISqlPreparationStage>(); _visitor = new TestableSqlPreparationQueryModelVisitor(_context, _stageMock); _visitorPartialMock = MockRepository.GeneratePartialMock <TestableSqlPreparationQueryModelVisitor> (_context, _stageMock); }
public void GetTransformer() { var registryMock = MockRepository.GenerateStrictMock <IMethodCallTransformerProvider>(); var methodCallTransformerRegistry = new CompoundMethodCallTransformerProvider(registryMock); var methodCallExpression = ExpressionHelper.CreateMethodCallExpression <Cook>(); var fakeTransformer = new ContainsFulltextMethodCallTransformer(); registryMock .Expect(mock => mock.GetTransformer(methodCallExpression)) .Return(fakeTransformer); registryMock.Replay(); var result = methodCallTransformerRegistry.GetTransformer(methodCallExpression); registryMock.VerifyAllExpectations(); Assert.That(result, Is.SameAs(fakeTransformer)); }
protected SqlCommandData GenerateSql(QueryModel queryModel) { var generator = new UniqueIdentifierGenerator(); var resultOperatorHandlerRegistry = ResultOperatorHandlerRegistry.CreateDefault(); var defaultSqlPreparationStage = new DefaultSqlPreparationStage(CompoundMethodCallTransformerProvider.CreateDefault(), resultOperatorHandlerRegistry, generator); var sqlStatement = defaultSqlPreparationStage.PrepareSqlStatement(queryModel, null); var resolver = new MappingResolverStub(); var mappingResolutionStage = new DefaultMappingResolutionStage(resolver, generator); var mappingResolutionContext = new MappingResolutionContext(); var newSqlStatement = mappingResolutionStage.ResolveSqlStatement(sqlStatement, mappingResolutionContext); var commandBuilder = new SqlCommandBuilder(); var sqlGenerationStage = new DefaultSqlGenerationStage(); sqlGenerationStage.GenerateTextForOuterSqlStatement(commandBuilder, newSqlStatement); return(commandBuilder.GetCommand()); }
public QueryExecutor( IMappingResolver mappingResolver, IQueryResultRetriever resultRetriever, ResultOperatorHandlerRegistry resultOperatorHandlerRegistry, CompoundMethodCallTransformerProvider methodCallTransformerProvider, bool showQuery) { ArgumentUtility.CheckNotNull("mappingResolver", mappingResolver); ArgumentUtility.CheckNotNull("resultRetriever", resultRetriever); ArgumentUtility.CheckNotNull("resultOperatorHandlerRegistry", resultOperatorHandlerRegistry); ArgumentUtility.CheckNotNull("methodCallTransformerProvider", methodCallTransformerProvider); _mappingResolver = mappingResolver; _resultRetriever = resultRetriever; _resultOperatorHandlerRegistry = resultOperatorHandlerRegistry; _methodCallTransformerProvider = methodCallTransformerProvider; _showQuery = showQuery; }
public RelinqNorthwindDataProvider() { _manager = new NorthwindConnectionManager(); _context = new NorthwindDataContext(_manager.GetConnectionString()); _resolver = new MappingResolver(_context.Mapping); _retriever = new QueryResultRetriever(_manager, _resolver); _resultOperatorHandlerRegistry = ResultOperatorHandlerRegistry.CreateDefault(); var methodBasedTransformerRegistry = MethodInfoBasedMethodCallTransformerRegistry.CreateDefault(); var nameBasedTransformerRegistry = NameBasedMethodCallTransformerRegistry.CreateDefault(); _methodCallTransformerProvider = new CompoundMethodCallTransformerProvider(methodBasedTransformerRegistry, nameBasedTransformerRegistry); methodBasedTransformerRegistry.Register( typeof(SqlMethods).GetMethod("Like", new[] { typeof(string), typeof(string) }), new LikeMethodCallTransformer()); methodBasedTransformerRegistry.Register(DateDiffDayMethodCallTransformer.SupportedMethods, new DateDiffDayMethodCallTransformer()); foreach (var userDefinedFunction in _context.GetType().GetMethods().Where(mi => mi.IsDefined(typeof(FunctionAttribute), false))) { methodBasedTransformerRegistry.Register(userDefinedFunction, new UserDefinedFunctionTransformer()); } var customNodeTypeRegistry = new MethodInfoBasedNodeTypeRegistry(); customNodeTypeRegistry.Register(new[] { typeof(EntitySet <>).GetMethod("Contains") }, typeof(ContainsExpressionNode)); var nodeTypeProvider = ExpressionTreeParser.CreateDefaultNodeTypeProvider(); nodeTypeProvider.InnerProviders.Add(customNodeTypeRegistry); var transformerRegistry = ExpressionTransformerRegistry.CreateDefault(); var processor = ExpressionTreeParser.CreateDefaultProcessor(transformerRegistry); var expressionTreeParser = new ExpressionTreeParser(nodeTypeProvider, processor); _queryParser = new QueryParser(expressionTreeParser); _executor = new QueryExecutor(_resolver, _retriever, _resultOperatorHandlerRegistry, _methodCallTransformerProvider, false); }
private QueryExecutor CreateQueryExecutor(IQueryResultRetriever retrieverMock) { return(new QueryExecutor(_resolverStub, retrieverMock, ResultOperatorHandlerRegistry.CreateDefault(), CompoundMethodCallTransformerProvider.CreateDefault(), false)); }