Exemple #1
0
        public void CreateSqlQuery()
        {
            var fakePreparationResult = CreateSqlStatement();

            _preparationStageMock
            .Expect(mock => mock.PrepareSqlStatement(_queryModel, null))
            .Return(fakePreparationResult);
            var fakeResolutionResult = CreateSqlStatement();

            _resolutionStageMock
            .Expect(mock => mock.ResolveSqlStatement(Arg.Is(fakePreparationResult), Arg <MappingResolutionContext> .Is.TypeOf))
            .Return(fakeResolutionResult);
            _generationStageMock
            .Expect(mock => mock.GenerateTextForOuterSqlStatement(Arg <SqlCommandBuilder> .Is.TypeOf, Arg.Is(fakeResolutionResult)))
            .WhenCalled(mi =>
            {
                var sqlCommandBuilder = ((SqlCommandBuilder)mi.Arguments[0]);
                sqlCommandBuilder.Append("TestTest");
                sqlCommandBuilder.SetInMemoryProjectionBody(Expression.Constant(null));
            });

            var result = _sqlQueryGenerator.CreateSqlQuery(_queryModel);

            _preparationStageMock.VerifyAllExpectations();
            _resolutionStageMock.VerifyAllExpectations();
            _generationStageMock.VerifyAllExpectations();

            Assert.That(result.SqlCommand.CommandText, Is.EqualTo("TestTest"));
        }
Exemple #2
0
        public void VisitSqlSubStatementExpression()
        {
            var sqlStatement           = SqlStatementModelObjectMother.CreateSqlStatement_Resolved(typeof(Cook));
            var subStatementExpression = new SqlSubStatementExpression(sqlStatement);

            _stageMock
            .Expect(
                mock =>
                mock.GenerateTextForSqlStatement(_commandBuilder, sqlStatement))
            .WhenCalled(mi => ((SqlCommandBuilder)mi.Arguments[0]).Append("SELECT [t].[Name] FROM [Table] AS [t]"));
            _stageMock.Replay();

            SqlGeneratingExpressionVisitor.GenerateSql(subStatementExpression, _commandBuilder, _stageMock);

            Assert.That(_commandBuilder.GetCommandText(), Is.EqualTo("(SELECT [t].[Name] FROM [Table] AS [t])"));
            _stageMock.VerifyAllExpectations();
        }
        public void GenerateSql_ForJoinedTable()
        {
            var originalTable     = new SqlTable(new ResolvedSimpleTableInfo(typeof(Kitchen), "KitchenTable", "t1"), JoinSemantics.Inner);
            var kitchenCookMember = typeof(Kitchen).GetProperty("Cook");
            var joinedTable       = originalTable.GetOrAddLeftJoin(CreateResolvedJoinInfo(typeof(Cook), "t1", "ID", "CookTable", "t2", "FK"), kitchenCookMember);

            joinedTable.JoinInfo = CreateResolvedJoinInfo(typeof(Cook), "t1", "ID", "CookTable", "t2", "FK");

            _stageMock
            .Expect(mock => mock.GenerateTextForJoinCondition(_commandBuilder, ((ResolvedJoinInfo)joinedTable.JoinInfo).JoinCondition))
            .WhenCalled(mi => ((SqlCommandBuilder)mi.Arguments[0]).Append("([t1].[ID] = [t2].[FK])"));
            _stageMock.Replay();

            SqlTableAndJoinTextGenerator.GenerateSql(originalTable, _commandBuilder, _stageMock, true);

            _stageMock.VerifyAllExpectations();
            Assert.That(
                _commandBuilder.GetCommandText(), Is.EqualTo("[KitchenTable] AS [t1] LEFT OUTER JOIN [CookTable] AS [t2] ON ([t1].[ID] = [t2].[FK])"));
        }
Exemple #4
0
        public void BuildSelectPart_WithSelect()
        {
            var sqlStatement = CreateSqlStatement();

            _stageMock.Expect(
                mock => mock.GenerateTextForSelectExpression(_commandBuilder, sqlStatement.SelectProjection))
            .WhenCalled(mi => ((SqlCommandBuilder)mi.Arguments[0]).Append("[t].[ID],[t].[Name],[t].[City]"));
            _stageMock.Replay();

            _generator.BuildSelectPart(sqlStatement, _commandBuilder, false);

            Assert.That(_commandBuilder.GetCommandText(), Is.EqualTo("SELECT [t].[ID],[t].[Name],[t].[City]"));
            _stageMock.VerifyAllExpectations();
        }