2017-01-28 21:56:15 +08:00
using OrmTest.Models ;
using SqlSugar ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Linq.Expressions ;
using System.Text ;
using System.Threading.Tasks ;
2017-03-04 15:07:58 +08:00
namespace OrmTest.UnitTest
2017-01-28 21:56:15 +08:00
{
2017-05-16 13:55:57 +08:00
public class Method : UnitTestBase
2017-01-28 21:56:15 +08:00
{
private Method ( ) { }
public Method ( int eachCount )
{
this . Count = eachCount ;
}
internal void Init ( )
{
base . Begin ( ) ;
for ( int i = 0 ; i < base . Count ; i + + )
{
2017-06-12 17:47:25 +08:00
IIF ( ) ;
IIF2 ( ) ;
2017-01-30 18:53:06 +08:00
#region StringIsNullOrEmpty
2017-06-04 09:27:41 +08:00
HasValue ( ) ;
HasNumber ( ) ;
2017-01-30 15:10:54 +08:00
StringIsNullOrEmpty ( ) ;
2017-01-30 15:41:16 +08:00
StringIsNullOrEmpty2 ( ) ;
2017-01-30 16:42:33 +08:00
StringIsNullOrEmpty3 ( ) ;
2017-01-30 18:17:55 +08:00
StringIsNullOrEmpty4 ( ) ;
2017-06-04 08:13:18 +08:00
StringIsNullOrEmpty5 ( ) ;
2017-04-30 19:57:29 +08:00
#endregion
2017-01-30 18:53:06 +08:00
ToUpper ( ) ;
2017-01-30 21:54:23 +08:00
ToLower ( ) ;
2017-01-30 22:05:08 +08:00
Trim ( ) ;
2017-01-31 20:39:57 +08:00
Contains ( ) ;
2017-04-30 14:31:07 +08:00
ContainsArray ( ) ;
2017-04-29 23:20:31 +08:00
StartsWith ( ) ;
EndsWith ( ) ;
2017-04-29 22:51:41 +08:00
Between ( ) ;
Equals ( ) ;
Equals_2 ( ) ;
DateIsSameByDay ( ) ;
DateIsSameByType ( ) ;
DateAddDay ( ) ;
DateAddByType ( ) ;
2017-04-29 23:37:49 +08:00
DateValue ( ) ;
2017-04-30 13:04:06 +08:00
ToInt32 ( ) ;
ToInt64 ( ) ;
ToDate ( ) ;
Tostring ( ) ;
ToDecimal ( ) ;
ToGuid ( ) ;
ToDouble ( ) ;
ToBool ( ) ;
Substring ( ) ;
Replace ( ) ;
Length ( ) ;
2017-01-28 21:56:15 +08:00
}
base . End ( "Method Test" ) ;
}
2017-01-31 20:39:57 +08:00
2017-04-30 13:04:06 +08:00
private void Length ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Length ( "aaaa" ) > 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(LEN(@MethodConst0) > @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@Const1" , 1 )
2017-05-28 19:45:37 +08:00
} , "Length error" ) ;
2017-04-30 13:04:06 +08:00
}
private void Replace ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Replace ( "aaaa" , "a" , "1" ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(REPLACE(@MethodConst0,@MethodConst1,@MethodConst2) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@MethodConst1" , "a" ) , new SugarParameter ( "@MethodConst2" , "1" ) , new SugarParameter ( "@Const3" , "a" )
2017-05-28 19:45:37 +08:00
} , "Replace error" ) ;
2017-04-30 13:04:06 +08:00
}
private void Substring ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Substring ( "aaaa" , 0 , 2 ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(SUBSTRING(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@MethodConst1" , 0 ) , new SugarParameter ( "@MethodConst2" , 2 ) , new SugarParameter ( "@Const3" , "a" )
2017-05-28 19:45:37 +08:00
} , "Substring error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToBool ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToBool ( "true" ) = = true ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS BIT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "true" ) , new SugarParameter ( "@Const1" , ( bool ) true )
2017-05-28 19:45:37 +08:00
} , "ToBool error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDouble ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDouble ( "2" ) = = 2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS FLOAT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2" ) , new SugarParameter ( "@Const1" , ( Double ) 2 )
2017-05-28 19:45:37 +08:00
} , "ToDouble error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToGuid ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToGuid ( "A94027A3-476E-478D-8228-F4054394B874" ) = = x2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS UNIQUEIDENTIFIER) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "A94027A3-476E-478D-8228-F4054394B874" ) , new SugarParameter ( "@Const1" , x2 )
2017-05-28 19:45:37 +08:00
} , "ToGuid error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDecimal ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDecimal ( "22" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS MONEY) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "22" ) , new SugarParameter ( "@Const1" , ( decimal ) 1 )
2017-05-28 19:45:37 +08:00
} , "ToDecimal error" ) ;
2017-04-30 13:04:06 +08:00
}
private void Tostring ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToString ( "2015-1-1" ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS NVARCHAR(MAX)) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2015-1-1" ) , new SugarParameter ( "@Const1" , "a" )
2017-05-28 19:45:37 +08:00
} , "Tostring error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDate ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDate ( "2015-1-1" ) = = x2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS DATETIME) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2015-1-1" ) , new SugarParameter ( "@Const1" , x2 )
2017-05-28 19:45:37 +08:00
} , "ToDate error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToInt64 ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToInt64 ( "3" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS BIGINT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "3" ) , new SugarParameter ( "@Const1" , ( Int64 ) 1 )
2017-05-28 19:45:37 +08:00
} , "ToInt64 error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToInt32 ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToInt32 ( "3" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS INT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "3" ) , new SugarParameter ( "@Const1" , 1 )
2017-05-28 19:45:37 +08:00
} , "ToInt32 error" ) ;
2017-04-30 13:04:06 +08:00
}
2017-04-29 23:37:49 +08:00
private void DateValue ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateValue ( x2 , DateType . Year ) = = 1 ;
2017-04-29 23:37:49 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-30 11:09:27 +08:00
base . Check ( value , pars , " ((@MethodConst1(@MethodConst0)) = @Const2 ) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , DateType . Year ) , new SugarParameter ( "@Const2" , 1 )
2017-05-28 19:45:37 +08:00
} , "DateValue error" ) ;
2017-04-29 23:37:49 +08:00
}
2017-04-29 23:20:31 +08:00
private void StartsWith ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . StartsWith ( it . Name , "a" ) ;
2017-04-29 23:20:31 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] like @MethodConst0+'%') " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "StartsWith error" ) ;
2017-04-29 23:20:31 +08:00
}
private void EndsWith ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . EndsWith ( it . Name , "a" ) ;
2017-04-29 23:20:31 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] like '%'+@MethodConst0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
} , "EndsWith" ) ;
}
2017-04-29 22:51:41 +08:00
private void Between ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Between ( it . Name , 1 , 2 ) ;
2017-04-29 23:08:14 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] BETWEEN @MethodConst0 AND @MethodConst1) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , 1 ) , new SugarParameter ( "@MethodConst1" , 2 ) ,
2017-05-28 19:45:37 +08:00
} , "Between error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateAddByType ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateAdd ( x2 , 11 , DateType . Millisecond ) = = x2 ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-30 11:09:27 +08:00
base . Check ( value , pars , "((DATEADD(@MethodConst2,@MethodConst1,@MethodConst0)) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , 11 ) , new SugarParameter ( "@Const3" , x2 ) ,
2017-04-29 22:51:41 +08:00
new SugarParameter ( "@MethodConst2" , DateType . Millisecond )
2017-05-28 19:45:37 +08:00
} , "DateAddByType error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateAddDay ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateAdd ( x2 , 1 ) = = x2 ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-30 11:09:27 +08:00
base . Check ( value , pars , "((DATEADD(day,@MethodConst1,@MethodConst0)) = @Const2 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , 1 ) , new SugarParameter ( "@Const2" , x2 )
2017-05-28 19:45:37 +08:00
} , "DateIsSameByType error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateIsSameByType ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateIsSame ( x2 , x2 , DateType . Millisecond ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " (DATEDIFF(@MethodConst2,@MethodConst0,@MethodConst1)=0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , x2 ) ,
new SugarParameter ( "@MethodConst2" , DateType . Millisecond )
2017-05-28 19:45:37 +08:00
} , "DateIsSameByType error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateIsSameByDay ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateIsSame ( x2 , x2 ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(DATEDIFF(day,@MethodConst0,@MethodConst1)=0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , x2 )
2017-05-28 19:45:37 +08:00
} , "DateIsSameDay error" ) ;
2017-04-29 22:51:41 +08:00
}
private void Equals ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Equals ( it . Name , "a" ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] = @MethodConst0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals1 error" ) ;
2017-04-29 22:51:41 +08:00
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp2 = it = > SqlFunc . Equals ( "a" , it . Name ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext ( ) ;
expContext2 . Resolve ( exp2 , ResolveExpressType . WhereSingle ) ;
var value2 = expContext2 . Result . GetString ( ) ;
var pars2 = expContext2 . Parameters ;
base . Check ( value2 , pars2 , " (@MethodConst0 = [Name]) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals2 error" ) ;
2017-04-29 22:51:41 +08:00
}
private void Equals_2 ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Equals ( it . Name , it . Name ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] = [Name]) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals1 error" ) ;
2017-04-29 22:51:41 +08:00
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp2 = it = > SqlFunc . Equals ( "a" , "a2" ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext ( ) ;
expContext2 . Resolve ( exp2 , ResolveExpressType . WhereSingle ) ;
var value2 = expContext2 . Result . GetString ( ) ;
var pars2 = expContext2 . Parameters ;
base . Check ( value2 , pars2 , " (@MethodConst0 = @MethodConst1) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" ) , new SugarParameter ( "@MethodConst1" , "a2" )
2017-05-28 19:45:37 +08:00
} , "Equals2 error" ) ;
2017-04-29 22:51:41 +08:00
}
2017-01-31 20:39:57 +08:00
private void Contains ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Contains ( it . Name , "a" ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-31 20:39:57 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-03-13 10:55:22 +08:00
base . Check ( value , pars , " ([Name] like '%'+@MethodConst0+'%') " , new List < SugarParameter > ( ) {
2017-01-31 21:23:01 +08:00
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Contains error" ) ;
2017-01-31 20:39:57 +08:00
}
2017-04-30 14:31:07 +08:00
private void ContainsArray ( )
{
2017-06-12 17:47:25 +08:00
string [ ] array = new string [ ] { "1" , "2" } ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ContainsArray ( array , it . Name ) ;
2017-04-30 14:31:07 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , null , " ([Name] IN ('1','2')) " , null , "Contains2 error" ) ;
2017-04-30 14:31:07 +08:00
}
2017-01-30 22:05:08 +08:00
private void Trim ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Trim ( " a" ) = = it . Name ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 22:05:08 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "((rtrim(ltrim(@MethodConst0))) = [Name] )" , new List < SugarParameter > ( ) {
2017-01-31 20:26:38 +08:00
new SugarParameter ( "@MethodConst0" , " a" )
2017-05-28 19:45:37 +08:00
} , "Trim error" ) ;
2017-01-30 22:05:08 +08:00
}
2017-01-30 18:53:06 +08:00
private void ToUpper ( )
2017-01-30 15:10:54 +08:00
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > "a" = = SqlFunc . ToUpper ( it . Id ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 15:10:54 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "( @Const0 = (UPPER([Id])) )" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@Const0" , "a" )
2017-05-28 19:45:37 +08:00
} , "ToUpper error" ) ;
2017-01-30 15:41:16 +08:00
}
2017-01-30 21:54:23 +08:00
private void ToLower ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > "a" = = SqlFunc . ToLower ( it . Id ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 21:54:23 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "( @Const0 = (LOWER([Id])) )" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@Const0" , "a" )
2017-05-28 19:45:37 +08:00
} , "ToLower error" ) ;
2017-01-30 21:54:23 +08:00
}
2017-01-30 15:41:16 +08:00
2017-01-30 18:53:06 +08:00
#region StringIsNullOrEmpty
private void StringIsNullOrEmpty ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > it . Id > 2 | | SqlFunc . IsNullOrEmpty ( it . Id ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 18:53:06 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( [Id] > @Id0 ) OR ( [Id]='' OR [Id] IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 18:53:06 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty error" ) ;
2017-01-30 18:53:06 +08:00
}
2017-01-30 15:41:16 +08:00
private void StringIsNullOrEmpty2 ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( true ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 15:41:16 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , true ) ,
2017-01-30 15:41:16 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty2 error" ) ;
2017-01-30 15:10:54 +08:00
}
2017-01-30 16:42:33 +08:00
private void StringIsNullOrEmpty3 ( )
{
int a = 1 ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( a ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 16:42:33 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , 1 ) ,
2017-01-30 16:42:33 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty3 error" ) ;
2017-01-30 16:42:33 +08:00
}
2017-01-30 18:17:55 +08:00
private void StringIsNullOrEmpty4 ( )
{
WhereConst . name = "xx" ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( WhereConst . name ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 18:17:55 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , "xx" ) ,
2017-01-30 18:17:55 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty4 error" ) ;
2017-06-04 08:13:18 +08:00
}
private void StringIsNullOrEmpty5 ( )
{
WhereConst . name = "xx" ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > ! SqlFunc . IsNullOrEmpty ( WhereConst . name ) ; ;
2017-06-04 08:13:18 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "NOT( @MethodConst0='' OR @MethodConst0 IS NULL )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "xx" )
} , "StringIsNullOrEmpty5 error" ) ;
}
2017-01-30 18:53:06 +08:00
#endregion
2017-06-04 09:27:41 +08:00
private void HasValue ( )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . HasValue ( it . Name ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , pars , "( [Name]<>'' AND [Name] IS NOT NULL )" , new List < SugarParameter > ( )
{
2017-06-04 09:27:41 +08:00
} , "HasValue error" ) ;
}
private void HasNumber ( )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . HasNumber ( it . Id ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , pars , "( [Id]>0 AND [Id] IS NOT NULL )" , new List < SugarParameter > ( )
{
2017-06-04 09:27:41 +08:00
} , "HasNumber error" ) ;
}
2017-06-12 17:47:25 +08:00
private void IIF ( )
{
2017-06-12 18:19:18 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . IIF ( it . Id = = 1 , 1 , 2 ) = = 1 ;
2017-06-12 17:47:25 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 18:19:18 +08:00
base . Check ( value , pars , "(( CASE WHEN ( [Id] = @Id1 ) THEN @MethodConst2 ELSE @MethodConst3 END ) = @Const4 )" , new List < SugarParameter > ( )
2017-06-12 17:47:25 +08:00
{
new SugarParameter ( "@Id1" , 1 ) ,
new SugarParameter ( "@MethodConst2" , 1 ) ,
2017-06-12 18:19:18 +08:00
new SugarParameter ( "@MethodConst3" , 2 ) ,
new SugarParameter ( "@Const4" , 1 )
2017-06-12 17:47:25 +08:00
} , "IIF error" ) ;
}
private void IIF2 ( )
{
2017-06-12 18:19:18 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . IIF ( SqlFunc . Contains ( it . Name , "a" ) , 1 , 2 ) = = 1 ;
2017-06-12 17:47:25 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 18:19:18 +08:00
base . Check ( value , pars , "(( CASE WHEN ([Name] like '%'+@MethodConst1+'%') THEN @MethodConst2 ELSE @MethodConst3 END ) = @Const4 )" , new List < SugarParameter > ( )
2017-06-12 17:47:25 +08:00
{
new SugarParameter ( "@MethodConst1" , "a" ) ,
new SugarParameter ( "@MethodConst2" , 1 ) ,
2017-06-12 18:19:18 +08:00
new SugarParameter ( "@MethodConst3" , 2 ) ,
new SugarParameter ( "@Const4" , 1 )
} , "IIF2 error" ) ;
2017-06-12 17:47:25 +08:00
}
2017-01-28 21:56:15 +08:00
}
}
2017-01-30 15:41:16 +08:00