public void ConvertToSqlTable () { var selectProjection = Expression.Constant (new Cook()); var sqlStatement = new SqlStatementBuilder { DataInfo = new StreamedSingleValueInfo (typeof (Cook), false), SelectProjection = selectProjection }. GetSqlStatement(); var expression = new SqlSubStatementExpression (sqlStatement); var result = expression.ConvertToSqlTable ("q0"); Assert.That (result.JoinSemantics, Is.EqualTo (JoinSemantics.Inner)); Assert.That (result.TableInfo.GetResolvedTableInfo().TableAlias, Is.EqualTo ("q0")); Assert.That (result.TableInfo, Is.TypeOf (typeof (ResolvedSubStatementTableInfo))); var newSubStatement = ((ResolvedSubStatementTableInfo) result.TableInfo).SqlStatement; var expectedSubStatement = new SqlStatementBuilder (sqlStatement) { DataInfo = new StreamedSequenceInfo (typeof (IEnumerable<Cook>), sqlStatement.SelectProjection) }.GetSqlStatement(); Assert.That (newSubStatement, Is.EqualTo (expectedSubStatement)); }
public void ConvertToSqlTable_StreamedSingleValueInfo_NoSqlTables () { var selectProjection = Expression.Constant (new Cook ()); var topExpression = new SqlLiteralExpression (2); var sqlStatement = new SqlStatementBuilder { DataInfo = new StreamedSingleValueInfo (typeof (Cook), false), SelectProjection = selectProjection, TopExpression = topExpression }.GetSqlStatement (); var expression = new SqlSubStatementExpression (sqlStatement); var result = expression.ConvertToSqlTable ("q0"); Assert.That (result.JoinSemantics, Is.EqualTo (JoinSemantics.Inner)); Assert.That (result.TableInfo.GetResolvedTableInfo ().TableAlias, Is.EqualTo ("q0")); Assert.That (result.TableInfo, Is.TypeOf (typeof (ResolvedSubStatementTableInfo))); var newSubStatement = ((ResolvedSubStatementTableInfo) result.TableInfo).SqlStatement; Assert.That (newSubStatement.TopExpression, Is.SameAs (topExpression)); }
public void ConvertToSqlTable_StreamedSingleValueInfoWithReturnsTrueIfEmpty_JoinSemanticIsChanged () { var selectProjection = Expression.Constant (new Cook ()); var sqlStatement = new SqlStatementBuilder { DataInfo = new StreamedSingleValueInfo (typeof (Cook), true), SelectProjection = selectProjection, TopExpression = new SqlLiteralExpression (2), SqlTables = { new SqlTable (new ResolvedSimpleTableInfo (typeof (Cook), "CookTable", "c"), JoinSemantics.Inner) } }.GetSqlStatement (); var expression = new SqlSubStatementExpression (sqlStatement); var result = expression.ConvertToSqlTable ("q0"); Assert.That (result.JoinSemantics, Is.EqualTo (JoinSemantics.Left)); Assert.That (result.TableInfo.GetResolvedTableInfo ().TableAlias, Is.EqualTo ("q0")); Assert.That (result.TableInfo, Is.TypeOf (typeof (ResolvedSubStatementTableInfo))); var newSubStatement = ((ResolvedSubStatementTableInfo) result.TableInfo).SqlStatement; var expectedSubStatement = new SqlStatementBuilder (sqlStatement) { DataInfo = new StreamedSequenceInfo (typeof (IEnumerable<Cook>), sqlStatement.SelectProjection), TopExpression = newSubStatement.TopExpression }.GetSqlStatement (); SqlExpressionTreeComparer.CheckAreEqualTrees (new SqlLiteralExpression (1), newSubStatement.TopExpression); Assert.That (newSubStatement, Is.EqualTo (expectedSubStatement)); }
public void ConvertToSqlTable_StreamedSequenceInfo () { var selectProjection = Expression.Constant (new Cook ()); var sqlStatement = new SqlStatementBuilder { DataInfo = new StreamedSequenceInfo(typeof (Cook[]), Expression.Constant(new Cook())), SelectProjection = selectProjection }. GetSqlStatement (); var expression = new SqlSubStatementExpression (sqlStatement); var result = expression.ConvertToSqlTable ("q0"); Assert.That (result.JoinSemantics, Is.EqualTo (JoinSemantics.Inner)); Assert.That (result.TableInfo.GetResolvedTableInfo ().TableAlias, Is.EqualTo ("q0")); Assert.That (result.TableInfo, Is.TypeOf (typeof (ResolvedSubStatementTableInfo))); Assert.That (((ResolvedSubStatementTableInfo) result.TableInfo).SqlStatement, Is.EqualTo(sqlStatement)); }